简单数据查询
1.投影操作
含义:在SQL查询中,使用SELECT 子句,选择将对表中的哪些列进行操作,这些列将出现在结果中。
单列: SELECT 列表的列名 from 表名;
多列: SELECT 列表的列名,列名,列名 from 表名;
所有列: SELECT * from 表名;
1).表明前缀
作用:了解信息从哪个表中来; 区分不同表的同名列;
SELECT 表名.列名 from 表名;
2).列别名
作用:使SQL语句和返回的数据更具可读性,更容易理解,并且节省空间;在多个表有同样的列名时,使用别名更容易区分。
使用列(表)别名: SELECT 列名1 AS 别名1 , 列名2 AS 列名2 FROM 表名 AS 表别名;
SELECT 表别名.列名1 AS 别名1 , 表别名. 列名2AS 列名2 FROM 表名 AS 表别名; *AS可省略
3).计算列
含义: 返回计算列时,数据不存在于数据库中,但是可以从数据库中构造或者计算得来。
SELECT 学号+10,年龄列 +20 FROM 表名;
4).排除重复数据
含义:数据库同列中,经常有相同值多次出现,排除重复数据就是确保满足返回唯一的数据行的需要。
满足一个条件: SELECT DISTINCT 列名1 FROM 表名; 只显示列名1中,值唯一的行
同时满足两个条件: SELECT DISTINCT 列名1,列名2 FROM 表名; 显示列名1,列名2中,两者的值同时唯一的行
5).返回限定行的查询
无起点限定行查询: SELECT 列1,列2 FROM 表名 LIMIT 2; *2表示:从0开始,总共返回两行数据 。
有起点限定行查询: SELECT 列1,列2 FROM 表名 LIMIT 3,4; *3表示:从第四行开始 4表示:共返回四条数据。
2.选择查询
1).单条件选择操作:
SELECT 列1,列2 FROM 表名 WHERE 列3=值; * 查询第三列所在行的列1,列2的数据 。(!= ,<>非等于 ,> , < , >= ,<=)
2).多条件查询:
含义:多个条件组合查询。
SELECT 列1,列2 FROM 表名 WHERE 列3=50 OR 列4=10; *满足几个就显示几个
SELECT 列1,列2 FROM 表名 WHERE 列3<50 AND 列4>10; *显示同时满足两者的数据
3).定义集合
作用:检测值是否在一个系列范围之内或者之外。
SELECT 列1,列2 FROM 表名 WHERE 列3 IN (20,25,60); *查询表中列3在20,25,60的列1,列2的数据
SELECT 列1,列2 FROM 表名 WHERE 列3 IN not (20,25,60); *查询表中列3不在20,25,60的列1,列2的数据
4).模糊查询
select *from 表名 where 列名 like '王%'; *查询表中列的值以 王字开头的数据
select *from 表名 where 列名 like '%光'; *查询表中列的值以光字结尾的数据
select *from 表名 where 列名 like '__'; *查询表中列的值是两个字的数据
select *from 表名 where 列名 like '王%穆_'; *查询表中列的值以王字开头,倒数第二个子是穆的数据
5).处理空值数据
select *from 表名 where 列1 IS null; *查询表中所有列1为空值的数据
select *from 表名 where 列1 is not null; *查询表中所有列1不为为空值的数据。
3.排序操作
1 单列排序: select 列名 from 表名 order by 列名 asc(升序)or desc(降序);
select * from s_stu ORDER BY ID DESC (降序);
select *from s_stu ORDER BY ID ASC (升序 ) ; *ASC可省 默认为升序
select *from s_stu ORDER BY ID ASC (升序 ) , age ; *排序从左至右依次执行,age排序在ID排完的基础上再排