SQL server 实验三

    xiaoxiao2021-03-25  134

    4.使用T-SQL语句创建表:

    1)创建第1题中的student表,要求:

    ①sno列为主键;

    ②除monitor可为空值外,其他列不能为空;

    ③ssex列的默认值设为“男”;。

    ④monitor为外键,参照自身表的sno列。

    向该表中添加两条记录

    2)创建第1题中的score表,要求:

    ①sno列和cno列的组合为主键;

    ②degree列的取值在0到100之间;

    ③sno列为外键,参照student表的sno列;

    ④cno列为外键,参照course表的cno列。

    CREATE TABLE student ( sno char(5) PRIMARY KEY,--主键为NOT NULL,如果字段属性值为空则默认为NULL sname char(10) NOT NULL, ssex char(2) default('男') NOT NULL,--default('默认值')//设置默认值 sbirthday date NOT NULL, sclass char(10) NOT NULL, monitor char(5) foreign key references student(sno)--foreign key regerences 另一张表(外关键字段名)//在定义的时候创建外关键约束 ) --//如何创建实例???如下 insert into student VALUES('250','as','男','2017-01-01','23','250') insert into student VALUES('230','ES','女','2018-07-02','24','230') CREATE TABLE score ( sno char(5) NOT NULL , cno char(6) Primary Key(sno,cno), degree float check(degree>=0 and degree<=100),--约束范围check( or ) //check( and ) --以下代码是在创建表的过程中创建外键约束 CONSTRAINT tt --tt是约束名 FOREIGN KEY(sno) REFERENCES student(sno), CONSTRAINT ttt FOREIGN KEY(cno) REFERENCES course(cno) ) --ALTER TABLE score --如何给字段约束范围????这个方法运行出错,以后追究!!上面创建表的过程中那个方法可用 --ADD constrainst dde check (degree>=0 and degree<=100) --以上这两句来限定字段的取值范围 --ALTER TABLE score --对现有的表,创建外键约束 --WITH CHECK --ADD FOREIGN KEY(sno) --sno 是外键表中(当前表)的外关键字段名 --REFERENCES student(sno) --student指的是主键表名,即sno这个外键所要所要关联的主键表 --ALTER TABLE score --WITH CHECK --ADD FOREIGN KEY(cno) --REFERENCES course(cno)

    5.使用T-SQL语句修改表

    1)修改teacher表,向该表中添加一列communist(是否党员),类型为逻辑型(bit)。

             2)修改course表,添加一列cpno(先行课),类型为char(6),设该列为外键,参照自身表的cno列,添加cname列的值唯一约束。

             3)删除student表的monitor列。

    --ALTER TABLE teacher ADD communist bit --创建列 --ALTER TABLE Course ADD cpno char(6) NOT NULL --创建列 ALTER TABLE Course ADD cname char(8) UNIQUE--唯一约束,一个表中可有多个唯一约束 ALTER TABLE Course --将cpno约束为Course即它本身的外键 WITH CHECK ADD FOREIGN KEY(cpno) REFERENCES Course(cno) ALTER TABLE student --删除列 DROP COLUMN monitor
    转载请注明原文地址: https://ju.6miu.com/read-3111.html

    最新回复(0)