1 . Order by子句
select * from 表名 order by 列1 asc|desc,列2 asc|desc,...
將行數(shù)據(jù)按照列1進(jìn)行排序闸婴,如果某些行列1的值相同赋除,則按照列2排序,以此類推缎谷,默認(rèn)值從小到大排列宣决,升序?yàn)閍sc,降序?yàn)閐esc.
- 主鍵沖突
a. 更新
insert into 表名字[字段列表(一定要包含主鍵)] values (字段值列表) on duplicate key update 字段 = 新值承疲;
b. 替換
replace into 表名 [字段列表(包含主鍵)] values(字段列表值);
(如果 表沒有此記錄鸥滨,這插入,如果已經(jīng)存在抡柿,則更新)
c . 忽略
INSERT IGNORE INTO 表名[字段列表(包含主鍵)] VALUES(字段列表值);
(如果 表沒有此記錄舔琅,這插入,如果已經(jīng)存在洲劣,則更新)
3.蠕蟲復(fù)制
表結(jié)構(gòu)復(fù)制:
create table [if not exists] 新表名 like 數(shù)據(jù)庫.表名字(如果是同一個數(shù)據(jù)庫备蚓,數(shù)據(jù)庫.可以省略);
數(shù)據(jù)復(fù)制:
insert into 表名字[字段列表] select 字段列表/* from 數(shù)據(jù)表名;
- 去重
distinct:去重囱稽,查出來后的結(jié)果郊尝,將重復(fù)的給去除掉(所有字段都相同)
如果主鍵自增長,就不能使用所有列去重了战惊,要使用部分列的形式去去重流昏。
select distinct age from student;
5.子查詢
select * from (select * from 表名字) as 別名(別名不能省)
子查詢可以用在 當(dāng)作數(shù)據(jù)源、where子句吞获、字段列表中
- group by
基本語法:group by 字段名 [asc|desc];
單字段分組
多字段分組 : 先根據(jù)一個字段進(jìn)行分組况凉,然后對分組后的結(jié)果再次按照其他字段進(jìn)行分組
group_concat(字段名) : 可以對分組的結(jié)果中的某個字段進(jìn)行字符串連接
7.Having子句
here是針對磁盤數(shù)據(jù)進(jìn)行判斷,進(jìn)入到內(nèi)存之后各拷,會進(jìn)行分組操作刁绒,分組結(jié)果就要使用having子句進(jìn)行處理,having能做where能做的幾乎所有事情烤黍,但是where卻不能做having能做的事情
- Limit子句
語法:limit 起始位置知市, 長度;(起始位置從0開始)