MYSQL总复习(一)
-
MYSQL总复习(一)
查找语句 select
1.基本select 【*】查找全部列
select * from table;
[select 标识选择哪些列]
【from 标识从哪个表选择】
选择特定的列
SELECT id,name FROM table; (sql语句大小写不敏感,可以写在一行或者多行)
列的别名 [AS或者“新名字”]
SELECT name AS newname, id newid
FROM table;
显示表结构
【DESCRIBE table】或者【desc】
2.过滤和排序
【where】的使用,紧接着from子句
select * from table where id>10;
比较运算符
【where】的其他使用运算
select name,id from table where id BETWEEN 10 AND 20;
[in] 显示列表中的值
select name,id from table where id in(4,5,6);
[like] 选择类似值 选择条件可以包含字符或者数字
[%] 表示一个或者多个字符 【_】代表一个字符
select name from table where name like ’Liu%’;
select name from table where name like ’_i%’;
[is null] 用来判断空值
select name from table where name is NULL;
逻辑运算【AND】逻辑并 【OR】逻辑或 【NOT】逻辑否
【ORDER BY】子句
使用order by 子句进行排序
-ASC (ASCEND) 升序
-DESC (DESCEND) 降序
(order by 放在select 语句的结尾)
SELECT name,id,data FROM table ORDER BY data DESC; //按照时间降序排列
多个列排序
SELECT name,id,data FROM table ORDER BY name,id DESC;
3.分组函数
组函数语法 【group function(column)】
【AVG】 平均值
【SUM】 合计函数
SELECT AVG(score),MAX(score),MIN(score),SUM(score) FROM result WHERE score>60;
【count】 计数函数
SELECT COUNT(score) FROM result WHERE score>50;
分组数据 [group by] 子句语法
使用group by 把表中的数据分成若干个组 (注意:where 一定放在from后面)
SELECT id,AVG(score) FROM result GROUP BY id;
使用多个列分组:
SELECT id,studentno,SUM(score) FROM result GROUP BY id,studentno;
过滤分组 【having】
使用having 过滤分组
1.行已经被分组
2.使用了组函数
3.满足having子句的条件的分组将被显示
多表查询:
使用连接在多个表中查询
【表的别名】
select bt.id,NAME,boyname FORM beauty bt,boys b;
where bt.’boyfriend’_id=b.id;
【ON】 使用on创建连接
【join】连接
内连接 【inner】join in
外连接
*左外连接 left【outer】 join on
*右外连接 right 【outer】 join on
SELECT ad.id,username,PASSWORD,userCP FROM admin ad INNER JOIN boys b ON ad.`id`=ad.`id`;
使用ON子句创建多表连接
SELECT ad.id,username,userCP,borndate,phone FROM admin ad JOIN beauty be ON ad.`id`=be.`id` JOIN boys b ON b.`id`=be.`id`;
Join连接总结