数据库系统
一:数据库与表
1:创建数据库
1):新建查询中的命令行:
CREATE DATABASE student
on
(
name
= 'stu',
filename
= 'stu_data.mdf',
size
= 5,
maxsize
= 500,
filegrouth
= 10%
)
LOG
ON(
name
= 'stu_log',
filename
= 'stu_log.ldf',
size
= 3,
filegrouth
= 1
)
2):图形化界面操作:
数据库 -->新建数据库
2:创建表
注意: 1:小括号为程序段
2:每句末尾加 逗号,最后一句不加
3:声明表时一定要加 主键,否则后面会出错
CREATE TABLE student
(
Sno
INT PRIMARY KEY,
Sname
CHAR(10),
Ssex
CHAR(2),
Sage
int,
Sdept
CHAR(10),
)
CREATE TABLE SC
(Sno
CHAR(9),
Cno
CHAR(4),
Grade
SMALLINT,
PRIMARY KEY (Sno,Cno
),
FOREIGN KEY (Sno
) REFERENCES Student
(Sno
),
FOREIGN KEY (Cno
) REFERENCES Course
(Cno
)
);
3:修改基本表
ALTER TABLE <表名> [ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ] [ ALTER COLUMN<列名> <数据类型> ];
注:表的删除操作中:
cascade表示所有引用到该列的视图或有关约束一并删除;
restrict表示在没有视图或有关约束引用时,该列才能被删除,否则拒绝操作
例
1 增加):给学生表新增一个属性“民族”,数据类型为
CHAR(10)。
ALTER TABLE student
ADD nationality
char(10)
例
2 删除):删除教师表T中的出生年月。
ALTER TABLE teacher
DROP birthday
RESTRICT
接下来,修改列的定义:列的类型、长度等 :
alter column
例
3:将专业表SS中的专业名称列长度由
30改为
40。
ALTER TABLE SS
ALTER COLUMN name
VARCHAR(40)
例
4:向Student表增加“入学时间”列,其数据类型为日期型。
ALTER TABLE student
ADD timeof_school
DATE
例
5:将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数
ALTER TABLE student
ALTER COLUMN age
int
例
6:增加课程名称必须取唯一值的约束条件
ALTER TABLE course
ADD name
UNIQUE
4:删除基本表
删除学生表:
DROP TABLE student
CASCADE;
建立视图:
CREATE VIEW student_1
AS
SELECT Sno
,Sname
,Sage
FROM student
WHERE Sdept
= 'CS'
5:建立索引
1:聚簇索引:
CREATE CLUSTER
INDEX name_suoyin
ON student
(name
)
2:唯一索引:
例: 为学生
-课程数据库中的Student,Course,SC三个表建立索引
CREATE UNIQUE INDEX S1
ON student
(Sno
)
CREATE UNIQUE INDEX c1
ON course
(Cno
)
CREATE UNIQUE INDEX SC1
ON SC
(Sno
asc, Cno
desc)
asc: 升序排列
desc:降序排列
删除索引
删除student的索引:
DROP INDEX S1
;
二:数据更新
1:插入数据:
例
1:将一个新学生元组(学号:
200215128;姓名:陈冬;性别:男;所在系:
IS;年龄:
18岁)插入到Student表中
.
INSERT INTO student
(sno
, sname
, sex
, sdept
, age
)
VALUES('200215128','chendong', 'male', 'IS', 18)