Sql语句查询
查询
select 字段,字段 from 表名 where 筛选条件
条件运算符:> < = <> >= <=
逻辑运算符:
AND
AND 在 WHERE 子语句中把两个或多个条件结合起来。表示和的意思,多个条件都成立。
1)查询年龄大于18且姓张的学生信息
SELECT ID,Name FROM Students WHERE Age>18 AND Name LIKE '张%'
OR
OR可在 WHERE 子语句中把两个或多个条件结合起来。或关系,表示多个条件,只有一个符合即可。
1)查询姓氏为张、李的学生信息
SELECT ID,Name FROM Students WHERE Name LIKE '张%' OR Name LIKE '李%'
NOT
NOT对于条件的否定,取非。NOT BETWEEN ...AND.../NOT LIKE /NOT IN/IS NOT NULL
1)查询非张姓氏的学习信息
SELECT ID,Name FROM Students WHERE Name NOT LIKE '张%'
LIKE模糊查询:
LIKE关键字与通配符一起使用
主要的通配符:
|
通配符 |
描述 |
|
% |
替代一个或多个字符 |
|
_ |
仅替代一个字符 |
|
[charlist] |
字符列中的任何单一字符 |
|
[^charlist] 或者 [!charlist] |
不在字符列中的任何单一字符 |
实例:
1)查询姓氏为张的学生信息
SELECT ID,Name FROM Students WHERE Name LIKE '张%'
2)查询名字最后一个为“生”的同学
SELECT ID,Name FROM Students WHERE Name LIKE '%生'
3)查询名字中含有“生”的学生信息
SELECT ID,Name FROM Students WHERE Name LIKE '%生%'
4)查询姓名为两个字,且姓张学生信息
SELECT ID,Name FROM Students WHERE Name LIKE '张_'
5)查询姓氏为张、李的学生信息
这个可以使用or关键字,但是使用通配符更简单高效
SELECT ID,Name FROM Students WHERE Name LIKE '[张李]%'
6)查询姓氏非张、李的学生信息
这个也可以使用NOT LIKE 来实现,用下面方法更好。
SELECT ID,Name FROM Students WHERE Name LIKE '[^张李]%'
或者:
SELECT ID,Name FROM Students WHERE Name LIKE '[!张李]%'
BETWEEN ...AND...
在两个值之间,比如我从学生中查询年龄在18-20之间的学生信息
SELECT ID,Name,Age FROM Students WHERE Age BETWEEN 18 AND 20
IN
IN 操作符允许我们在 WHERE 子句中规定多个值。表示:在哪些值当中。
1)查询年龄是18、19、20的学生信息
SELECT ID,Name FROM Students WHERE Age IN (18,19,20)
IS NULL/ IS NOT NULL
是否为空/不为空
SELECT ID,Name FROM Students WHERE Age IS NULL
SELECT ID,Name FROM Students WHERE Age IS NOT NULL
ORDER BY(排序)
功能:对需要查询后的结果集进行排序
| 标识 | 含义 | 说明 |
| ASC | 升序 | 默认 |
| DESC | 倒序 |
实例:
1)查询学生信息表的学号、姓名、年龄,并按Age升序排列
SELECT ID,Name,Age FROM Students ORDER BY Age
或指明ASC
SELECT ID,Name,Age FROM Students ORDER BY Age ASC
2)查询学生信息,并按Age倒序排列
SELECT ID,Name,Age FROM Students ORDER BY Age DESC
除了制定某个列排序外,还能指定多列排序,每个排序字段可以制定排序规则
说明:优先第一列排序,如果第一列相同,则按照第二列排序规则执行,以此类推。
3)查询学生的信息,按照总成绩倒序、学号升序排列
SELECT ID,Name,Score FROM Students ORDER BY Score DESC,ID ASC
这个查询含义:首先按Score倒序排列,如果有多条记录Score相同,再按ID升序排列。
查询结果,例子:
|
ID |
Name |
Score |
|
2 |
广坤 |
98 |
|
3 |
老七 |
98 |
|
1 |
赵四 |
79 |
AS(Alias)
可以为列名称和表名称指定别名(Alias)
作用:我们可以将查询的列,或者表指定需要的名字,如表名太长,用其简称,在连表查询中经常用到。
1) 将结果列改为需要的名称
SELECT ID AS StudentID,Name AS StudentName FROM Students
2)用表名的别名,标识列的来源
SELECT S.ID,S.Name,M.Name AS MajorName FROM Students AS S LEFT JOIN Majors AS M ON S.MajorID = M.ID
3)在合计函数中,给合计结果命名
SELECT COUNT(ID) AS StudentCount FROM Students
Distinct
含义:不同的
作用:查询时忽略重复值。
语法:
SELECT DISTINCT 列名称 FROM 表名称
实例:
1)查询学生所在城市名,排除重复
SELECT DISTINCT City FROM Student
2)查询成绩分布分布情况
SELECT DISTINCT(Score),Count(ID) FROM Student GROUP BY Score
学生成绩可能重复,以此得到分数、得到这一成绩的学生数。后续会详细介绍GROUP BY 用法。
MySQL函数汇总:
详见此网站 http://c.biancheng.net/mysql/function/
浙公网安备 33010602011771号