1、3.1.1 3.1.1 关系运算关系运算 投影投影 选择选择 积积 条件联接条件联接 自然联接自然联接 F例例1 1:A B C A B CA B C A B Ca b c b g a a b c b g a d a f d a fd a f d a fc b dc b d R S R S A CA Ca ca cd fd fc dc d 1,31,3(R)(R)C AC Ac ac af df dd cd c A B CA B C a b c a b c c b d c b d2=2=b b(R)(R)、A,CA,C(R)(R):、C,AC,A(R):(R):1 1、B=B=b b(R):(
2、R):例例2:A B C A B C a b c b g a d a f d a f c b d R S R RS:S:R.A R.B R.C S.A S.B S.C R.A R.B R.C S.A S.B S.C a b c a b c b g ab g a a b c a b c d a fd a f d a f b g a d a f b g a d a f d a f d a f d a f c b d c b d b g ab g a c b d c b d d a f d a f A B C A B C A B C A B C 3 6 7 3 4 53 6 7 3 4 52 5 7
3、 7 3 32 5 7 7 3 37 3 37 3 34 4 3 4 4 3 R SR S 1 1、3,2(S)3,2(S)、BB5 5(R)(R)、R RS S思考:思考:2323(R)(R)和和223 3(R)?(R)?4 4、s.s.A A(R.C=S.B R.C=S.B(R(R S)S)例例A B CA B C D ED E1 2 3 3 11 2 3 3 14 5 6 6 24 5 6 6 27 8 9 7 8 9 R S R S RS A B C D E 1 2 3 3 1 1 2 3 6 2 4 5 6 3 1 4 5 6 6 2 7 8 9 3 1 7 8 9 6 224(RS
4、)A B C D E 1 2 3 3 1 1 2 3 6 2 4 5 6 6 2R S 即即 RS 21 BDA B C D E 1 2 3 3 1 1 2 3 6 2 4 5 6 6 2条件连接条件连接求:求:24(RS)R SA B CA B C D ED E1 2 3 3 11 2 3 3 14 5 6 6 24 5 6 6 27 8 97 8 9 R R S S21 1 2 A B C D EA B C D E 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 4 5 6 6 2 A B C B C DA B C B C Da b c b c da b c b c dd b
5、c b c ed b c b c eb b f a d bb b f a d bc a dc a d R S R S 例例4 4R R S SA B C DA B C Da b c da b c da b c ea b c ed b c dd b c dd b c ed b c ec a d bc a d b()记为记为R S R S 自然连接自然连接 R RS SR SR S2121RSRSR SR S2423(R)A B C1 5 71 5 72 8 92 8 97 0 27 0 27 1 27 1 2例3-2 计算RS A B C1 5 71 5 72 8 92 8 97 0 27 0
6、2A B4 16 5RS例3-3 (a)R S (b)R S 122=2A B C1 5 71 5 72 8 92 8 97 0 27 0 2D E4 16 5RS例3-4 计算RS A B C1 5 71 5 72 8 92 8 97 0 27 0 2RC D8 18 17 57 52 42 47 07 0S1 1、关系数据库中,将具有共同属性的两个关系中的、关系数据库中,将具有共同属性的两个关系中的元组连接到一起,构成新表的操作称为元组连接到一起,构成新表的操作称为A A、选择、选择 B B、投影、投影 C C、连接、连接 D D、扫描、扫描 2 2、一般情况下,当对关系、一般情况下,当对
7、关系R R和和S S使用自然连接时,要使用自然连接时,要求求R R和和S S至少含有一个共同的至少含有一个共同的 .A A 元组元组 B B 行行 C C 关系关系 D D 属性属性 3 3、如下两个关系、如下两个关系R1R1和和R2R2,它们进行,它们进行 运算后得到运算后得到R3R3A A 选择选择 B B 选择连接选择连接 C C 笛卡儿积笛卡儿积 D D 自然连接自然连接 R1 R2 R1 R2A B CA B CA 1 XA 1 XC 2 YC 2 YD 1 YD 1 YB D EB D E1 M I1 M I2 N J2 N J5 M K5 M K R3R3A B C D EA B
8、 C D EA 1 X M IA 1 X M ID 1 Y M ID 1 Y M IC 2 Y N JC 2 Y N J4 4、设有如图所示的关系、设有如图所示的关系R R和和S S,计算,计算R RS S A AB BC Ca ab bc cb ba ab bc cf fd d关系关系 R R A AB BC Cb bd da aa af fc c 关系关系 S S5 5、设有关系、设有关系R R和和S S如下图所示,计算如下图所示,计算C C,D D(RSRS)R R A AB BC Ca a5 5C Ce e8 8F Fa a4 4G GS SB BD DE E4 4a ac c4 4e
9、 eg g8 8b bA A ABC3 35 59 92 23 30 03 36 68 8BCD302686305R(1)(1)A,CA,C(R)(R)(2)D3课堂作业课堂作业:User表表:class表表:photo表表:cp表表:任务任务1.T-SQL1.T-SQL创建数据库创建数据库Create Database 数据库名ON (Name=数据文件名,Filename=“文件路径名”,Size=大小,Maxsize=大小,Filegrowth=大小,)Log ON(同上)要求是数据库名为要求是数据库名为mypicmypic,指定数据文件位于,指定数据文件位于D:pmDbD:pmDb文件
10、夹中。文件夹中。初始容量为初始容量为5MB5MB,最大容量为,最大容量为10MB10MB,文件增量为,文件增量为10%10%。T-SQL“文件路径名文件路径名”格式:格式:盘符盘符 文件夹文件夹.数据库名数据库名.mdf.mdfcreate database mypicon(name=mypic,filename=”d:pmDbmypic.mdf”,size=5,maxsize=10,filegrowth=10%)结构结构?主键主键?数据数据?主键、外键主键、外键Create Table 表名表名(列名列名1 数据类型数据类型 列级约束列级约束,列名列名2 数据类型数据类型 列级约束列级约束,
11、primary key(主键主键),Foreign key(外键外键)references 表表(主键主键))USE mypicCREATE TABLE cp(CID int,PID int,ptime date not null,PRIMARY KEY(CID,PID),FOREIGN KEY(CID)references class(CID),FOREIGN KEY(PID)references photo(PID)练练习习时时间间列名数据类型允许为空账号VarChar(10)VarChar(10)NONO密码Varchar(10)Varchar(10)NONOInsert into 表名
12、表名(属性列表属性列表)Values (元组值元组值)INSERT INTO cp(CID,PID,ptime)VALUES(1,1001,2017-6-1)CIDCIDPIDPIDptimeptime 1 10012017-6-1 2 10012017-6-1 110022017-6-15210032017-8-21210042017-8-15410052015-10-11410062015-10-11帐号密码aaa123bbb456列名数据类型允许为空账号VarChar(10)VarChar(10)NONO密码Varchar(10)Varchar(10)NONO练练习习时时间间微博账号注册
13、微博账号注册个人资料修改个人资料修改账号登陆账号登陆Select 属性属性From 表表Where 条件条件T-SQLT-SQL简单查询简单查询(1)查询男性用户的UID,姓名,性别和qq号。命命 令令:select UID,username,sex,qqfrom userswhere sex=男男T-SQLT-SQL简单查询简单查询(2)查询101用户所建相册的相册名和创建时间。命命 令令select cname,ctimefrom classwhere UID=101任务任务7 T-SQL7 T-SQL模糊查询模糊查询(1)(1)查询使用查询使用qqqq邮箱注册的用户信息。邮箱注册的用户信
14、息。命命 令令:select *from userswhere email like%任务任务7 T-SQL7 T-SQL模糊查询模糊查询(2)(2)查询用户名为查询用户名为ss或或ff开头的用户的信息。开头的用户的信息。命命 令令:select *from userswhere username like sf%任务任务7 T-SQL7 T-SQL模糊查询模糊查询(3)(3)查询创建日期在查询创建日期在5 5月份的相册信息。月份的相册信息。命命 令令:select *from classwhere ctime like _05%任务任务8 T-SQL8 T-SQL多表查询多表查询连接查询连接
15、查询(1)(1)查询用户查询用户simonsimon所创建的相册所创建的相册IDID,相册名称和相册描述。,相册名称和相册描述。命命 令令:select CID,cname,c_descfrom users,classwhere username=simonand users.UID=class.UID任务任务8 T-SQL8 T-SQL多表查询多表查询连接查询连接查询(2)(2)查询查询2 2号相册的所有照片的号相册的所有照片的IDID,标题和存放地址。要求,标题和存放地址。要求显示结果按照照片的显示结果按照照片的IDID从大到小排序。从大到小排序。命命 令令:select photo.PI
16、D,title,picfrom cp,photowhere CID=2and cp.PID=photo.PIDorder by PID desc任务任务8 T-SQL8 T-SQL多表查询多表查询连接查询连接查询(3)(3)查询相册名为查询相册名为“我的学校我的学校”,它的所有照片的,它的所有照片的ID,ID,标题,标题,描述和照片时间。按照照片时间排序,如果同一时间,按描述和照片时间。按照照片时间排序,如果同一时间,按PIDPID降序排列。降序排列。命命 令令:select cp.PID,title,p_desc,ptimefrom photo,class,cpwhere cname=我的学
17、校我的学校and photo.PID=cp.PIDand class.CID=cp.CIDorder by ptime,PID desc任务任务9 T-SQL9 T-SQL多表查询多表查询子查询子查询(1)(1)查询用户查询用户mikemike所创建的相册名,相册描述。所创建的相册名,相册描述。命命 令令:select cname,c_descfrom classwhere UID in (select UID from users where username=mike )任务任务9 T-SQL9 T-SQL多表查询多表查询子查询子查询(2)(2)查询还没有创建相册的用户查询还没有创建相册的
18、用户ID,ID,用户名。用户名。命命 令令:select UID,usernamefrom userswhere UID not in(select distinct UID from class)任务任务10 T-SQL10 T-SQL统计查询统计查询(1)(1)统计统计103103号用户所创建的相册数量。号用户所创建的相册数量。命命 令令:select count(*)from class where UID=101任务任务10 T-SQL10 T-SQL统计查询统计查询(2)(2)统计每个用户的创建相册数量,要求显示用户的统计每个用户的创建相册数量,要求显示用户的IDID和对和对应的房屋数目。应的房屋数目。命命 令令:select UID as 用户用户ID,count(*)as 相册数相册数from classgroup by UID任务任务10 T-SQL10 T-SQL统计查询统计查询(3)(3)统计照片数大于等于统计照片数大于等于3 3张的相册,要求显示照片张的相册,要求显示照片IDID和标和标题。题。命命 令令:select cp.CID,count(*)from cpgroup by CIDhaving count(*)=3