sql 创建表
use Text1 create table major ( mno int, mname varchar(10), primary key (mno) ) select * from major create table stu( sno int,--学号 sname varchar(10), age smallint, sex bit, mno int, primary key(sno), foreign key(mno) references major(mno) ) select * from stu create table cou( cno int,--课程号 cname varchar(10), ctime smallint, ccredit decimal (4,2), primary key (cno) ) create table sc( sno int, cno int, grade decimal (5,2) primary key(sno,cno), foreign key (sno) references stu(sno), ) --对sc表加一个外键 alter table sc add constraint fk_sc foreign key (cno) references cou(cno) --添加的数据 insert into major(mno,mname) values(1,'计算机科学与技术'); insert into major(mno,mname) values(2,'软件工程'); insert into major(mno,mname) values(3,'网络工程'); insert into major(mno,mname) values(4,'智能科学与技术'); select * from stu insert into stu values('2020001','小一',18,0,1); insert into stu values('2020002','小二',18,1,1); insert into stu values('2020003','小四',18,1,1); insert into stu values('2020004','小五',18,1,1); insert into stu values('2020005','小六',18,0,2); insert into stu values('2020006','小七',18,1,2); insert into stu values('2020007','小八',18,0,2); insert into stu values('2020008','小九',18,1,2); insert into stu values('2020009','小十',19,0,3); insert into stu values('20200010','小十',20,0,3); insert into stu values('20200011','小快',19,0,3); insert into stu values('20200012','小冬',21,0,3); insert into stu values('20200013','小宇',19,0,null); insert into stu values('20200014','小点',19,0,4); insert into stu values('20200015','彭杰',21,0,4); insert into stu values('20200016','彭小杰',21,0,4); select * from cou insert into cou values('20201','C语言',32,5); insert into cou values('20202','C#',32,3); insert into cou values('20203','数据结构',16,5); insert into cou values('20204','大学英语1',32,3.5); insert into cou values('20205','大学英语2',32,3.5); insert into cou values('20206','大学英语3',32,3.5); insert into cou values('20207','大学英语4',32,3.5); select * from sc insert into sc(sno,cno,grade) values('2020006','20201',null); insert into sc(sno,cno,grade) values('2020005','20201',null); insert into sc(sno,cno,grade) values('2020001','20201',90); insert into sc(sno,cno,grade) values('2020002','20201',90); insert into sc(sno,cno,grade) values('2020003','20201',90); insert into sc(sno,cno,grade) values('2020004','20201',58); insert into sc(sno,cno,grade) values('2020004','20202',98); insert into sc(sno,cno,grade) values('2020004','20203',90); insert into sc(sno,cno,grade) values('2020005','20203',90);
二、简单增删改
--插入 select *from major insert into major(mno,mname) values(1,'计算机科学') insert into major(mno,mname) values(2,'软件工程') --也可以这样插入 select *from stu insert into stu values(1,'cc',20,0,1) --删除delete delete from stu where sno=1 --删除major表中的一个专业 delete from major where mno=1-- 发生了冲突,有依赖关系 --要想删除,在别的表有外键的情况下置为null 用update更新 update stu set mno=null where mno=1 update stu set sname='cc' where mno=3
三、简单查询和order by语句
use test --查询 select * from 学生 select distinct 学号,姓名 from 学生--防止重复 select 姓名,出生日期 from 学生 where 平均成绩<=99 and 平均成绩 >=95 select 姓名,出生日期 from 学生 where 平均成绩 between 94 and 100 select 姓名,出生日期 from 学生 where 姓名 like '陈%' --order by 聚集函数 select * from 学生 order by 档案号--按照升序排列 select * from 学生 order by 档案号 desc --按照降序排列 select count(*) from 学生 --查找这种表里面有多少行 select count (distinct 姓名) from 学生--查找表里多少不重复的姓名 select avg(平均成绩) from 学生 where 班级号=2 select max(平均成绩) from 学生 where 班级号=2 select min(平均成绩) from 学生 where 班级号=1
四、多表查询
--多表查询 --等值连接 查询每个学生的信息和选修课程号的信息 select stu.*,sc.* from stu,sc where stu.sno=sc.sno --查询选修了'20201'课程的学生的姓名 select sname from stu,sc where sc.cno='20201' and stu.sno=sc.sno --查询每个学生的信息和选修课程的信息和学时 select stu.*,cname,ccredit from stu,cou,sc where stu.sno=sc.sno and cou.cno=sc.cno