提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、SQL高级语句
1.导入文件至数据库
1 #将脚本导入 source 加文件路径
2 mysql> source /backup/test.sql;
2.select
显示表格中的一个或者多个字段中所有的信息
1 #语法:
2 select 字段名 from 表名;
1 示例1:
2 select * from info;
示例2:
select name,score from info;
3. distinct
查询不重复记录
1 #语法:
2 select distinct 字段 from 表名﹔
1 1 #示例1:去除hobbid字段中重复
2 2 select distinct hobbid from info;
4.where
where 有条件的查询
1 #语法:
2 select ‘字段’ from 表名 where 条件
#示例:显示score 小于60的
select score from info where score < 60;
5.and;or
and 且 ; or 或
1 #语法:
2 select 字段名 from 表名 where 条件1 (and|or) 条件2 (and|or)条件3;
示例1:显示score 并且要找到score大于80小于100
select score from info where score > 80 and score < 100;
6.in
显示已知值的资料
1 #语法:
2 select 字段名 from 表名 where 字段 in (‘值1’,‘值2’…);
1 #示例1:显示id为1,2,3,4的学生记录
2 select * from info where id in (1,2,3,4);
1 #示例2:显示hobbid为2和3的学生记录
2 select * from info where hobbid in (2,3);
7.between
显示两个值范围内的资料
1 #语法:
2 select 字段名 from 表名 where 字段 between ‘值1’ and ‘值2’;
3 包括 and两边的值
1 #示例1:显示学生姓名在lisi和tianqi中的学生记录
2 select * from info where name between ‘lisi’ and ‘tianqi’;
#示例2:显示学生号码id在2-5 的信息
select * from info where id between 2 and 5;
8.like通配符
通配符通常是和 like 一起使用
1 #语法:
2 select 字段名 from 表名 where 字段 like 模式
1 #示例1:查找名字以l开头的学生记录
2 select * from info where name like ‘l%’;
1 #示例2:查找地址包含ji的学生记录
2 select * from info where address like ‘%ji%’;
9. order by
order by 按关键字排序
1 #语法:
2 select 字段名 from 表名 where 条件 order by 字段 [asc,desc];
3 asc :正向排序
4 desc :反向排序
5 默认是正向排序
1 #示例1:按学生的分数正向排序显示分数和姓名字段
2 select name,score from info order by score;
1 #示例1:按学生的分数反向排序显示分数和姓名字段
2 select name,score from info order by score desc;
1 #示例3:显示name、age和hobbid字段的数据 并且只显示hobbid字段大于3 的 并且以score字段正向排序
2 select name,score,hobbid from info where hobbid > 3 order by score;
10.函数
10.1数学函数
1 #示例1:返回-2的绝对值
2 select abs(-2);
1 #示例2:随机生成一个数
2 select rand (2);
1 #示例3:随机生成排序
2 select * from info order by rand ();
#示例4:返回8除以2以后的余数
select mod(8,2);
#示例5:返回2的7次方
select power(2,7);