DQL查询数据

15 篇文章 0 订阅
1 篇文章 0 订阅

DQL(Date Query Language):数据查询语言

(1)所有的查询操作都用它 Select

(2)简单的查询,复杂的查询它都能做~

(3)数据库中最核心的语言,最重要的语句

(4)使用频率最高的语句

Select完整的语法:

SELECT
[ALL | DISTINCT | DISTINCTROw]
[HIGH_PRIORITY]
[STRAIGHT_3OIN]
[sQL_SMALL_RESULT] [sQL_BIG_RESULT][sQL_BUFFER_RESULT]
[sQL_CACHE / sQL_No_CACHE] [sQL_CALC_FOUND_ROwS]
select_expr [, select_expr ...]
[FROM tab1e_references
[PARTITION partition_list][wHERE where_condition]
[GROUP BY {co7_name / expr l position}[Asc / DEsc],... [wITH ROLLUP]][HAVING where_condition]
[ORDER BY {co1_name / expr l position}[Asc / DESc],...]|
[LIMIT {[offset,] row_count / row_count OFFSET offset}][PROCEDURE procedure_name(argument_7ist)]
[INTO OUTFILE 'file_name '
[CHARACTER SET charset_name]
export_options INTO DUMPFILE 'file_name 'INTO var_name [ var_name]]
[FOR UPDATE / LOCK IN SHARE MODE]]

指定查询字段:

-- 查询全部的学生	SELECT 字段 FROM 表
SELECT *FROM student

-- 查询指定字段
SELECT `studentNo`,`StudentName` FROM student

-- 别名,给结果起一个名字  AS 可以给字段起别名也可以给表起别名
SELECT `StudentNo` AS 学号,`StudentName` AS 学生姓名 FROM student AS s

-- 函数 Concat(a,b)
SELECT CONCAT('姓名:',StudentName) AS 新名字 FROM student

语法:SELECT  字段....FROM  表

有的时候,列名字不是那么的见名知意。我们起别名        AS    字段名    as  别名  表名  as  别名

去重 :distinct

 作用:去除SELECT查询出来的结果中重复的数据,重复的数据只显示一条

-- 查询一下有哪些同学参加了考试,成绩
SELECT * FROM result -- 查询全部的考试成绩
SELECT `StudentNo` FROM result -- 查询有哪些同学参加了考试
SELECT DISTINCT `StudentNo` FROM result -- 发现重复数据,去重

 数据库的列(表达式)


SELECT VERSION() -- 查看系统的版本(函数)
SELECT 100*3-1 AS 计算结果 -- 用来计算 (表达式)
SELECT @@auto_increment_increnment -- 查询自增的步长(变量)

-- 学员成绩考试 + 1分查看
SELECT `StudentNo`,`StudentResult` +1 AS '提分后' FROM result

数据库中的表达式:文本,列,Null,函数,计算表达式,系统变量......

select 表达式 from 表

where条件子句

作用:检索数据中 符合条件 的值

搜索的条件由一个或多个表达式组成!结果都是布尔值

逻辑运算符

运算符语法描述
and        &&a and b        a&&b逻辑与,两个都为真,结果为真
or        ||a or b        a | | b逻辑或,其中一个为真,则结果为真
Not        !not a        ! a逻辑非,真为假,假为真!

尽量使用英文字母

-- ==========================	where	========================

SELECT studentNo,`StudentResult` FROM reslt

-- 查询考试成绩在 95~100分之间
SELECT studentNo,`StudentResult` FROM reslt
SELECT StudentResult>=95 AND StudentResult<=100

-- and	&&
SELECT studentNo,`StudentResult` FROM reslt
SELECT StudentResult>=95 && StudentResult<=100

-- 模糊查询(区间)
SELECT studentNo,`StudentResult` FROM restul
WHERE StudentResult BETWEEN 95 AND 100

-- 除了1000号学生之外的同学的成绩
SELECT studentNo,`StudentResult` FROM result
WHERE studentNo!=1000;

-- !=	not
SELECT studentNo,`StudentResult` FROM result
WHERE NOT studentNo=1000;

模糊查询:比较运算符

运算符语法描述
IS NULLa is null如果操作符为NUll,结果为真
IS NOT NULLa is not null如果操作符不为null,结果为真
BETWEENa between b and c若a 在b 和c 之间,则结果为真
Likea like bSQL匹配,如果a匹配b,则结果为真     
Ina 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='' OR address IS NULL

-- 查询有出生日期的同学		不为空
SELECT `StudentNo`,`StudentName` FROM `student`
WHERE `BornDate` IS NOT NULL

-- 查询没有出生日期的同学	为空
SELECT `StudentNo`,`StudentName` FROM `student`
WHERE `BornDate` IS  NULL


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值