第五章 简单的数据查询
本章目标:
■ 简单查询中的投影操作
■ 简单查询中的选择操作
■ 简单查询中的排序操作
——投影操作:
语法:select 列名列表 from 表名;
什么是投影?
■ 根据from后的表名 进入该表再根据列名列表进行操作,生成临时表;
它将选择对表中哪些列进行操作,这些列将出现在结果中。
.概念:投影操作是查询语句里必须有的子句,关键字则为SELECT。它将选择对表中那些列进行操作,这些列将出现在结果里
.关系数据库中的投影操作是指从关系中选择出若干属性列组成新的关系 SELECT 列1,列2 FROM 表名;
.表前缀
-SELECT t_student.姓名 FROM 表名;
.列的别名
.计算列
-在数据管理系统中,我们也可以执行返回计算列的SELECT查询
.排除重复数据
-数据库表的同列中,经常有相同值多次出现。又是,我们需要确保返回唯一的数据行。
这时我们需要使用DISTINCT关键字来排除重复数据。
.返回限定的函数
-在MySQL中可以限制查询的行数,并制定从第几行开始到第几行结束
-注意:LIMIT序号是从0开始。LIMUT只能用于MySQL中
选择操作
-SELECT 姓名,年龄 FROM t_student
-执行范围测试
.一个范围搜索,大于等于下限
-定义集合关系
.在指定的某几个值中进行搜索
.标准结构 SELECT 列A,列B FROM 表名 WHERE 列c IN(值集合)
-模糊查询
.模糊查询是一种比较实用的过滤方式,利用通配符来实现模糊查询
.标准结构 SELECT 列A,列BFROM 表名WHERE 列C LIKE
第五章代码演示
SELECT * t_name,t_sex FROM yuangong; //多行查询
CERATE TABLE gongsi1 SELECT * FROM gongsi;
SELECT gongsi1.t_name FROM gongsi1;
SELECT CONCAT (t_name,'-',t-address) AS ‘公司名称和地址’ FROM gongsi;
//想要全部显示在SELECT后面加*,前面想要显示什么就加g.名称,记住后面要跟AS g
SELECT t_age+10 FROM yuangong; //操作临时表
SELECT t_name FROM gongis
排除重复
SELECT DISTINCT t_name FROM gongsi //DISTINCT排除重复,只能对一个要求去重复
控制返回行
SELECT * FROM gongsi WHERE t_id>=2 AND t_id<=3;
SELECT * FROM gongsi LIMIT 2,2; //第一个参数是从0开始的 第一个参数表示从第几行开始返回,第二个参数表示返回几行
如果只有一个参数,第一个参数表示从0开始,
——选择操作
SELECT * FROM gongsi WHERE t_address=" "; //查看选择类数据
SELECT * FROM yuangong ;
SELECT * FROM gongsi WHERE t_address IS NULL //查询公司为空的数据 不为空把IS改为IS NOT NULL
SELECT * FROM yuangong WHER t_age BERWEEN 18 AND 25; //范围 包含
查询集合
SELECT * FROM yuangong WHERE t_age IN (18,19,20); //范围查询 不在这个范围用NOT IN
模糊查询
SELECT * FROM yuangong WHERE t_name LIKE '王%'; //模糊查询 使用通配符查询 通配符在前在后都能查询出来
如果两个通配符就不能查询出来 可通过两个__来查询两字符的
以W开始倒数第二个是n
SELECT * FROM yuangong WHERE t_name LIKE 'W%n_';
.关系数据库中的投影操作是指从关系中选择出若干属性列组成新的关系 SELECT 列1,列2 FROM 表名;
.表前缀
-SELECT t_student.姓名 FROM 表名;
.列的别名
.计算列
-在数据管理系统中,我们也可以执行返回计算列的SELECT查询
.排除重复数据
-数据库表的同列中,经常有相同值多次出现。又是,我们需要确保返回唯一的数据行。
这时我们需要使用DISTINCT关键字来排除重复数据。
.返回限定的函数
-在MySQL中可以限制查询的行数,并制定从第几行开始到第几行结束
-注意:LIMIT序号是从0开始。LIMUT只能用于MySQL中
选择操作
-SELECT 姓名,年龄 FROM t_student
-执行范围测试
.一个范围搜索,大于等于下限
-定义集合关系
.在指定的某几个值中进行搜索
.标准结构 SELECT 列A,列B FROM 表名 WHERE 列c IN(值集合)
-模糊查询
.模糊查询是一种比较实用的过滤方式,利用通配符来实现模糊查询
.标准结构 SELECT 列A,列BFROM 表名WHERE 列C LIKE
第五章代码演示
SELECT * t_name,t_sex FROM yuangong; //多行查询
CERATE TABLE gongsi1 SELECT * FROM gongsi;
SELECT gongsi1.t_name FROM gongsi1;
SELECT CONCAT (t_name,'-',t-address) AS ‘公司名称和地址’ FROM gongsi;
//想要全部显示在SELECT后面加*,前面想要显示什么就加g.名称,记住后面要跟AS g
SELECT t_age+10 FROM yuangong; //操作临时表
SELECT t_name FROM gongis
排除重复
SELECT DISTINCT t_name FROM gongsi //DISTINCT排除重复,只能对一个要求去重复
控制返回行
SELECT * FROM gongsi WHERE t_id>=2 AND t_id<=3;
SELECT * FROM gongsi LIMIT 2,2; //第一个参数是从0开始的 第一个参数表示从第几行开始返回,第二个参数表示返回几行
如果只有一个参数,第一个参数表示从0开始,
——选择操作
SELECT * FROM gongsi WHERE t_address=" "; //查看选择类数据
SELECT * FROM yuangong ;
SELECT * FROM gongsi WHERE t_address IS NULL //查询公司为空的数据 不为空把IS改为IS NOT NULL
SELECT * FROM yuangong WHER t_age BERWEEN 18 AND 25; //范围 包含
查询集合
SELECT * FROM yuangong WHERE t_age IN (18,19,20); //范围查询 不在这个范围用NOT IN
模糊查询
SELECT * FROM yuangong WHERE t_name LIKE '王%'; //模糊查询 使用通配符查询 通配符在前在后都能查询出来
如果两个通配符就不能查询出来 可通过两个__来查询两字符的
以W开始倒数第二个是n
SELECT * FROM yuangong WHERE t_name LIKE 'W%n_';
% 含义:包含零个或更多字符的任意字符串
_ 含义:任何单个字符
处理空值数据:
关键字:is null(为空值) 和 is not null(不为空值)
语法:select 列名 from 表名 where 列名 is not null或is null;
——排序操作:
语法:select 列名 from 表名 order by 列名 desc(按从大到小排序)或asc(从小到大排序)。
语法(多列排序):select 列A,列B from表名 order by 列A, 列B +desc或asc
基本查询sql的执行顺序:
1.执行from
2.where条件过滤
3.投影
4.执行order by排序