DQL学习

DQL语言(data query language,数据查询语言)

  • 查询数据库数据,如select语句
  • 简单的单标查询或多表的复杂查询和嵌套查询
  • 数据库中最核心最重要的语句
  • 使用评率最高的语句

select语句语法

在这里插入图片描述
[]代表可选的,{}代表必须的

as子句

  • as子句可以给数据列和表取别名
  • 可以吧经计算或总结的结果用另一个新名称来代替
  • as可以省略不写
    在这里插入图片描述

指定查询的字段

查询表中所有的数据列结果

select * from 表名  (不推荐使用,效率不高)

查询表中指定的结果数据列(可以取别名)

select name from 表名  (只查询name)
select t.name n t.age  a from teacher as t; (取别名查询)

查询多个表有同名的字段,用(表名.字段)指定该字段属于那个表

select t.name,s.age from teacher as t ,student as s;

distinct关键字

all 关键字是默认的,即显示所有的记录,distinct与之相反,是去掉select查询返回的记录中重复的记录

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

在这里插入图片描述
查询不重复的studentno

select distinct studentno from result;	(部分去重)
select distinct * from result; (整行去重)

添加组外界依赖

表中某列依赖于另一张表的某列,需要在常见表时增加这一行
constraint 外键名 foreign key (依赖外表的列) references 被依赖的表(被依赖的列)

  • 方式一
    直接在创建表时再表后加
constraint FK_GradeId foreign key (GradeID) references grade(GradeID)
  • 方式二
    先创建表再增加外键
alter table subject add constraint FK_gradeid2 foreign key(gradeid) references grade(gradeid);
  • 删除外键
alter table subject drop foreign key FK_gradeid2;

select使用表达式

表达式一般有文本值,列值,null,函数和操作符等组成
应用场景:
select语句返回结果列中使用
select语句的order by,having等子句中使用
dml语句中的where条件语句中使用表达式

#运算
select studentresult*0.7 from result;
select 1+3;
#给返回结果中的课时都加10个小时
select subjectname "课程名称", classhour+10 as "新学时" from subject;

where 条件语句

  • 用于检索数据表中符合条件的记录
  • 搜索条件可有一个或多个逻辑表达式组成,结果一般为真或假
  • 搜索条件的组成(逻辑操作符,比较操作符)
select * from result where studentresult=100 and subjectno=1;
select studentresult from result where studentresult between 80
and 90;

  • 逻辑操作符
操作符名称语法描述
and或&&a and b 或 a && b逻辑与,同时为真,结果才为真
or或\\a or b 或 a\\b逻辑或,只要一个为真,则结果为真
not 或 !not a 或 !a逻辑非,若操作数为假,结果则为真
  • 比较操作符
操作符名称语法描述
is nulla is null若操作符为null,则结果为真
is not nulla is not null若操作符不为null,则结果为真
betweena between b and c若a范围在b与c之间则为真
likea like bsql模式匹配,若a匹配b,则结果为真
ina in(a1,a2,a3…)若啊等于a1,a2,a3…中的某一个,则结果为真

update修改表内数据

update 表名 set 要修改的列=要修改的内容 where 判断条件

update teacher set name="冰冰" where id=1;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值