SQL-LOG
-->创建数据库 go create database stuDB on primary( name = 'stuDB_data', --主数据库的逻辑名 filename = 'e:\stuDB_data.mdf', --主数据库的物理路径 size = 5mb, --主数据库的初始大小 maxsize = 100mb, --主数据库的最大空间 filegrowth = 15% --主数据库的文件增长比 )
log on ( name = 'stuDB_log', --数据库日志的逻辑名 filename = 'e:\stuDB_log.ldf', --数据库日志的物理路径 size = 5mb, --数据库日志的初始大小 filegrowth = 15% --数据库日志文件的增长比 ) go
-->数据库删除操作 go drop database stuDB go
---------------------------------------------------------------------------------
--------------------------------表格基本处理部分---------------------------------
-->选择数据库 use stuDB
go
-->创建stuInfo表格 IF EXISTS(SELECT * FROM sysobjects WHERE name='stuInfo') DROP TABLE stuInfo; CREATE TABLE stuInfo( stuNO INT IDENTITY(100001,1) NOT NULL PRIMARY KEY , -- 学号 stuName VARCHAR(45), -- 姓名 stuAge TINYINT, -- 年龄 stuID NUMERIC(18,0), -- ×××号 stuAddreass TEXT, -- 家庭地址 stuSeat int -- 座位号 )
go
-->向stuInfo表格插入数据 go INSERT INTO stuInfo VALUES('杨荣凯',21,152127199008250012,'内蒙古×××县',1); INSERT INTO stuInfo VALUES('王冰',22,988127199008250012,'湖北黄石',2); INSERT INTO stuInfo VALUES('胡兵',23,254136199008250012,'湖北孝感',3); INSERT INTO stuInfo VALUES('吕巧燕',20,785412199008250012,'湖北宜昌',4); go
-->查询stuInfo表格数据 SELECT * FROM stuInfo ;
-->更改stuInfo表格数据 UPDATE stuInfo SET stuName='吕巧艳' WHERE stuID=785412199008250012;
-->删除stuInfo表格数据 DELETE FROM stuInfo WHERE stuNO=100005;
go
-->创建stuMark表格 IF EXISTS(SELECT * FROM sysobjects WHERE name='stuMark') DROP TABLE stuMark; CREATE TABLE stuMark( examNO CHAR(6) PRIMARY KEY, -- 考号 labExam NUMERIC(4,1), -- 机试成绩 writtenExam NUMERIC(4,1) -- 笔试成绩 ) go
-->查询stuMark表格数据 SELECT * FROM stuMark;
-->添加stuMark表格数据 INSERT INTO stuMark VALUES('WP0001',100,100); INSERT INTO stuMark VALUES('WP0002',33,44); INSERT INTO stuMark VALUES('WP0003',69,55.5); INSERT INTO stuMark VALUES('WP0004',79.9,33.3);
-->更新stuMark数据 UPDATE stuMark SET writtenExam=60 WHERE examNO='WP0004';
-->删除stuMark表格数据 DELETE FROM stuMark WHERE examNO='WP0005';
----------------------------------------------------------------------------------------
-------------------------------------字段处理部分---------------------------------------- -->以下操作无数据时可以任意转换,有数据时,只可以同类型小单位向大单位转换 反之不能
-->修改stuInfo表格中stuSeat类型 ALTER TABLE stuInfo ALTER COLUMN stuSeat TINYINT; ALTER TABLE stuInfo Alter COLUMN stuSeat INT;
-->在stuInfo表格中的myUser字段 ALTER TABLE stuInfo ADD myUser int;
-->在stuInfo表格中删除myUser字段 ALTER TABLE stuInfo DROP COLUMN myUser;
-----------------------------------------------------------------------------------------
--------------------------------------约束处理部分---------------------------------------
-->向stuMark表格中labExam和writtenExam字段中分别增添一个check约束 ALTER TABLE stuMark ADD CONSTRAINT CK_LABEXAM CHECK (labExam BETWEEN 0 AND 100); ALTER TABLE stuMark ADD CONSTRAINT CK_WRITTENEXAM CHECK (writtenExam BETWEEN 0 AND 100); -->测验 INSERT INTO stuMark VALUES('WP0005',101,4); INSERT INTO stuMark VALUES('WP0005',4,101); SELECT * FROM stuMark;
-->向stuInfo表格中stuSeat字段中添加一个唯一键约束 ALTER TABLE stuInfo ADD CONSTRAINT UK_STUSEAT UNIQUE (stuSeat); -->测试 INSERT INTO stuInfo VALUES('王华',21,988127199008250011,'湖北仙桃',1); SELECT * FROM stuInfo;
-->向stuMark添加外间使stuMark表变成从表 -->1.因为成绩表与学号一对一的关系,所以要创建一个字段用于和学生信息表关联 ALTER TABLE stuMark ADD stuNO INT; -->2.创建外键 ALTER TABLE stuMark ADD CONSTRAINT FK_STUINFO_STUNO FOREIGN KEY (stuNO) REFERENCES stuInfo (stuNO); -->3.测试 INSERT INTO stuMark VALUES('WP0001',100,100,100001); -->成功 INSERT INTO stuMark VALUES('WP0001',100,100,1); -->失败
-->额外 级联删除 -->1.删除外键 ALTER TABLE stuMark DROP CONSTRAINT FK_STUINFO_STUNO; -->2.创建级联删除 ALTER TABLE stuMark ADD CONSTRAINT FK_STUINFO_STUNO FOREIGN KEY (stuNO) REFERENCES stuInfo (stuNO) ON DELETE CASCADE; -->3.测试 DELETE FROM stuInfo WHERE stuNO=100001; --要删除主表数据 才有级联效果 SELECT * FROM stuInfo; SELECT * FROM stuMark;
-->向stuInfo表格中添加默认约束 -->1.创建一个国家字段 ALTER TABLE stuInfo ADD stuCountry VARCHAR(50); -->2.设置默认约束 ALTER TABLE stuInfo ADD CONSTRAINT DF_STUINFO DEFAULT '中国' FOR stuCountry; -->3.测试 INSERT INTO stuInfo(stuName,stuAge,stuID,stuAddreass,stuSeat) VALUES ('天天',21,123321157854674354,'天津',2); SELECT * FROM stuInfo;
-----------------------------------------------------------------------------------------