MYSQL学习篇4——查询数据、排序

查询列

选择所有列
在select关键字后面加*,表示选择所有列。
语法:

select * from 表名;

选择指定列
语法:

select 列名1,列名2 from 表名;

查询行

语法:

select1,2 from 表名 where 条件表达式;

满足条件表达式的行都会被保留。where语句紧跟from子句。

注意:

  1. 条件表达式中的不等于可以用!=, <>表示。
  2. 可以用between ... and指定范围,包含上限和下限。
  3. 可以用in指定某值在某集合中。
  4. 可以用like执行有效搜索串值的通配符搜索,其中%表示零个或多个字符,_表示一个字符,具体可以看下面的例子4。
  5. 查询null时,需要使用isis not null
  6. 逻辑表达式可以用orandnot表示,其含义和python语言的逻辑表达式一样。
  7. 优先级规则:算术运算notandor

例子1:
从student表中筛选ssex为的名字。

SELECT sname, ssex from student WHERE ssex='男';

在这里插入图片描述
例子2:
在book表中查询价格在20到30之间的书籍名称。

SELECT bname, bprice from book 
WHERE bprice BETWEEN 20 AND 30;

在这里插入图片描述

例子3:
在student表中查询属于物理系或数学系学生的名称。

SELECT DISTINCT sname, sdept from student
WHERE sdept in ('物理系', '数学系');

在这里插入图片描述

例子4:
在product表中查询product_name包含联想的名称。

SELECT product_name from product
WHERE product_name LIKE '%联想%';

在这里插入图片描述
例子5:
查询sc表中grade为null的cno。

SELECT cno, grade from sc
WHERE grade is NULL;

在这里插入图片描述
例子6:
在student表中查询性别为男且sdept是计算机系的所有数据。

SELECT * from student
WHERE ssex='男' AND sdept='计算机系';

在这里插入图片描述

查询中的算术运算符

语法:

select 列名, 表达式, ... from 表名;

只需要在列后面添加算数表达式即可。如下,查询产品打九折以后的价格。

SELECT product_name, price, price*0.9 from product;

在这里插入图片描述

查询中的取别名

列别名
语法:

select 列名 as 列别名 from 表名 where 条件表达式;

或者

select 列名 列别名 from 表名 where 条件表达式;

例子:
将product表中的product_name取别名为name

SELECT product_name as name from product;

在这里插入图片描述

表别名
语法:

select 表别名.别名 from 表名 as 表别名;

或者

select 表别名.别名 from 表名 as 表别名;

例子:
查询product表中product_name,并把表名取别名为p,product_name取别名为name

SELECT p.product_name as name from product as p;

在这里插入图片描述

查询中的去重

语法:

select distinct 列名1, 列名2 from 表名;

注意:选多个列的话,去重时去重的是多个列公共的行。
例子:
将student表中的ssex列去重

SELECT DISTINCT ssex from student;

在这里插入图片描述

order by排序

单列排序

注意:order by需要位于SQL语句的最后。
SELECT 语句的执行顺序如下:

  1. FROM 子句
  2. WHERE 子句
  3. SELECT 子句
  4. ORDER BY 子句

order by默认升序,也可以用关键字acs升序、desc降序。
语法:

select 列名1, 列名2, ... from 表名 order by 列名 asc;

例子:
查询student表中的sname和sage列,且按sage降序排列。

SELECT sname, sage from student
ORDER BY sage DESC;

在这里插入图片描述
多列排序
语法:

select 列名1, 列名2, ... from 表名 order by 列名1, 列名2...;

排序顺序是,列名1, 列名2,也就是先按列名1排序,在列名1排序好后,列名1中若有相同的数据,则在按列名2排序。

例子:
在orders表中,查询status, total_money的数据,其中status升序,total_money降序。

SELECT status, total_money from orders
ORDER BY status ASC, total_money DESC;

在这里插入图片描述

使用别名排序
语法:

select 列名 as 别名 from 表名 order by 别名;

例子:
查询student表中的sname和sage列,其中sage列取别名为age,且按sage降序排列。

SELECT sname, sage as age from student
ORDER BY age DESC;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42025868/article/details/124560803