SQL语言引导词
DDL:数据库定义语言
DML:数据库操作语言
DCL:数据库控制语言
1.DDL语句引导词
数据库定义语言
用于各种对象的定义和删除,操作对象是表
2.DML语句引导词
数据库操作语言:增删改查,操作对象是记录
3.DCL语句引导词
数据库控制语言,操作对象是用户权限
常用数据库
1.学生选课数据库SCT
包括学生、院系、课程、教师、选课五张表
如何建立数据库
1.创建数据库
使用数据库定义语言DDL创建数据库
类似C语言,用分号;作为语句结尾
2.创建表Table
方括号表示可省略的参数,竖线表示两项可选参数
数据类型
和高级语言的数据类型大部分一致,细节上可能有小差别
3.示例
定义学生表
红色为表名或属性名(列名)
在数据类型之后,可以用空格加一些约束
定义课程表
如何向表中追加元组
为表增加元组操作属于数据库操作语言DML的范畴
使用Insert into关键字
追加的值要与追加的列名(属性名)一一对应
若不给出属性名,则值的按照表定义时的属性属性作为默认顺序
单表查询Select
1.检索语句
示例:检索学生表中所有学生信息
示例:检索学生表中所有学生的姓名和年龄
不写where子句时,默认为找出关系中的所有元组
2.检索条件的书写
检索条件表达式中可使用逻辑运算,与、或、非、括号
类似foreach遍历中加上一条if
示例:或
3.是否去重复关键字DISTINCT
加上关键字DISTINCT后,表明结果中去除重复元组
4.结果排序order by
ASC:升序排列,从小到大(省略时默认升序)
DESC:降序排列,从大到小
升序示例(此时不写ASC也可):
降序示例:
5.模糊查询问题
引入新运算符like、not like
与字符串做一个模糊的匹配
多字符匹配%示例:
单字符匹配_示例:
反匹配not like示例:
多表联合查询Select
在from后写上需要联合访问的所有表名
将连接操作放在检索条件之中
等值连接示例
在from后写上所有表名,where后写查询条件
相同的属性名,用成员访问操作符.来标注其属于哪一个表
重名表处理
在From步骤
用as关键字给表起一个别名
在Select步骤,也可以用as给列起别名
不等值连接
增、删、改操作(更新操作)
新增Insert into
单一元组新增
若不写列名,则默认为值的排列与表的列的排列一致
批量元组新增
查询的括号中列名的排列顺序
应该与要新增进的表的列排列顺序一致
若不写列名,则两个参数的排列顺序,必须与表的排列顺序一致
SQL语言的语句块类似python,用缩进来标注子查询
插入平均成绩
删除Delete
也是类似遍历+if判断+删除操作的结构
修改操作Update
set之后写赋值表达式作为对表的修改
包含平均运算的修改示例
使用子查询可表示批量操作
所以查询操作非常重要
若不写属性名,值的排列顺序必须与表的列排列顺序一致
语句块标记方式:缩进(类似python)
核心都是select from where
数据库的撤销与修改
修正数据库定义Alter
增加列:add
删除完整性约束:drop
修改列定义:modify
撤销(整个删除) drop
delete是删除表中的元素、元组
drop是删除整个表或数据库