DQL
(Data Query Language: 数据查询语言)
- 所有的查询操作都用它 Select
- 简单的查询,复杂的查询他都能坐
- 数据库中最核心的语言,最重要的语句
- 使用频率最高的语句
指定查询
-- 查询全部的学生,Select 字段 from 表
SELECT * FROM student
-- 查询指定字段
SELECT `stuid` ,`stuname` FROM student
-- 别名 ,给结果起一个名字 as
SELECT `stuid` as 学号 ,`stuname` as 姓名 FROM student
-- 函数 拼接字符串 Concat
SELECT CONCAT('姓名:',stuname) as 新名字 from student
语法: Select 字段… from 表
去重 distinct
作用:去除 SELECT 查询出来的结果中重复的数据,重复的数据只显示一条
-- 发现重复数据 ,去重
SELECT DISTINCT 字段 FROM 表名
数据库的列 表达式
-- 查询系统版本 (函数)
SELECT VERSION()
-- 用来计算 (表达式)
SELECT 100*21-1 AS 计算结果
-- 查询自增的步长 (变量)
SELECT @@auto_increment_increment
-- 学员考试成绩+1分查看
SELECT `studentno`,`studentresult`+1 as `提分后` From result
where 条件字句
作用 :检索数据中 符合条件的 值
搜索的条件由一个或者多个表达式组成! 结果 布尔值
逻辑运算符
运算符 | 语法 | 描述 |
---|---|---|
and && | a and b a &&b | 逻辑与 两个都为真,结果为真 |
or || | a or b a ||b | 逻辑或 其中一个为真,结果为真 |
Not ! | not a !a | 逻辑非 真为假 假为真! |
尽量使用英文字母
================================= where===================================
SELECT studentno , `studentResult` FOMR result
-- 查询考试成绩在 95~100之间
SELECT studentno , `studentResult` FOMR result
where `studentResult`>=95 and `studentResult`<=100
-- ADN &&
SELECT studentno , `studentResult` FOMR result
where `studentResult`>=95 && `studentResult`<=100
-- 模糊查询(区间)
SELECT studentno , `studentResult` FOMR result
where `studentResult BETWEEN 95 AND 100
-- 查询除了学号为1000学生的成绩
SELECT studentno , `studentResult` FOMR result
where `studentResult !=1000
-- != not
SELECT studentno , `studentResult` FOMR result
where NOT `studentResult 1000
模糊查询 :比较运算符
运算符 | 语法 | 描述 |
---|---|---|
is null | a is null | 如果操作符为null ,结果为真 |
is not null | a is not null | 如果操作符不为 null 结果为真 |
between | a between and c | 若 a 在 b 和c 之间,则结果为真 |
like | a like b | sql 匹配 如果 a匹配 b 则结果为真 |
in | a in (a1,a2,a3…) | 假设 a在 a1,或者 a2… 其中的某一个值中,结果为真 |
-- =================================== 模糊查询 =================================
-- 查询姓刘的学生
-- like结合 %(代表0到任意个字符) _ (代表一个字符)
SELECT `studentNo` ,`studentName` FROM `student`
where `studentName` like '刘'
-- 查询姓刘的同学,名字后面就有一个字的
SELECT `studentNo` ,`studentName` FROM `student`
where `studentName` like '刘_'
-- 查询姓刘的同学,名字后面就有两个字的
SELECT `studentNo` ,`studentName` FROM `student`
where `studentName` like '刘__'
-- 查询名字中有小的同学
SELECT `studentNo` ,`studentName` FROM `student`
where `studentName` like '%小%'
-- =========== in 具体的一个或多个值 ==========
-- 查询 1001 1002 1003号的学员
SELECT `studentNo` ,`studentName` FROM `student`
where `studentNo` IN (1001,1002,1003);
-- 查询在北京的学生
SELECT `studentNo` ,`studentName` FROM `student`
where `address` IN ('北京');
-- ===================== null not null ======================
-- 查询地址为空的学生 null ''
SELECT `studentNo` ,`studentName` FROM `student`
where `address`=null or `address` IS NULL
-- 查询有出生日期的学生 不为空
SELECT `studentNo` ,`studentName` FROM `student`
where `birthday` IS NOT NULL
-- 查询没有出生日期的同学 为空
SELECT `studentNo` ,`studentName` FROM `student`
where `birthday` IS NULL