查询
-
语法结构
-
select…from 表名;
-
使用select 检索数据至少知道两点:
- 要查询什么
- 从哪里查询
-
select查询语句执行完成后,返回的是查询处理的结果,而结果是一张—(虚拟)表
1.查询一个表中的一个属性
-
select 属性名 from 表名;
-
找出学生表中学生的姓名
Select sname from t_student;
-
从系主任表中找出系主任的姓名
Select mname from t_man;
-
找出系部管理表中系的名字
Select dname from t_dept;
2.查找一个表中的多个属性
-
select 属性1,属性2…from 表名;
-
找出学生的姓名和年龄
Select sname,sage from t_student;
-
从学生表中找出学生的学号、姓名、英文名
Select sid,sname,sename from t_student;
-
查询学生的姓名和系主任的名字–笛卡尔积现象
Select sname,mname from t_student,t_man;
3.查询表中的所有记录
-
重载学生表中的所有信息
Select*from t_student;
4.查询语句的限制结果行
-
关键字:limit
-
select…from 表名 limit n; 表示查询前n行(从0计数)
-
从学生表中查找前5行学生的姓名和年龄
Select sname,sage from t_student limit 5;
-
-
select…from 表名 limit n,m; 表示从第n(从0开始计数)行开始,一共查询m行
-
从学生表中查找第4行到第10行学生的信息
Select * from t_student limit 3,7;
-
从学生表中查找第五行到第十行学生的学号、姓名及年龄
Select sid,sname,sage from t_student limit 4,6;
-
5.去掉重复行的使用
-
关键字:distinct
-
从学生表中输出sclass,去掉重复的sclass
Select distinct sclass from t_student;
-
从学生表中找出学生的姓名,班级编号,并去掉重复行
Select distinct sclass,sname from t_student;
distinct 应放在select后
6.运用数学表达式:
-
Select 列名+数字(列名)from 表名;(列值必须是数字)
-
使用 ±*/ 进行运算,乘除优先级高于加减,相同优先级先算左边,圆括号用来重新组合表达式的优先级
-
找出学生10年后的年龄
Select sage,sage+10 from t_student;
-
从学生表中找出学生的姓名、年龄和10年后的年龄,并只取前5行
Select sname,sage,sage+10 from t_student limit 5;
-
输出学生表中学生的姓名,以及年龄,班级之和
Select sname,sage+sclass from t_student;
null + 数字结果为null
-
7.处理null
-
ifnull(可能会出现null的属性,如果是null给一个值);
-
输出学生表中学生的姓名,以及年龄,班级之和,如果有空则赋值0
Select sname,sage+ifnull(sclass,0) from t_student;
8.取别名
-
关键字:as
-
Select 属性名 as 别名 from 表名;
-
给学生表中的sname取别名“姓名”,只输出5个
Select sname as '姓名' from t_student limit 5;
-
输出学生表中的姓名、10年后的年龄并以此为别名
Select sname,sage+10 as 10年后的年龄 from t_student;
-
-
Select 属性名 别名 from 表名;
-
Select 属性名 as ‘别名’ from 表名;
-
在Java代码中sql语句是以字符串形式出现,所以sql使用单引号。
String sql = " '' ";
-
可以在单引号中敲空格
-
查找学生的姓名并以此为别名
Select sname '姓 名' from t_student;
-
在学生表中找出学生的学号(取别名学号)、姓名(取别名姓名)、高考分数+100(取别名最终成绩),结果取第3行到第7行
Select sid as '学 号',sname as '姓 名',sscore+100 最终成绩 from t_student limit 2,5;
-
-
9.串接操作符
-
concat()函数
-
Select concat(列名,列名) from 表名;
-
将两列值拼接为字符串输出
-
从学生表中找出学生的学号、姓名并凭借输出
Select concat(sid,sname) from t_student;
-
-
-
concat(列名,‘自己加的字符串’,列名);
-
在学号和姓名中间加一句话,形成一段完整的话输出
Select concat(sid,'号是',sname) as '详细信息' from t_student;
-
10.获取时间的函数
-
select now();
±--------------------+
| now() |
±--------------------+
| 2018-08-01 09:32:19 |
±--------------------+ -
select now() from t_student;
表示表里有多少行记录,就给你多少行当前时间。
-
select 3+4;
±----+
| 3+4 |
±----+
| 7 |
±----+
11.排序
-
按某个字段/属性排序 关键字:order by(默认由低到高)
-
select …from 表名 order by 属性名 asc;
按照从低到高排序ÿ