1.SQL语言功能:数据定义,数据查询,数据操纵,数据控制
2.创建数据库 语法形式:create datebase 数据库名
3.创建表 语法形式:create table 表名
4.追加元组 语法形式:
insert into 表名(列名)
values(值)
注:若列名省略,values后面的值与存储中保持一致
若列名未省略,values后面的值与列名保持一致
5.对数据进行检索,select 语法形式:
select 列名
from 表名
where 条件(如需整张表信息,不要where,用*)
6.元组删除 delete from 表名 where 条件
注:有where删除表中的某一元组
无where删除整张表
7.列级完整性约束说明
(1)NOT NULL 非空约束 格式:<列名> <类型> NOT NULL
(2)primary key 主键约束 注:如果在列级定义单列主键,可省略括号
(3)foreign key(列名) references 表名 (列名)外键约束
(4)unique 唯一值约束
(5)default 默认值约束
(6)check 列取值范围约束 check(逻辑表达式)
8.撤销基本表 drop table 表名
注:drop table 与 delete区分
9.SQL结构化查询语言
(1)结果去重问题 关键词 distinct 放select后
(2)结果排序问题 格式:order by 列名 asc:升序 省略为升序 desc:降序 放where之后
(3)模糊查询问题 格式:列名(not)like ‘字符串’
%:匹配0到多个字符
_:匹配任意一个字符
[ ]:匹配[ ]中的任意一个字符
[^ ]:不匹配[ ]中的任意一个字符
(4)多表联合查询问题 两个表的连接条件用表名,属性名
(5)重名问题
select 列名 as 列别名
from 表名1 as 列别名1
where 检索条件
10.撤销数据库 drop datebase 数据库名
注:指定当前数据库 use 数据库名
关闭当前数据库 close 数据库名
11.SQL结构查询化语言—子查询
(1)(not)in 子查询 表达式(not)in(子查询)
非相关子查询:内层查询独立
相关子查询:只能从外层向内层传递参数
(2) some / all 比较运算符:<,>,>=,<=,<>:不等于
注:not in 等价于 <>all
in等价于=some
(3)(not)exists(子查询) 语意:子查询结果中有无元组存在
12.SQL提供五个内置聚集函数
count sum avg max min
求个数 求和 求平均 求最大 求最小
13.group by 分组->用在where下面
注:五个聚集函数不能放在where之后
有group by 才能有having子句
例:求不及格课程超过两门的同学的学号
select S# from SC
where Score<60
group by S# having count (*)>2;
14.利用SQL实现关系代数操作
并 union 形式:union[all]
交 intersect 形式:intersect[all]
差 except 形式:except[all]
注:自动删除重复元组,不带all,保留重复元组,带all
空值 格式:is(not)NULL 不能写=NULL(空值不进行运算)
注:NULL参与聚集运算,除count外其他忽略
连接 inner jion, left outer join,right outer join,full outer join
放在where后 格式:表名,四选一,表名 on 连接条件
15.视图 create view 视图名 as
撤销 drop view 视图名
16.不可更新视图情况:(1)包含聚集函数 (2)select子句使用unique或distinct
(3)group by (4)算术表达式 (5)不包含主键