数据库实验
实验一
-
创建studentdb数据库,创建spjdb数据库
-
在studentdb中创建三个表student,course ,sc
-
在spjdb中创建四个表S,P,J,SPJ
-
在studentdb中创建架构Production和Person并比较区别
- 创建架构-图形化界面
- 连接服务器-》展开数据库文件夹-》选择数据库并展开-》展开安全性-》展开架构-》右键单击架构文件夹选择创建架构
- 创建架构-图形化界面
-
修改表结构
(1) 将表course的cname列的数据类型改为varchar(40).
(2) 为表student增加一个新列: birthday(出生日期), 类型为datetime, 默认为空值.
(3) 将表sc中的grade列的取值范围改为小于等于150的正数.
(4) 为Student表的“Ssex”字段创建一个缺省约束,缺省值为’男’
(5)为“Sdept”字段创建一个检查约束,使得所在系必须是’CS’、’MA’或’IS’之一。
(6)为Student表的“Sname”字段增加一个唯一性约束
(7)为SC表建立外键,依赖于Student表的fk_S_c约束。
(8)禁止启用Student表的“Sdept”的CHECK约束ck_student。 -
建立索引
(1) 在student表的sname列上建立普通降序索引.
(2) 在course表的cname列上建立唯一索引.
(3) 在sc表的sno列上建立聚集索引.
(4) 在spj表的sno(升序), pno(升序)和jno(降序)三列上建立一个普通索引.
#创建数据库
CREATE DATABASE studentdb
CREATE DATABASE spjdb
/*在studentdb中创建三个表*/
CREATE TABLE student
(
sno CHAR(9) PRIMARY KEY,
sname CHAR(10) NOT NULL,
ssex CHAR(2) ,
sage SMALLINT,
sdept char(15),
CHECK (sage>=12),
)
CREATE TABLE course
(
cno CHAR(4) PRIMARY KEY,
cname CHAR(20) NOT NULL,
cpon CHAR(4) NOT NULL,
ccredit SMALLINT,
)
CREATE TABLE sc
(
sno CHAR(9),
cnp CHAR(20) PRIMARY KEY,
grade DECIMAL(5) NOT NULL,
CHECK(grade>=0 and grade<=100)
)
/*在spjdb中创建四个表*/
CREATE TABLE S
(
sno CHAR(2) PRIMARY KEY,
sname CHAR(10),
statu SMALLINT,
city CHAR(10) NOT NULL,
CHECK(statu>0),
)
CREATE TABLE P
(
pno CHAR(2) PRIMARY KEY,
pname CHAR(10) NOT NULL ,
color CHAR(2),
pweight SMALLINT,
CHECK (pweight>0),
)
CREATE TABLE J
(
jno CHAR(2) PRIMARY KEY,
jname CHAR(10) NOT NULL,
jcity CHAR(10),
)
CREATE TABLE SPJ
(
son CHAR(2),
pon CHAR(10),
jno CHAR(10) PRIMARY KEY,
qty SMALLINT,
CHECK (qty>0),
)
/*在studentdb中创建架构Production和Person并比较区别*/
/*首先创建用户*/
CREATE LOGIN wang WITH PASSWORD='root'
CREATE USER wang FOR LOGIN wang
GRANT create table to st
/*然后创建架构 图形界面操作方法如上
然后用户st以SQL SERVER身份验证方式登录服务器,尝试执行如下的SQL语句:
create table Person.t1
(
id int,
name char(10)
)
--成功
create table Production.t1
(
id int,
name char(10)
) --失败,原因?
*/
--修改表结构
ALTER TABLE course ALTER COLUMN cname VARCHAR(40)
ALTER TABLE course ADD brithday Datetime
ALTER TABLE sc4 ADD constraint grade CHECK(grade<=150)
ALTER TABLE student ADD CONSTRAINT ssex1 DEFAULT '男' FOR ssex
ALTER TABLE student ADD CONSTRAINT sdept1 check(sdept='CS'or sdept='MA'or sdept='IS')
ALTER TABLE student ADD CONSTRAINT sname1 UNIQUE(sname)
ALTER TABLE student NOCHECK CONSTRAINT ch_student
--建立索引
CREATE INDEX pt ON student(sname)
CREATE UNIQUE INDEX wy ON course(cname)
CREATE CLUSTERED INDEX jj ON (sno)
CREATE INDEX lh ON SPJ(son,pon,jno)
--验证索引能提高查询速度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)