指定字段插入:
INSERT INTO <表名> (<字段1>, <字段2>, <字段3>) VALUES (<值1>, <值2>, <值3>);
不指定字段插入:
INSERT INTO <表名> VALUES (<值1>, <值2>, <值3>);
一次插入多條數(shù)據(jù):
- INSERT INTO <表名> VALUES (<值1>, <值2>, <值3>), (<值4>, <值5>, <值6>);
- INSERT INTO <表名> (<字段1>, <字段2>, <字段3>) VALUES (<值1>, <值2>, <值3>), (<值4>, <值5>, <值6>);
將查詢結(jié)果插入新表:
INSERT INTO <表名1> SELECT * FROM <表名2>;
將查詢部分字段插入新表:
INSERT INTO <表名1> (<字段1>, <字段2>) SELECT <字段3>,<字段4> FROM <表名2>;
復(fù)制表:
CREATE TABLE <表名1> SELECT * FROM <表名2>;
條件刪除:
DELETE FROM <表名> WHERE <字段> = 3;
全部刪除(一行一行刪):
DELETE FROM <表名>;
快刪:
DROP TABLE IF EXISTS <表名>;
條件修改:
UPDATE <表名> SET <字段> = <新的值> WHERE <字段> = 3;
全部修改:
UPDATE <表名> SET <字段> = <新的值>;
修改多個字段:
UPDATE <表名> SET <字段1> = <值1>, <字段2> = <值2>;
使一列的值與另一列的值相等:
UPDATE <表名> SET <字段1> = <字段2>;
全量查詢:
SELECT * FROM <表名>;
去重查詢某列:
SELECT DISTINCT <字段1>, <字段2> FROM <表名>;
比較運算:
SELECT * FROM <表名> WHERE id >= 3;
IN:
SELECT * FROM <表名> WHERE id IN (1, 2, 3);
BETWEEN AND:
SELECT * FROM <表名> WHERE id BETWEEN 1 AND 3;
NOT NULL:
SELECT * FROM <表名> WHERE id IS NOT NULL;
AND / OR:
SELECT * FROM <表名> WHERE id = 3 AND name = 'ming';
模糊查詢(%為通配符,_為匹配任意一個字符,[charlist]為字符列中的任意單個字符):
SELECT * FROM <表名> WHERE <字段> LIKE '%';
正則匹配查詢:
SELECT * FROM <表名> WHERE <字段> REGEXP '^[aeiou]|ok$';
起別名:
SELECT <字段> AS <別名> FROM <表名>;
合并兩張表并去除重復(fù)值:
SELECT <字段1> FROM <表名1> UNION SELECT <字段1> FROM <表名2>;
合并兩張表非去重:
SELECT <字段1> FROM <表名1> UNION ALL SELECT <字段1> FROM <表名2>;
分組:
SELECT <字段1>, <字段2>, COUNT(<字段1>), COUNT(<字段2>) FROM <表名> GROUP BY <字段1>, <字段2>;
分組 + 條件:
SELECT * FROM <表名> GROUP BY <字段> HAVING COUNT(*) > 1;
排序查詢,正序ASC,逆序DESC:
SELECT * FROM <表名> ORDER BY <字段> DESC;
限制查詢,從索引m開始,限制查n條:
SELECT * FROM <表名> ORDER BY <字段> DESC LIMIT m n;
統(tǒng)計符合條件的行數(shù):
SELECT COUNT(*) FROM <表名> WHERE <字段> > 3;
統(tǒng)計列中非空行數(shù):
SELECT COUNT(<字段>) FROM <表名>;
統(tǒng)計列中非重復(fù)非空行數(shù):
SELECT COUNT(DISTINCT <字段>) FROM <表名>;
統(tǒng)計列中的最大值和最小值:
SELECT MAX(<字段>) FROM <表名>;
統(tǒng)計求和:
SELECT SUM(<字段>) FROM <表名>;
求平均值:
SELECT AVG(<字段>) FROM <表名>;
分組合并:
SELECT <字段1>, GROUP_CONCAT(<字段1>) FROM <表名> GROUP BY <字段1>;
內(nèi)連接:
SELECT a.*, b.* FROM <表名1> AS a INNER JOIN <表名2> AS b ON a.id = b.id;
左連接:
SELECT a.*, b.* FROM <表名1> AS a LEFT JOIN <表名2> AS b ON a.id = b.id;
右連接:
SELECT a.*, b.* FROM <表名1> AS a RIGHT JOIN <表名2> AS b ON a.id = b.id;
子查詢:
SELECT * FROM <表名> WHERE id IN (SELECT id FROM <表名> GROUP BY id HAVING COUNT(*) > 1);
1.字符串替換:
UPDATE <表名> SET <字段> = REPLACE(<字段>, str1, str2)
2.根據(jù)某一列刪除表中重復(fù)數(shù)據(jù)(保留id小的數(shù)據(jù)):
DELETE FROM <表名> WHERE id NOT IN (SELECT id FROM (SELECT MIN(id) AS id FROM <表名> GROUP BY <重復(fù)列>) AS t);
3.根據(jù)某一列刪除表中重復(fù)數(shù)據(jù)(保留id大的數(shù)據(jù)):
DELETE FROM <表名> WHERE id NOT IN (SELECT id FROM (SELECT MAX(id) AS id FROM <表名> GROUP BY <重復(fù)列>) AS t);
4.三個表的連表查詢:
SELECT * FROM (<表名1> AS a LEFT JOIN <表名2> AS b ON a.id = b.id) LEFT JOIN <表名3> AS c ON a.id = c.id;
5.排除某個表中的一列,查找其他所有列:
SELECT GROUP_CONCAT(<字段> SEPARATOR ',') FROM information_schema.COLUMNS WHERE table_name = <表名> AND column_name != <字段>;
6.去掉某一列中的括號及內(nèi)容:
UPDATE <表名> SET <字段> = REPLACE(<字段>, SUBSTRING(<字段>, LOCATE('(', <字段>), LOCATE(')', <字段>)-LOCATE('(', <字段>)+1), '');
7.根據(jù)兩個表的相同列更新另一個表中的另一列數(shù)據(jù):
UPDATE <表名1> AS A, <表名2> AS B SET A.<字段1> = B.<字段2> WHERE A.<字段3> = B.<字段4>;
8.查詢數(shù)據(jù)庫中的表名及字段信息:
- # 查詢當(dāng)前數(shù)據(jù)庫
- SELECT DATABASE();
- # 查詢當(dāng)前數(shù)據(jù)庫中的所有表名
- SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = (SELECT DATABASE()) AND TABLE_TYPE='BASE TABLE';
- # 查詢指定數(shù)據(jù)庫中的所有表名
- SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='<數(shù)據(jù)庫名>' AND TABLE_TYPE='BASE TABLE';
- # 查詢指定數(shù)據(jù)庫中指定表名的字段信息
- SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='<數(shù)據(jù)庫名>' and TABLE_NAME='<表名>'
聯(lián)系客服