MySQL-数据查询语言(DQL)

一、select命令:

SELECT   [ALL | DISTINCT]{  * |  table.* | [ table.field1 [ as  alias1] [, table.field2[as  alias2]][, …]] } 

FROM  table_name  [ as  table_ alias  ]

[ left|out|inner  join  table_name2 ]  #联合查询

[ WHERE  … ]  #指定结果需满足的条件

[ GROUP BY …]  #指定结果按照哪几个字段来分组

[ HAVING …]  #过滤分组的记录必须满足的次要条件

[ ORDER BY… ]  #指定查询记录按一个或者多个条件排序

[ LIMIT  {   [ offset,] row_count    |   row_count OFFSET offset   }] ;  #指定查询的记录从哪条至哪条

[]   括号代表可选的;

{}   括号代表必须的;

#    MySQL语句中的注释符,也可以用   /*该处为注释*/

1、查询所有字段:查询表中所有的数据列结果,采用“*”符号。

语法:select * from 表名;

例:select   *   from student;

2、查询指定字段:查询表中指定字段数据列结果,采用“字段名”。

语法:select  字段名1,字段名2,...,字段名n  from  表名;

例:select studentno,studentname,address from student;

3、AS子句:

AS子句作用:

1)可给数据列(字段)取一个新别名

2)可给表取一个新别名

3)可把经计算或总结的结果用另外一个新名称来代替

AS子句用法

例:

1)字段取别名---显示清晰

select subjectno as "课程号",subjectname as "课程名" from subject;

2)给表取别名---方便引用

select * from student as s;

select s.subjectno from subject as s;

3)给表达式取别名---方便显示

select studentno,sturesult+10 "新成绩" from result;

注:AS 也可省略不写

4、DISTINCT关键字

作用:1.去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条。

语法:SELECT  DISTINCT   字段名1, 字段名2...  FROM   表名

例:

select distinct gradeName from grade;

注:ALL 关键字是默认的,返回所有的记录,与之相反。

5、JOIN联表查询

1)左外连接(LEFT  JOIN):从左表(table_1)中返回所有的记录,即便在右(table_2)中没有匹配的行。

语法:

SELECT   字段1,字段2,…  FROM table_1  LEFT  JOIN   table_2    ON  table_1.字段x   =  table_2.字段y;

例:

select s.studentno,r.sturesult from student s left join result r
on  s.studentno=r.studentno

2)右外连接(RIGHT  JOIN):从右表(table_2)中返回所有的记录,即便在左(table_1)中没有匹配的行。

语法:

SELECT   字段1,字段2,…  FROM table_1  RIGHT   JOIN   table_2    ON  table_1.字段x   =  table_2.字段y;

例:

select s.studentno,r.sturesult from student s right join result r
on  s.studentno=r.studentno

3)内连接 (INNER  JOIN):在表中至少一个匹配时,则返回记录。

语法:

SELECT   字段1,字段2,…  FROM  table_1  INNER  JOIN   table_2    ON  table_1.字段x   =  table_2.字段y;

例:

select studentname,sturesult from student inner join result
on  student.studentno=result.studentno

注:

#  INNER JOIN  与 JOIN 是相同的;

#  如table_1中的行在table_2中没有匹配,则不返回;

6、WHERE条件

WHERE条件用于检索数据表中符合条件的记录,搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假。

1)逻辑操作符:

操作符名称

语法

描述

AND或&&

aANDb或a&&b

逻辑与,同时为真结果才为真

OR或||

aORb或a||b

逻辑或,只要一个为真,则结果为真

NOT或!

NOTa或!a

逻辑非,若操作数为假,结果则为真

2)比较操作符:

操作符名称

语法

描述

IS NULL

A IS NULL

若操作符为NULL,则结果为真

IS NOT NULL

A IS NOT NULL

若操作符不为NULL,则结果为真

BETWEEN

A BETWEEN b AND c

若a范围在b与c之间则结果为真

LIKE

A LIKE b

SQL模糊匹配,若a匹配b,则结果为真

