【数据库零基础到精通】第4章 Mysql DQL(1)无条件查询详解

文章中用到的mysql安装文件和图形化工具,可以查看文章末尾获取

在这里插入图片描述

1、DQL

1.1 无条件查询

注意:查询不会对数据库中的数据进行修改,只是一种显示数据的方式。

1.1.1 查询表中所有列数据

  1. 写出查询每列的名称
SELECT -- 表示查询
SELECT 字段名1, 字段名2, ... FROM 表名;

具体操作案例:

SELECT id, name ,age, sex, address FROM student3;

image-20241126155808078

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

具体操作:

SELECT * FROM student;

image-20241126160103601

一般情况下,除非需要使用表中所有的字段数据,最好不要使用通配符‘*’。使用通配符虽然可以节省输入查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。通

配符的优势是,当不知道所需要的列的名称时,可以通过它获取它们。在生产环境下,不推荐你直接使用 SELECT * 进行查询。

1.1.2 查询制定列数据

  • 查询指定列的数据,多个列之间以逗号分隔
SELECT 字段名1, 字段名2 FROM 表名;
  • 具体操作:查询student3表中的name 和 age 列
SELECT name, age FROM student;

image-20241127134526250

1.1.3 别名查询

  1. 查询时给列、表指定别名需要使用AS关键字

  2. 使用别名的好处是方便观看和处理查询到的数据
    SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名;
    SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名 AS 表别名;
    注意:

    查询给表取别名目前还看不到效果,需要到多表查询的时候才能体现出好处 AS关键字可以省略

  3. 具体操作:

    • 查询sudent表中name 和 age 列,name列的别名为”姓名”,age列的别名为”年龄”
    SELECT NAME AS 姓名, age AS 年龄 FROM student;
    

    image-20241127134746667

1.1.4 查询清楚重复值

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

    SELECT DISTINCT 字段名,字段名,.. FROM 表名;
    
  2. 具体操作:

    • 查询address列并且结果不出现重复的address
    SELECT DISTINCT address 城市 FROM student3;
    

image-20241127135902624

1.1.5 查询显示表结构

DESCRIBE student;DESC student;

image-20241127154006416

其中,各个字段的含义分别解释如下:

  • Field:表示字段名称。
  • Type:表示字段类型,这里 barcode、goodsname 是文本型的,price 是整数类型的。
  • Null:表示该列是否可以存储NULL值。
  • Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一部分;MUL表示在列中某个给定值允许出现多次。
  • Default:表示该列是否有默认值,如果有,那么值是多少。
  • Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

1.1.6 查询常数

SELECT 查询还可以对常数进行查询。对的,就是在 SELECT 查询结果中增加一列固定的常数列。这列的取值是我们指定的,而不是从数据表中动态取出的。

可能会问为什么我们还要对常数进行查询呢?

SQL 中的 SELECT 语法的确提供了这个功能,一般来说我们只从一个表中查询数据,通常不需要增加一个固定的常数列,但如果我们想整合不同的数据源,用常数列作为这个表的标记,就需要查询常数。

比如说,我们想对 student3 数据表中的学生姓名进行查询,同时增加一列字段 corporation ,这个字段固定值为“虾米课堂”,可以这样写:

SELECT '虾米课堂' as corporation, name FROM student3;

image-20241127154625185

定值为“虾米课堂”,可以这样写:

SELECT '虾米课堂' as corporation, name FROM student3;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值