前言
眼看着考研的成绩就出来了 ,莫名奇妙的自信让我感觉初试肯定能过,所以再次对复习的数据库的知识进行一定的总结
SQL结构化查询语言
是一种介于关系代数和元组之间的一种结构化查询语言,广泛用于商用系统中,一个SQL数据库是表的汇集
SQL的功能特点和体系结构
SQL的功能包括 数据定义,数据操作,数据控制 ,主要特点包括
-
综合统一:sql是结合数据定义,数据控制,数据操作为一体的
,语言风格统一,能独立完成数据库声明周期的所有活动。 -
高度非过程化:SQL语言对于数据库的操作只需要指出操作什么而不用指明如何操作。
-
面向集合的操作方式:SQL采用的是面向集合的操作方式,他的操作对象可以是集合也可以是元阻。
-
两种使用方式:自含式语言和嵌入式语言
SQL基本语法
- 创建数据表
建表语句的基本格式。 create table 表名 (列名 列的数据类型 列级完整性约束))
create table S (Sno char(3) not null unique,Sname char(30) unique,Status Char(8),City Char(20))
create table Student(Sno int,Sname char(30),Sage int,Sex int)
- 修改数据表
alter table <表名> [add <新列名><数据类型>[完整性约束条件]] drop[<完整性约束>] [modify<列名><数据类型>]
alter table S add Zap char(30)
alter table S modify Status int
- 删除基本表
drop table<表名>
drop table Student;
- 创建索引的基本格式
create [unique][cluster] index<索引名>on <表名>(<列名>[<次序>])
create unique index SS on S(Sno desc)
- 创建视图
create view <视图名>(表名) as select 查询子句 with check option
视图使用规则
1子查询可以是任意复杂的select子句 但是就是不能含有 order by distinct 关键字
2 with checkout option 是对 update insert delect 子句操作是保持更新
3 组成视图的列属性要不然全部指定,要不然全部省去
create view CS_STUDENT
as select Sno Sname,Sage,Sex from Student where Sage= '12'
with check option
- 查询数据表
select [all|distinct]<目标表达式> from <视图名|表名>where[条件][group by <列名>[having<条件表达式>]][order by <列名>[asc|desc]]
1 select:子语句输出的可以是列名,表达式,集合函数
2 destinct:可以保证输出的元组不重复
3 where:子句中的条件表达式
-
集合成员:in /not in 是否存在与集合之中
-
字符串匹配运算符:like 是与 _和 %等多个字符匹配
-
空值运算符的比较:is null/ is not null 数值是否可以为空
-
算数运算符:大于小于等于不等于…
-
逻辑运算符: and / or / not 对应于 与 或 非
-
多集函数
count:计算元组的个数
sum:计算元组的数值之和
avg :计算元阻的数值的平均值
max:计算元组的数值的最大值
min: 计算元组的数值的最小值
any:大于子查询某个数值
all: 大于子查询的全部数值 -
直接插入数据
1 insert into 表名(列表名) values (具体的数值)
2 insert into 表名(列表名) select 查询子句 -
删除数据
delect from 基本表名 [where 条件表达式] -
数据更新
update 基本表名 set 列名 =值表达式[where 条件表达式] -
授权基本格式
grant<权限> [on <对象>] to [用户] [with grant option] -
收回权限
renove<权限>[on<对象类型><对象名>][from 用户]