现在的位置: 首页 > 综合 > 正文

sql添加,修改数据及删除表,表约束、字段及数据

2013年05月07日 ⁄ 综合 ⁄ 共 3073字 ⁄ 字号 评论关闭
--建立学生数据库
create database 学生数据库;


--建立学生表
create table 学生表
(
SNO CHAR(4),
SN CHAR(8)NOT NULL,
SEX CHAR(2) NOT NULL,
AGE INT NULL,
DEPT INT NOT NULL,
PRIMARY KEY(SNO),
CHECK (AGE BETWEEN 15 AND 45),
CHECK (SEX ='男' or sex ='女'),
CHECK (DEPT >=1 AND DEPT <=6)
)
GO

--建立课程表
CREATE TABLE 课程表
(
CNO CHAR(4),
CN CHAR(19) NOT NULL,
PRIMARY KEY(CNO)
)
GO


--建立学生选课表
CREATE TABLE 学生选课表
(
SNO CHAR(4),
CNO CHAr(4) not null,
GRADE INT NULL,
PRIMARY KEY(SNO,CNO),
foreign key (SNO) REFERENCES 学生表(SNO),
FOREIGN KEY (CNO) REFERENCES 课程表(CNO)
)
GO

----alter table 表名 add check  增加约束 
ALTER TABLE 学生选课表
ADD CHECK (grade between 0 and 100);
go



--添加数据修改数据
--insert into …… values(……)
insert into 学生表 values( 'S1','徐琳', '女', 17,2);
insert into 学生表 values( 'S2','李国华','男', 18,6);
insert into 学生表 values( 'S3','徐萍', '女', 20, 1);
insert into 学生表 values( 'S4','林新明', '男', 23, 6);
insert into 学生表 values( 'S5','张家杰', '男', 19, 6) ;
insert into 学生表 values( 'S6','张婷', '女', 21, 3);
insert into 学生表 values( 'S7','赵大地', '男', 18, 6) ;
insert into 学生表 values( 'S8','赵树林', '男', 19, 3);


insert into 课程表 values( 'C1','数学') ;
insert into 课程表 values( 'C2','英语');
insert into 课程表 values( 'C3','C语言')
insert into 课程表 values( 'C4','数据库原理');
insert into 课程表 values( 'C5','政治');
insert into 课程表 values( 'C6','物理');
insert into 课程表 values( 'C7','心理学');



insert into 学生选课表 values( 'S1','C1',80);
insert into 学生选课表 values( 'S1','C2',85);
insert into 学生选课表 values( 'S1','C6',75);
insert into 学生选课表 values( 'S1','C4',56);
insert into 学生选课表 values( 'S1','C5',90);
insert into 学生选课表 values( 'S2','C1',47);
insert into 学生选课表 values( 'S2','C3',80);
insert into 学生选课表 values( 'S2','C4',75);
insert into 学生选课表 values( 'S2','C5',70);
insert into 学生选课表 values( 'S6','C1',95);
insert into 学生选课表 values( 'S6','C2',80);
insert into 学生选课表 values( 'S6','C3',87);
insert into 学生选课表 values( 'S3','C1',75);
insert into 学生选课表 values( 'S3','C2',70);
insert into 学生选课表 values( 'S3','C3',85);
insert into 学生选课表 values( 'S3','C4',86);
insert into 学生选课表 values( 'S3','C5',90);
insert into 学生选课表 values( 'S3','C6',99);
insert into 学生选课表 values( 'S4','C1',83);
insert into 学生选课表 values( 'S4','C2',85);
insert into 学生选课表 values( 'S4','C3',83);
insert into 学生选课表 values( 'S5','C2',99);

-------------------------------------------------------------

--向表添加一行中的部分数据,向表添加一行的部分数据,只有当表中的列允许为空时才行
insert into 学生表(SNO,SN,SEX,DEPT) VALUES ('S9','王奇才','男',2);


--ALTER TABLE …… ADD ……语句向表增加一列数据
ALTER TABLE 学生表 ADD CLASSNUM INT
GO

SELECT * FROM 学生表;

ALTER TABLE 课程表 ADD TEACHERNAME CHAR(8);
select * from 课程表;

--增加约束
ALTER TABLE …… ADD CHECK …… 增加的约束,由系统给定约束名
ALTER TABLE …… ADD CONSTRAINT CHECK ……增加的约束,由用户给定约束名

ALTER TABLE 学生选课表
ADD CONSTRAINT 分数约束名  CHECK (GRADE BETWEEN 0 AND 100)
GO


--UPDATE ... SET ...WHERE ...修改某一行中的某一列数据
UPDATE 学生表 SET DEPT =6 WHERE SNO='S1';


--给分数低于60分的学生加5分
UPDATE 学生选课表 SET GRADE =GRADE +5 WHERE GRADE <60;


ALTER TABLE 学生选课表 DROP FK__学生选课表__SNO__0CBAE877;
GO

ALTER TABLE 学生选课表  DROP FK__学生选课表__CNO__0DAF0CB0;
GO

-----先建立主键,然后外键,主键是各个表的,外键要从主表从子表
-----删除的时候要从主表的外键开始删除,即除去外键约束,然后删除子表的主键

ALTER TABLE 学生表
DROP CK__学生表__AGE__7D78A4E7;

GO

ALTER TABLE 学生表
drop CK__学生表__SEX__7E6CC920;
go

---ALTER TABLE ... DROP COLUMN ...语句删除表中的字段
ALTER TABLE 学生表 DROP COLUMN CLASSNUM;

--DELETE FROM ...WHERE ...语句从表中删除一行数据
delete from 学生表 WHERE SNO='S1';
GO

SELECT * FROM 学生表;

--DELETE FROM ... WHERE ... IN 从表中删除多行数据
DELETE FROM 课程表 WHERE CNO IN('C1','C3','C6');
GO

SELECT * FROM 课程表;

DELETE FROM 课程表 WHERE CNO IN('C1','C3','C6');


--DELETE FROM ...语句删除表中第一行数据
DELETE FROM 学生表;


--DROP TABLE ...命令删除表
DROP TABLE 学生选课表;
DROP TABLE 学生表;
DROP TABLE 课程表;

  

抱歉!评论已关闭.