--創建數據庫(文件:主要數據文件mdf==1,次要數據文件ndf>=0,日志文件ldf>=1)
--文件組:當1mdf,5個ndf(1,2,2),10個ldf(3,3,4),將它們分成多個組存放
CREATE database studb;
--創建表teacher,student
create table teacher ( tid int(10) primary key auto_increment, tname varchar(20), tage int(10) ); use studb;
create table student ( sid int(10) primary key auto_increment, sname varchar(20), sage int(10), tid int(10) REFERENCES teacher(tid) );
--外鍵約束:你問張三的老師是誰??
--select teacher.tname from teacher,student where student.sname = '張三' select t.tname from teacher t,student s where s.sname = '張三' and t.tid = s.tid
--創建課程表
create table course ( cid int(10) primary key, cname varchar(20), tid int(10) REFERENCES teacher(tid) );
--創建分數表
create table sc ( scid int(10) primary key, sid int(10) REFERENCES student(sid), cid int(10) REFERENCES course(cid), score int(10) );
--聯合查詢:等值查詢
--1..
select c.cname from course c,student s,sc where s.sname = '小張' and s.sid = sc.sid and c.cid = sc.cid;
--2..
select sname from student s,course c,sc where c.cname='android' and sc.score>=60 and s.sid = sc.sid and c.cid = sc.cid;
--3..
--子查詢:當條件也要查詢的時候,我只知道學號,我不知道"小張"這個字段,那你知道小張的學號 嗎
delete from sc where sid = (select sid from student where sname = '小張');
--子查詢中間的符號一定是父查詢與子查詢兩張表關聯的字段(一般是主外鍵)
--4..
update sc set score=score+5 where cid=????; select tid from teacher where tname='李老師' ==1 select cname from course where tid = 1 ==課程名字,李老師教的 select cid from course where cname='android' ==課程ID update sc set score=score+5 where cid= ( select cid from course where cname= ( select cname from course where tid = ( select tid from teacher where tname='李老師' ) ) );