IN

A IN(a1,a2,a3,„.)

若a等于a1,a2„中的某一个,则结果为真

注:

1、数值数据类型的记录之间才能进行算术运算;

2、相同数据类型的数据之间才能进行比较;

3)NULL空值条件查询:

NULL代表“无值”。

区别于零值0和空符串“ ”。

只能出现在定义允许为NULL的字段。

须使用  IS  NULL  或  IS  NOT  NULL  比较操作符去比较。

4)BETWEEN范围查询:

根据一个范围值来检索

语法:

SELECT  字段1,字段2,…    FROM   表名

WHERE   字段名  BETWEEN  值1  AND  值2

例:

select * from result 
where sturesult between 60 and 70;

等同于

select * from result 
where sturesult>=60 and sturesult<=70;

注:BETWEEN范围等同于  >=  和  <=  联合使用

5)IN范围查询

语法:SELECT  字段列1,字段2,…   FROM  表名   WHERE   字段x   IN   ( 值1,值2,值3…)

例:

select * from student 
where studentno in(1002,1004,1006);

等同于

select * from student 
where studentno=1002 or studentno=1004 or studentno=1006;

注:

1. 查询的字段x的值,至少与括号中的一个值相同

2. 多个值之间用英文逗号隔开

6)LIKE模糊查询

语法:SELECT  字段列1,字段2,…   FROM  表名   WHERE   字段x   LIKE  ‘%或_模糊匹配’;

例:

1.查询名字中第一个字是‘李’的同学的学生信息
select * from student
where studentname like '李%';
2.查询名字中第二个字是‘小’的同学的学生信息
select * from student
where studentname like '%小%';
3.查询最后一个字是‘峰’的同学的学生信息
select * from student
where studentname like '%峰';
4.查询姓‘李’且名字只有两个字的同学的学生信息
select * from student
where studentname like '李_';
5.查询年级名中带有‘三’的年级名,并且去重显示
select distinct gradename from grade
where gradename like '%三';

注:在WHERE子句中,使用LIKE关键字进行模糊查询,与“%”一起使用,表示匹配0或任意多个字符。与“_”一起使用,表示匹配单个字符。

7、GROUP  BY分组

使用GROUP  BY关键字对查询结果分组,对所有的数据进行分组统计,分组的依据字段可以有多个,并依次分组,与HAVING结合使用,进行分组后的数据筛选。

语法:

SELECT  字段列1,字段2,…   FROM  表名

GROUP  BY   字段x

HAVING  条件;

例:

select subjectno,count(*) from result
group by subjectno;

例:

select subjectno,avg(sturesult),max(sturesult),min(sturesult) from result 
group by subjectno
having avg(sturesult)>=60;

8、ORDER  BY排序

ORDER  BY排序查询,对SELECT语句查询得到的结果,按某些字段进行排序与DESC(降序)或ASC(升序)搭配使用,默认为ASC(升序)

语法:

SELECT  字段列1,字段2,…   FROM  表名

ORDER  BY  字段x   DESC(降序)或ASC(升序)

例:

升许
select * from result
order by sturesult
降序
select * from result
order by sturesult desc

9、LIMIT行数

LIMIT用于限制SELECT返回结果的行数

语法:

LIMIT   [m,] n或LIMIT n OFFSET m

m  制定第一个返回记录行的偏移量

n  制定返回记录行的最大数目

例:

从第1行开始返回3行内容

select studentno,sturesult from result 
order by sturesult desc 
limit 3

从第4行开始返回3行内容

select studentno,sturesult from result 
order by sturesult desc 
limit 3 offset 3

注:

m不指定则偏移量为0,从第一条开始返回前n条记录

LIMIT  常用于分页显示

