前言
数据库学完了,但是脑子里还是没有一个系统的数据库操作 概念。借着考试复习的这个机会,总结一下数据库的常用操作。内容参考上课的课件进行了整理,整篇文章会很长。
1.数据库创建管理
1.1 创建数据库
CREATE DATABASE DB ON PRIMARY ( NAME = DB_data, FILENAME = 'F:\DB_data1.mdf', SIZE = 10MB, MAXSIZE = UNLIMTED ), ( NAME = DB_data2, FILENAME = 'F:\DB_data2.ndf', SIZE = 11MB, MAXSIZE = 20MB, FILEGROWTH = 2MB ) LOG ON ( NAME = DB_log1, FILENAME = 'F:\DB_log1.ldf', SIZE = 1MB, MAXSIZE = 30MB, FILEGROWTH = 10% )
1.2 修改数据库
1.2.1 增加数据文件
语法:
alter database 数据库名称
add file 数据文件
[to file group 文件组名称]
add log file 日志文件
操作:
ALTER DATABASE DB ADD FILE ( NAME = , FILENAME = , SIZE = , FILEGROWTH = )
1.2.2 增加日志文件
ALTER DATABASE DB ADD LOG FILE ( NAME = , FILENAME = , SIZE = , FILEGROWTH = , MAXSIZE = )
1.2.3 修改数据文件
语法:
ALTER DATABASE 数据库名
MODIFY FILE 文件属性
操作:将数据库db1中的数据文件data2的初始大小改为10MB,最大容量为20MB,增长幅度为10%
alter database db1 modify file ( name = data2, size = 10, maxsize = 20, filegrowth = 10% )
ALTER DATABASE DB MODIFY FILE ( NAME = , SIZE = , )
1.2.4 删除数据文件和日志文件
语法:
alter database 数据库名称
remove file 数据文件或日志文件的逻辑文件名
操作:删除数据库db1中的数据文件data4和日志文件log2
alter database db1
remove data4
alter database db1
remove log2
1.2.5 增加文件组
语法:
alter database 数据库名
add filegroup 文件组名
操作:在数据库db1中增加一个g2文件组
alter database db1
add filegroup g2
1.2.6 重命名文件组
语法:
alter database 数据库名
modify filegroup 文件组名
name=新文件组名
操作:将数据库db1中的文件组g2更名为g3
alter database db1
modify filegroup g2 name=g3
1.2.7 删除文件组
语法:
alter database 数据库名称
remove filegroup 文件组名
操作:删除数据库db1的文件组g3
alter database db1 remove filegroup g3
1.2.8 修改数据库名称
语法:
alter database 数据库名
modify name = 新数据库名
操作:将数据库db1的名字修改为gl
alter database db1 modify name = gl
1.3 删除数据库
语法: Drop database 数据库名 [,……n]操作:删除数据库DB1,DB2,DB3
DROP DATABASE DB1,DB2,DB3
2.架构与基本表
2.1 创建架构
CREATE SCHEMA T2 AUTHORIZATION User1 CREATE TABLE Test(C1 INT PRIMATY KEY, C2 CHAR(4) ) GRANT SELECT TO User2 DENY DELETE TO User3;
2.2 修改架构
ALTER SCHEMA T1 TRANSFER T2.Test
2.3 删除架构
DROP SCHEMA T2
2.4 创建基本表
2.4.1 表约束
类型:
主键(PRIMARY KEY)约束
惟一(UNIQUE)约束
外键(FOREIGN KEY)约束
检查(CHECK)约束
说明:非空和默认值也可看成是约束。
创建表约束的方法:新建表时,在单列后创建约束或者在所有列之后,再创建约束;如果表已存在,只能通过修改表,添加约束。
语法:
create table 表名(字段名 类型[(长度)] [,……n])
操作:
CREATE TABLE Student ( SNO CHAR(7) PRIMATY KEY, SNAME NCHAR(5) NOT NULL, SID CHAR(18) UNIQUE, SEX NCHAR(1) DEFAULT 'MAN', SAGE TINYINT CHECK (SAGE >= 15 AND SAGE <= 40) SDEPT NVARCHAR(20) ) CREATE TABLE Course ( cno CHAR(6) PRIMARY KEY, cname NVARCHAR(20) NOT NULL, credit NUMRIC(3,1) CHECK (credit > 0), senester TINYINT ) CREATE TABLE SC ( sno CHAR(7) NOT NULL, cno CHAR(9) NOT NULL, grade TINYINT, PRIMARY KEY (sno, cno) FOREIGN KEY (sno) REFERENCES Student (SNO) FOREIGN KEY (cno) REFERENCES Course (cno) )
2.4.1.1 PRIMARY KEY
主键约束的作用:
1.不允许输入重复的值
2.不能取空值 (当主键是由多个属性组成时:某一属性上的数据可以重复,但其组合必须是惟一的;每个属性的值都不能为空。)
3.一个表上只能有一个主键。
2.4.1.2 UNIQUE
惟一性约束的作用:保证列中不会出现重复的数据。主键约束与惟一性约束的区别:
1.一个表中只能定义一个主键约束,但可以定义多个惟一约束。 2.定义了惟一约束的列数据可以为空值,而定义了主键约束的列数据不能为空值。
2.4.1.3 FOREIGN KEY
外间约束的作用:用于建立和强制两个表间的关联,限制外键的取值必须是主表的主键值。2.4.1.4 CHECK
检查约束的作用: 1.用来限制列上可以接受的数据值 2.使用逻辑表达式来判断数据合法性2.4.1.5 DEFAULT
默认约束的作用:当列值未确定且该列又不能为空时,可由系统自动为该列添加一个值2.4.2 添加主键约束
操作:在学生情况表student中,添加“sno”的主键约束,主键约束命名为pk_student如果表不存在
create table student ( sno char (6), sname char (8), ssex bit , sphone char(11) constraint pk_student primary key (sno) )
如