Like操作符
LIKE 運算符是用來匹配通配符指定模式的文本值
-
WHERE SALARY LIKE '200%'
查找以 200 開頭的任意值 -
WHERE SALARY LIKE '%200%'
查找任意位置包含 200 的任意值 -
WHERE SALARY LIKE '%2'
查找以 2 結(jié)尾的任意值
UNION 操作符
UNION 操作符用于連接兩個以上的 SELECT 語句的結(jié)果組合到一個結(jié)果集合中。多個 SELECT 語句會刪除重復(fù)的數(shù)據(jù)
從 "Websites" 和 "apps" 表中選取所有不同的country:
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
從 "Websites" 和 "apps" 表中選取所有的country:
SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
ORDER BY country;
從 "Websites" 和 "apps" 表中選取所有的中國(CN)的數(shù)據(jù):
SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;
GROUP BY語句
WITH ROLLUP 可以實現(xiàn)在分組統(tǒng)計數(shù)據(jù)基礎(chǔ)上再進行相同的統(tǒng)計(SUM,AVG,COUNT…)
coalesce
語法:
select coalesce(a,b,c);
參數(shù)說明:如果a==null,則選擇b身腻;如果b==null,則選擇c产还;如果a!=null,則選擇a;如果a b c 都為null 嘀趟,則返回為null(沒意義)脐区。
SELECT coalesce(name, '總數(shù)'), SUM(singin) as singin_count
FROM employee_tbl GROUP BY name WITH ROLLUP;
連接 - 從多個數(shù)據(jù)表中讀取數(shù)據(jù)
-
INNER JOIN(內(nèi)連接,或等值連接)
:可以省略INNER
獲取兩個表中字段匹配關(guān)系的記錄。 -
LEFT JOIN(左連接)
:獲取左表所有記錄她按,即使右表沒有對應(yīng)匹配的記錄牛隅。 -
RIGHT JOIN(右連接)
: 與 LEFT JOIN 相反,用于獲取右表所有記錄酌泰,即使左表沒有對應(yīng)匹配的記錄媒佣。
SELECT a.runoob_id, a.runoob_author, b.runoob_count
FROM runoob_tbl a INNER JOIN tcount_tbl b
ON a.runoob_author = b.runoob_author;
NULL 值處理
-
IS NULL
: 當列的值是 NULL,此運算符返回 true。 -
IS NOT NULL
: 當列的值不為 NULL, 運算符返回 true陵刹。 -
<=>
: 比較操作符(不同于 = 運算符)默伍,當比較的的兩個值相等或者都為 NULL 時返回 true。
SELECT * FROM runoob WHERE counts IS NULL;
事務(wù)
兩種事務(wù)處理方法:
-
BEGIN
開始一個事務(wù) -
ROLLBACK
事務(wù)回滾 -
COMMIT
事務(wù)確認
begin后未commit的話衰琐,rollback后操作不會被實現(xiàn)也糊。
2.用 SET 來改變 MySQL 的自動提交模式:
-
SET AUTOCOMMIT=0
禁止自動提交 -
SET AUTOCOMMIT=1
開啟自動提交
ALTER命令
刪除,添加字段(列)
ALTER TABLE testalter_tbl DROP i; //刪除
ALTER TABLE testalter_tbl ADD i INT; //添加
ALTER TABLE testalter_tbl ADD i INT AFTER c; //在c字段后添加i字段
修改字段類型及名稱
把c字段類型改為char(10):
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
使用 CHANGE 子句(語法不同):
ALTER TABLE testalter_tbl CHANGE i j BIGINT;
//把i字段改為j名字的bigint類型的字段
ALTER TABLE testalter_tbl CHANGE j j INT;
//把j字段改為j名字int類型的字段
修改默認值
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
刪除默認值
ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
修改表名
ALTER TABLE testalter_tbl RENAME TO alter_tbl;
處理重復(fù)
統(tǒng)計重復(fù)數(shù)據(jù)
SELECT COUNT(*) as repetitions, title
FROM archive
GROUP BY title
HAVING repetitions > 1;
過濾重復(fù)
使用DISTINCT
SELECT DISTINCT title FROM archive;
使用GROUP BY