MySQL-24 DQL之数据的查询

select * from 表名;

一、语法:

	select  字段列表
	from   表名列表
	here   条件列表
	group by  分组字段
	having  分组之后的条件
	order by  排序
	limit  分页限定

先利用上一讲的知识创建以下表格及数据
在这里插入图片描述

二、基础查询

2.1查询表中所有列数据(多个字段的查询)

2.1.1写出查询每列的名称
	SELECT 字段名, 字段名 FROM 表名;
	SELECT -- 表示查询
	FROM -- 从哪个表查询

具体操作:

SELECT id, NAME ,age, sex, address FROM student2;

在这里插入图片描述

2.1.2.使用*表示所有列
     SELECT * FROM 表名;      

具体操作:

     SELECT * FROM student2;

在这里插入图片描述

2.2查询表中指定列数据

查询指定列的数据,多个列之间以逗号分隔

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

具体操作:
查询student表中的name 和 age 列

	SELECT NAME, age FROM student2;   

在这里插入图片描述

2.3 别名查询

1.查询时给列、表指定别名需要使用AS关键字
2.使用别名的好处是方便观看和处理查询到的数据

	SELECT   字段名1 AS 别名, 字段名2 AS 别名... FROM 表名; 
	SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM   表名 AS 表别名;    

注意:
查询给表取别名目前还看不到效果,需要到多表查询的时候才能体现出好处
AS关键字可以省略
具体操作:
查询sudent表中name 和 age 列,
name列的别名为”姓名”,age列的别名为”年龄”

       SELECT NAME AS 姓名, age AS 年龄 FROM student2;

在这里插入图片描述

2.4清除重复值:

查询指定列并且结果不出现重复数据

     SELECT DISTINCT 字段名 FROM 表名;

具体操作:
查询address列并且结果不出现重复的address

       SELECT DISTINCT address 城市 FROM  student2;

在这里插入图片描述

2.5查询结果参与运算

2.5.1.某列数据和固定值运算
     SELECT 字段名 + 数值 FROM 表名;
2.5.2.某列数据和其他列数据参与运算
     SELECT 字段1 + 字段2 FROM     表名;
     注意: 参与运算的必须是数值类型
2.5.3需求:
    添加数学,英语成绩列,给每条记录添加对应的数学和英语成绩
    查询的时候将数学和英语的成绩相加
2.5.4.实现:

修改student2表结构,添加数学和英语成绩列
ALTER TABLE student2 ADD math INT;
ALTER TABLE student2 ADD english INT;
给每条记录添加对应的数学和英语成绩
在这里插入图片描述

查询math + english的和

     SELECT math + english FROM  student2;

在这里插入图片描述
结果确实将每条记录的math和english相加,但是效果不好看

查询math + english的和使用别名”总成绩”

     SELECT math + english 总成绩 FROM  student2;

在这里插入图片描述
查询姓名、年龄,将每个人的数学增加10分
SELECT name, math + 10 FROM student2;
SELECT name, math + 10 数学加10分 FROM student2;
SELECT age, math + 10 数学加10分 FROM student2;
SELECT age, math + 10 FROM student2;
在这里插入图片描述
在这里插入图片描述

三、条件查询

  1. where子句后跟条件
  2. 运算符

、< 、<= 、>= 、= 、<>
BETWEEN…AND
IN( 集合)
LIKE:模糊查询
占位符:
_:单个任意字符
%:多个任意字符
IS NULL
and 或 &&
or 或 ||
not 或 !

      -- 查询年龄大于20岁

      SELECT * FROM student WHERE age > 20;

      SELECT * FROM student WHERE age >= 20;

        -- 查询年龄等于20岁
        SELECT * FROM student WHERE age = 20;

       -- 查询年龄不等于20岁
       SELECT * FROM student WHERE age != 20;
       SELECT * FROM student WHERE age <> 20;

       -- 查询年龄大于等于20 小于等于30

       SELECT * FROM student WHERE age >= 20 &&  age <=30;
       SELECT * FROM student WHERE age >= 20 AND  age <=30;
       SELECT * FROM student WHERE age BETWEEN 20 AND 30;

        -- 查询年龄22岁,18岁,25岁的信息
        SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
     SELECT * FROM student WHERE age IN (22,18,25);

      -- 查询英语成绩为null
       SELECT * FROM student WHERE english = NULL; -- 不对的。null值不能使用 = (!=) 判断

        SELECT * FROM student WHERE english IS NULL;

       -- 查询英语成绩不为null
      SELECT * FROM student WHERE english  IS NOT NULL;



       -- 查询姓马的有哪些? like
        SELECT * FROM student WHERE NAME LIKE '马%';
        -- 查询姓名第二个字是化的人

       SELECT * FROM student WHERE NAME LIKE "_化%";

      -- 查询姓名是3个字的人
       SELECT * FROM student WHERE NAME LIKE '___';



        -- 查询姓名中包含德的人
      SELECT * FROM student WHERE NAME LIKE '%德%';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值