目录
一、运算符
(1)算术运算符
(2)赋值运算符
(3)比较运算符
(4)逻辑运算符
二、向表中添加数据
这时候就会由于存在主外键的关系,我们因此应该先向主表添加数据,然后再向子表添加数据。
目前只能手动添加,以后我们会用代码进行编写。这时候我们回到页面,点击编辑前200行。
图书分类表:
图书表:
留一个课堂小练习
(1)创建数据库 sundb
(2)创建表
年级表:grade
要求:年级编号主键,且是标识列
学森表:student
要求:(1)学号主键 密码默认为“123456”,且密码长度必须大于等于6 len(loginpwd) >= 6
(2)性别只能是男或女
(3)地址默认“学生宿舍”
(4)电子邮件必须包含@符号 email like '%@%'
(5)所在年级与年级表关联
科目表:Subject
要求:(1)科目编号主键,且是标识列
(2)@学时必须大于0
成绩表:Result
要求:(1)id是主键,标识列
(2)学号与科目编号关联学生表和科目表
SQL,SQL是结构化查询语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL分为五类(1)DDL(2)DML(3)DQL(4)DCL(5)TCL,其中DML和DQL是最重要的。
三、添加操作
(1)单行插入
语法:insert [INTO] 表名 [(列名)] values (列值)
其中 insert 就是插入的意思, into 可写可不写 为了规范最好写, 将什么列,插入什么表,用什么值。
例如:--向图书分类表插入一条数据
insert [INTO] type tname values ('法律')
注意事项:(1)标识列不能给值
(2)不允许为null的列必须给值
(3)插入数据必须符合约束条件
(4)有默认值的列可以使用default代替值,或省略不写
(5)列名可以省略,但必须按表中的列的顺序和个数给值
(2)多行插入
语法: insert [INTO] 表名 [(列名)] values (值列表1),(值列表2),(值列表3),......(值列表n);
insert [INTO] grade (gradename)values ('stage2'),('stage3');
(3)提取数据
方法一
语法: select (列名)INTO <表名> FROM <源表名>
从一个数据表,提取 一些列名到一个表中。
方法二
insert INTO <表名> (列名)
select <列名>
from <源列表>
从一个源数据表中查询 某些列名,然后插入一个表中。
四、修改操作
update 表名 set 列名=更新值,列名=更新值........
[where 更新条件]
例如 update book set bprice=80 where bid=4;
就是我们指定编号4的书籍的价格由原来变成现在的80元。
五、删除操作
delete [from] 表名 [where <删除条件>]
例如 delete from book where bid=5
删除图书表中的编号为5的图书。
注意:要是有关联的表 应该先删子表数据,在删除主表数据。
六、查询操作
查询操作,实际上对表中的数据进行重组,对表中数据不会产生任何任何影响
(1)查询全部
select 列名1,列名2,列名3......from 表名;
或者是 这种方法 select * from 表名;
(2)查询部分列
select 列名1,列名2,列名3.....from 表名;
(3)条件查询
select 列名 from 表名 where 查询条件;
(4)查询并赋别名
select 列名 as(as可省略)名称 from 表名;
(5)限制固定行数查询
有两种方式,1 返回固定行,2返回百分比。
select top row 列名
from 表名; 这是查询前几行的表示式
select top 30 percent
from 表名;按照表中的百分比进行查询
(6)查询空行
select 列名 from 表名
where 列名 is null (is not null)
(7)范围查询
between and 在两个值之间,in 断点式查询(值1,值2,值3)
(8)模糊查询
关键词 like 像的意思
通配符:_(任意一个字符),%(任意多个字符)
(9)排序查询
order by 列名 [asc/desc]
其中 asc 是升序 即默认的意思 可写可不写,desc 是降序,而且,紧跟每一个列名后面
如 order by bprice desc,bid desc;
七、聚合函数
所谓的聚合函数就是 sum、max、min、avg、count
求和函数:sum (列)
最大值:max(列)
最小值:min(列)
平均值:avg(列)
计数:count(列)
举个栗子:查询2022年10月16日科目HTML的考试科目的平均分,最高分,最低分
select avg (分数对应的表是 studentresult),max(studentresult),min(studentresult)from result(分数在result这个表中) where datatime=2022-10-16 and subjectname=html;