目录
后端小白必看,数据库的增删改查(CRUD)是数据库管理系统中最基本的操作之一。同时,CRUD是每一个敲代码的小编在处理数据层面易取的甜心,也是欲求之而得不尽的束缚。
sql必背术语
主键:表中的一列或一组列,其值能够唯一标识表中的每一行。
列:属性、字段。代表一种数据类型。
行:元组、记录。包含一组相关的数据。
外键:在一个表中存在的另一个表的主键,用于建立表之间的关联。
索引:提高数据库查询效率的数据结构,加速数据检索。
约束:对表中数据进行限制的规则,包括主键约束、唯一约束、外键约束等。
事务:数据库操作的一个执行单元,要么全部执行成功,要么全部失败,具有原子性、一致性、隔离性和持久性的特性。
可视化管理工具
数据库中数据的增删改查操作可以在可视化管理工具里直接通过界面的点击输入删除等,这个跟excel的操作是类似的,此外还有导入导出、附加分离、直接建库建表等操作。当然,我们一般执行增删改查都是用sql语句。注意,sql语句不区分大小写,不过大多关键字习惯用大写。
查询语句
✨SELECT <目标列> FROM <表名> WHERE <条件表达式>
简单查询
⚒如查询男生的资料。压缩语句,查询资料,资料这种词如果在题目中没有明确表示那就有可能是个很泛的词,可用通配符*表示检索表中所有列。因此,可套用公式返回想要的组。
SELECT * FROM student WHERE sex='男'
📙注意没有分号,字符用单引号。select表示选取,要的是什么,看压缩语句,要的是资料在该题隐喻所有列。然后在哪个表,这里提一下有时候题是一个库几个表给你,这时候我们就要找到哪个表有性别这个属性,对这个表进行操作。接着筛选条件是什么,看原语句的修饰词,所以就是在对应属性中找到“男”的有关表示字符。
⚒如查询课程号“0101”且排名为前10%学生的成绩。用order by进行排序,默认升序,desc用作降序,top选取前几个。
SELECT TOP 10 percent grade FROM studentgrade WHERE cid='c0101' ORDER BY grade DESC
⚒如查询平均成绩都在80分以上的学生的平均成绩。用AS作别名即重名,AS关键字可省略。用group by进行分组再用having进行筛选,这里的having类似where。其中的AVG是聚合函数。常用的聚合函数有AVG计算平均值,MAX最大值,MIN最小值,SUM求和。
SELECT AVG(score) AS avg_score FROM Scores GROUP BY student_id HAVING AVG(score) >= 80
模糊查询
📙LIKE关键字
⚒如查询艾老师所教的课程号。这里的老师只给了姓没有名,可以用like关键字进行查询符合姓的老师就行,还要加通配符"%"或"_"占位。
SELECT cid FROM teacher WHERE teac_name LIKE '艾%'
⚒如查询课程“0201”的成绩在80与90之间的同学的学号。表里的格式是以字母开头的课程号,可以用模糊查询。
SELECT stu_id FROM studentgrade WHERE cid LIKE '_0201' AND (grade BETWEEN 80 AND 90)
连接查询
📙多表查询要选定连接条件,join一般为inner join即内连接,此外还有其它等值连接的方式。
⚒如查询课程号为“0110”的学生成绩。在单表中找不到两个属性的对应关系,这时候就要用到外键连接起来了。比如课程表与成绩表选用外键sid即学生学号,可以在where子句进行连接条件,也可以用join on。如果有筛选条件,在where子句后不断加and连接起来即可。
SELECT studentgrade.grade FROM course,studentgrade WHERE course.sid =studentgrade.sid AND course.cid = '0110'
SELECT studentgrade.grade FROM course JOIN studentgrade ON course.sid =studentgrade.sid WHERE course.cid = '0110'
嵌套查询
📙嵌套查询也是子查询,先执行内部的再执行外部的。
⚒如查询课程号为“0110”的学生成绩。嵌套查询,就可以先从另一个表找到外键进行连接,子查询返回选了课程号为“0110”的课程对应的sid,外部查询选了学生成绩表中的成绩。子查询返回单个值可用等号,返回多个值要用IN关键字。
SELECT studentgrade.grade FROM studentgrade WHERE studentgrade.sid = (SELECT sid FROM course WHERE cid = '0110')
插入语句
✨INSERT [INTO] <表名> (列1, 列2, ...) VALUES (值1, 值2, ...);
insert into student (id,name,sex,age) values (001,'李华','男',18)
删除语句
✨DELETE [FROM] <表名> WHERE <条件表达式>;
delete from student where id = '002'
更新语句
✨UPDATE <表名> SET (列1 = 值1, 列2 = 值2, ... )WHERE <条件表达式>;
update student set id='010' where id='011'
小结
以上为sql增删改查语句的一些基本应用,其中查询语句是基础,再学会一点基本概念就能运用数据库的基础语句了。