1.去重
select distinct university from user_profile ; distinct去重,放在列的前面使用。
SELECT universityfrom user_profile group by university;以分组来筛选出去重的结果
2.限定查询那行
LIMIT:用来限定查询结果的起始行,以及总行数。
查询 5 行记录,起始行从 0 开始
SELECT * FROM emp LIMIT 0, 5;
注意,起始行从 0 开始,即第一行开始!
3.改名
select device_id as user_infos_example from user_profile limit 0,2
4.等于不等于
可以用 = 或 like,!=和 not like
5.范围查询
WHERE age >= 20 and age<=23
WHERE age between 20 and 23
where university in('北京大学','复旦大学','山东大学')
6.不为空
where age is not NULL;
where age !='';
7.连接查询
内连接 inner join on:select * from a_table a inner join b_table b on a.a_id = b.b_id;
左连接 left join on:SELECT * FROM a_table a left join b_table b ON a.a_id = b.b_id;
右连接 right join on:SELECT * FROM a_table a left join b_table b ON a.a_id = b.b_id;
三表连接:
select * from (emp left join manage on dept.emp_id=manage.emp_id) left join dept on dept.id =emp.dept_id
全连接:
union: 对两个结果集进行并集操作, 不包括重复行,相当于distinct, 同时进行默认规则的排序;
union all: 对两个结果集进行并集操作, 包括重复行, 即所有的结果全部显示, 不管是不是重复;
( 通过union连接的SQL它们分别单独取出的列数必须相同, 不要求合并的表列名称相同时,以第一个sql 表列名为准)
8.模糊查询
% :表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情
况下若是中文,请使用两个百分号(%%)表示。
_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字 符长度语句。
9.排序查询
升序:ORDER BY sage ASC;(ASC可省)
降序:ORDER BY age DESC;
10.聚合函数
COUNT():统计指定列不为 NULL 的记录行数;
MAX():计算指定列的最大值
MIN():计算指定列的最小值
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为 0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为 0;
ROUND(column_name,decimals):column_name: 要舍入的字段,必需;decimals: 规定要返回的小数位数,可选
11.分组
分组再加条件的话用having不能用where
多重分组:group by gender, university
12.子查询
子查询语句可以独立执行,查询结果是一个数据,一条数据,或者一张临时数据表,可以对子查询用> < = in 等操作
13.插入命令
14.修改命令
15.删除命令
16.执行顺序
(where中不能用select中的别名,having中才能用)
17.explain
通过explain可以分析sql语句
18.删除数据库
drop 命令格式:
drop database <数据库名>;
例如删除名为 RUNOOB 的数据库:
mysql> drop database RUNOOB;