- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库读书笔记
基本类型:
Char(n):固定长度,指定长度n;
Varchar(n):可变长度,指定最大长度n;
Int:整数类型;
Smallint:小整数类型;
Numeric(p,d):定点数,p是位数(加上一个符号位),d是精度,小数点右边的位数;
Real,double,precision:浮点数与双精度浮点数;
Float(n):精度至少为n位的浮点数。
创建关系:create table
create table department
(dept_name varchar(20),
Building varchar(15),
Budget numeric(12,2),
Primary key(dept_name));
primary key(a1,a2,…….an):primary key声明表示属性a1,a2,….an构成关系的主码。主码属性必须非空且唯一。
foreign key(b1,b2,…….bn)references table1:foreign key声明表示关系中任意元组在属性(b1,b2,……bn)上的取值必须对应于(在…之中)关系table1中某元组在主码属性上的取。
数据加载:insert
insert into table1
values(a1,a2,….an);
删除元组:delete
delete from table1 删除student中符合谓词p1的
where p1 元组
更新:update
update instructor
set salary=salary*1.05
where salary70000
(update instructor
set salary =case
when salary=100000 then salary*1.05
else salary*1.03
end)
case语句的一般格式:
case
when p1 then r1
when p2 then r2
…..
when pn then rn
else r0
end
删除关系:drop table
drop table table1; 删除table1的元组和模式
为已有关系增减属性:alter table
加:alter table r add A D;
其中r是现有关系的名字,A是待添加属性的名字,D是待添加属性的域。关系中的所有元组在新属性上的取值将被设为null。
减:alter table r drop A D;
强行删除重复:distinct
Select distinct dept_name
From instructor
基本查询语句:
select a1,a2,……an
from table1,table2,……tablen
where p;
a为属性,table为关系,p为table间的谓词。
= 1 \* GB3 ①通过from子句定义了一个在该子句中所列出关系上的笛卡尔积
= 2 \* GB3 ②where子句中的谓词用来限制笛卡尔积所建立的组合。允许使用逻辑连词and,or,not,逻辑连词的运算对象是包含比较运算符,=,=,,=,的表达式。可以用比较运算符来比较字符串、算术表达式、特殊类型,如日期类型
= 3 \* GB3 ③输出select指定的属性
自然连接:natural join
Select name,course_id
From instructor natural join teaches;
只考虑那些在两个关系模式中都出现的属性上取值相同的元组对,这样的属性只出现一次。列出顺序为:先是两个关系模式中的共同属性,然后是那些只出现在第一个关系模式中的属性,最后是那些只出现在第二个关系模式中的属性。
指定属性的自然连接:table1 join table2 using(a1,a2)
在有的情况,两个关系之间有两个以上的相同属性名称,但是意义不同,如course.id和student.id。
select name,title
from(instructor nature join teaches)join course using (course_id)
select a1,a2 相同的属性列会出现两次
from table1 join table2 on p1
更名运算:as
as子句既可以出现在select子句中,又可以出现在from子句中。主要用于:?把一个长的关系名替换成短的?使用于需要比较同一个关系中的元组情况,自己跟自己进行笛卡尔积运算。
select distinct T.name
from instructor as
文档评论(0)