DQL命令查询数据

使用DQL命令查询数据

  1. DQL(Data Query Language,数据查询语言)

​ 查询数据库数据

​ 简单的单表查询或多表的复杂查询和嵌套查询

  1. 查询指定字段

    ​ 查询表中的所有数据列结果,采用*符号

    select * from 表名;

    ​ 查询表中指定数据列的结果

    select 字段名1,字段名2,... from 表名;

  2. AS字句
    ​ 作用: 可给数据列取一个别名
    可给表取一个别名
    可把经过计算或总结的结果用另一个新名称来代替

    ​ 用法:

    select 字段名 as “别名” from 表名;
    select 表名别名.*  from 表名 as 表名别名
    select 数据计算 as 别名 from 表名`
    
  3. Distinct 关键字

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

    ​ 用法:select distinct 字段名1,字段名2...from 表名

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

  4. Where条件语句

    ​ 用于检索数据表中符合条件的记录

    ​ 搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假

    ​ 搜索条件的组成:逻辑操作符,比较操作符

    5.1 逻辑操作符

操作符名称语法描述
AND或&&a and b或a&&b逻辑与,同时为真,结果才为真
OR或||a OR b 或 a||b逻辑或,只要一个为真,结果就为真
NOT或!NOT a 或!a逻辑非,若操作数为假,结果则为真

​ 5.2 比较操作符

操作符名称语法描述
IS NULLa IS NULL若操作符为NULL,则结果为真
IS NOT NULLa IS NOT NULL若操作符不为NULL,则结果为真
BETWEENa BETWEEN b AND c若a在b和c的范围内,则结果为真
LIKEa LIKE bSQ模式匹配,若a匹配b,则结果为真
INA IN(a1,a2,a3)若a等于a1,a2,a中的某一个,则结果为真

​ 注意:数据类型相同的记录之间才能进行算术运算

	   相同数据类型的数据之间才能进行比较
  1. 连接查询(多表查询)

    ​ 如需要多张数据表的数据进行查询,则可通过连接运算符实现多个查询

    ​ 分类:内连接(inner join)

    ​ 等值和非等值的连接查询

    ​ 自身连接查询

     	外连接(out join)
    

    ​ 左连接(left join)

    ​ 右连接(right join)

    6.1 inner join 内连接

    ​ 在表中至少有一个匹配时返回记录

select 字段1,字段2...from table_1

Inner join table_2 on table_1.字段x=table_2.字段y;

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

​ 等值和非等值的连接查询

​ 与单表查询类似,都是select语句

​ 把多个表放在from后,并用逗号隔开

​ 可使用AS关键字取别名,便于引用

​ 要求:从subject和grade数据表查询课程名称和所属年级名称

#非等值连接查询
select subjectName,gradeName from subject,grade
 #返回的记录数为两表记录数的乘积
#等值查询
select subjectName,gradeName from subject,grade
Where subject.gradeID=grade.gradeID;
#等效于内连接

​ 6.2 out join外连接

​ 左连接(left join)

​ 从左表(table_1)中返回所有的记录,即便在右(table_2)中没有匹配的行

select 字段1,字段2,...from table_1
left join table_2 on table_1.字段x=table_2.字段y

​ 右连接(right join)

​ 从右表(table_2)中返回所有的记录,即便在左(table_1)中没有匹配 的行

select 字段1,字段2,...from table_1

right join table_2 on table_1.字段x=table_2.字段y

​ 6.3 join 对比

操作符名称描述
inner join(join)如果表中至少有一个匹配,则返回行
left join不论右表是否有匹配,都会返回左表的所有行
right不论左表是否有匹配,都会返回右表的所有行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值