数据库视频1-5章总结
第一章
SQL server优点;1.功能强大2.操作简单3.安全性可靠
数据库模型:层次模型、网状模型、关系模型
关系模型由数据表和数据表之间的关联组成。
关系数据库完整性规则:
1.实体完整性:主键不能为空值(不知道或无意义的值)。
2.参照完整性:外键的每个值必须在关系R2中主键的值中找到或为空值。
3.用户定义完整性:存在针对某一具体的实际数据库的约束条件。
E-R模型:用简单的图形反映现实世界中存在的事物或数据及它们之间的关系。
第三章
数据库的组成:表、视图、存储过程、触发器、用户与角色、其他
SQL Server语句的简单使用
创建数据库:
CREATE DATABASE 数据库名On (数据库的名称、大小等设置)
修改数据库名称:
ALTER DATABASE 数据库名称 (MODIFY NAME =新名称)
删除数据库:
DROP DATABASE 数据库名称
分离数据库:将数据库分离出去
无法对数据库进行分离的情况:
1.已复制并发布数据库
2.数据库中存在数据库快照
3.数据库处于未知状态
数据库快照:数据库快照提供源数据库在创建快照时刻的只读、静态视图。
创建数据库快照:
CREATE DATABASE 快照名称
ON (名称、具体路径设置)
AS SNAPSHOT OF 源数据库
第四章
整数数据类型:bigint、int、smallint、tinyint
小数类型:dicimal、numeric
货币类型:money、samllmoney
浮点类型:float、real
Bit 只能代表0或1
字符数据类型:char、varchar、text、Nchar、Nvarchar、Ntext
char在计算机中占用空间为固定长度
varchar在计算机中占用空间随字符长度而变化
日期和时间数据类型:datetime和smalldatetime
二进制数据类型:binary、varbinay、image
SQL Server语句创建数据表
CREATE TABLE 数据表名称
( 列名 数据类型 是否为空)
临时表:临时创建的、不能永久保存的表
临时表分类:
本地临时表:名称以单个数字符号#打头,仅对单签的用户连接可见,当用户从SQL Server实例断开连接时自动删除
全局临时表:名称以两个##打头,对任何用户都可见,当所有引用该表的用户从SQL Server断开连接时被删除
CREATE TABLE #表名
(列名 数据类型 是否为空)
实例:
CREATE TABLE #临时表
( id int not null,
Name nvarchar(10) null,
Address nvarchar(10) null)
注意逗号、括号等符号为英文格式
设置标识字段
目的:避免重复,保证记录的唯一性
SQL Server语句修改表
重命名
exec sp_rename 'user_Info','新user_Info'
修改表中具体的列
添加列
alter table user_Info
add 年龄 Int NULL
修改列
alter table user_Info
alter column 年龄 smallint null
用户自定义数据类型:用户自己设计并实现的数据类型
用户自定义数据类型创建必须提供三个参数:
1.数据类型名称
2.所基于的系统数据类型
3.数据类型的可空性
使用SQL server语句创建规则来限制列值
create rule result
as
@result between 0 and 100
第五章
视图
视图的创建:CREATE VIEW 视图名称 AS 查询表达式 约束条件
实例:
create view v_student
as
select a.student_Name,a.student_Sex,a.student_ID,b.classroom_No,b.director
from student_Info a,class_Info b
where a.class_NO=b.class_No
视图的修改:ALTER VIEW 视图名 AS 条件
实例:
alter view v_student
as
select a.student_ID,a.student_Name,b.grade,b.director,c.result,c.exam_No
from student_Info a join class_Info b
on a.class_NO=b.class_No
join result_Info c
on c.class_No=b.class_No
删除视图:DROP VIEW 视图名
通过视图修改数据:
以下情况无法进行修改
a、SELECT列表中含有DISTINCT
b、SELECT列表中含有表达式,如计算列、函数等
c、在FROM子句中引用多个表
d、引用不可更新的视图
e、GROUP BY 或HAVING子句
实例:
insert into v_student
values('22','丁瑞','张飞','二年级','96')
索引
索引是某个表中一列或者若干列的集合和相应的只想表中物理标识这些都值得数据也得逻辑指针清单。
索引的优点
1.保证数据记录的唯一性。
2.加快数据检索速度。
3.加快表与表之间的连接速度。
4.使用order by(排序),group by(分组)子句进行检索数据时,可以减少查询中分组和排序的时间。
5提高系统性能。
创建索引
create nonclustered index_classname
on 班级信息(班级名)
创建架构:create schema 架构名称 AUTHORIZATION 数据库角色/(架构所有者)