MySQL-数据查询语言(DQL)相关推荐

  1. mysql实验6语言结构_实验六 SQL语言数据查询语言DQL.pdf

    实验六 SQL语言数据查询语言DQL 实验六 SQL 语言数据查询语言DQL 一.实验目的 数据查询语言指对数据库中的数据查询.统计.分组.排序等操作.查询语 句可以分为简单查询.连接查询.嵌套查询和 ...

  2. Mysql数据库轻松学06—数据分析师常用:数据查询语言DQL之单表查询

    数据查询语言DQL 用来查询数据库表中的记录 基本结构: SELECT 字段名 FROM 表或视图名 WHERE 查询条件 单表查询 1.结果为虚拟结果集 select语句执行后服务器会按照要求检索表 ...

  3. Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作

    Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很 ...

  4. SQL数据查询语言DQL

    3. DQL DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录. 查询关键字: SELECT 3.1 基本语法 SELECT字段列表 FR ...

  5. mysql数据库tcl_MySQL数据库笔记三:数据查询语言(DQL)与事务控制语言(TCL)

    完整语法格式: select 表达式1|字段,.... [from 表名 where 条件] [group by 列名] [having 条件] [order by 列名 [asc|desc]] [l ...

  6. 第二章 数据查询语言DQL

    目录 1 mysql登录与退出 2  常用基础语句 查询所有数据库 使用某一个数据库 显示某数据库中的所有表 显示表的属性结构 3 MySQL语法规范 关键字格式 注释 4 基础查询 语法 着重号`字 ...

  7. mysql数据查询语言(基本查询语句)

    目录 前言(重要重要重要!!!) 一.构建数据库 二.单表查询 1.基本查询(后缀都是统一为from 表名) 2.排序(所谓升序和降序都是从上往下排列) 3.聚合函数 4.分组查询 5.分页查询 6. ...

  8. 4、数据查询语言DQL

    1.SQL虚拟化结果集 select stu_name,stu_age from student; 2.条件查询 3.条件查询关键使用 select *from student where id =1 ...

  9. 数据查询语言(DQL)

    目录 基础查询命令 条件查询 排序查询 分组查询 连接查询 子查询(内查询) 分页查询 联合查询 基础查询命令 基础查询命令 格式: select 查询列表 from 表名; 查询列表可以是: 表中的 ...

  10. 04_MySql数据查询语言DQL之常见函数

    常见函数 1.字符函数 length 获取参数值的字节个数 select length("zhangsan") as 结果;//8 select length("zhan ...

最新文章

  1. 印第安人的灵魂——敏捷回顾
  2. 动态链接库与静态链接库
  3. 解决EditText在ListView Item中,第一次点击无法获取焦点问题
  4. 我和 Spring 大神的一天
  5. 【干货】推荐系统的商业价值:如何量化?怎么提升?
  6. 安卓颜色标签android
  7. 广安a货翡翠,自贡a货翡翠
  8. Ubuntu中配置虚拟专用网络***
  9. webpack分离打包css和less
  10. 帆软帮助文档_帆软:像阿甘一样,奔跑在商业智能的赛道上
  11. SQL Server 2008 R2 安装图文详解
  12. java项目-第58期基于ssm的酒店管理系统
  13. switch更新主机服务器维护,switch更新链接不到服务器
  14. 联想微型计算机怎么调亮度,联想笔记本如何调节亮度和音量
  15. 2020年,最优秀的大数据公司有哪些?
  16. git查看状态和修改信息
  17. 10个最佳的大数据处理编程语言
  18. Linux中opengl库叫什么名字,Linux下的OpenGL——Mesa和GLX简介
  19. metaq spring
  20. 〖经典怀念〗新白娘子传奇MV之青姐17部完整原版下载

热门文章

  1. (转)硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍...
  2. 电商系统:优惠券实体设计、数据库表设计、满减券、运费券
  3. 使用adb命令清除预装内置的第三方app
  4. SRAM/SDRAM/DDR/Cache
  5. ARM GIC中断控制器介绍
  6. LTE网络-EPC(分组核心网)
  7. BroadcastRecever
  8. 依维世苏打水让办公也可以冒出开心的小泡泡
  9. 将符号(amp; amp;)解码为正常
  10. PHP5.3.5如何连接MSSql Server