数据库实验

数据库实验,第1张

实验一
  1. 创建studentdb数据库,创建spjdb数据库

  2. 在studentdb中创建三个表student,course ,sc

  3. 在spjdb中创建四个表S,P,J,SPJ

  4. 在studentdb中创建架构Production和Person并比较区别

    1. 创建架构-图形化界面
      1. 连接服务器-》展开数据库文件夹-》选择数据库并展开-》展开安全性-》展开架构-》右键单击架构文件夹选择创建架构
  5. 修改表结构

    (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。

  6. 建立索引

    (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)
--验证索引能提高查询速度

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/758744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-01
下一篇 2022-05-01

发表评论

登录后才能评论

评论列表(0条)

保存