数据库系统
一:数据库与表
1:创建数据库
1):新建查询中的命令行:
CREATE DATABASE student //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),
/* 表级完整性约束条件,Sno是外码,被参照表是Student */
FOREIGN KEY (Cno) REFERENCES Course(Cno)
/* 表级完整性约束条件, Cno是外码,被参照表是Course*/
);
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)