数据库读书笔记
【篇一:数据库读书笔记】
1. 基本类型:
a) char(n):固定长度,指定长度n;
b) varchar(n):可变长度,指定最大长度n; c) int:整数类型;
d) smallint:小整数类型;
e) numeric(p,d):定点数,p是位数(加上一个符号位),d是精度,小数点右边的位数;
f) real,double,precision:浮点数与双精度浮点数; g) float(n):精度至少为n位的浮点数。 2. 创建关系:create table a) create table department (dept_name varchar(20), building varchar(15), budget numeric(12,2),
primary key(dept_name));
3. primary key(a1,a2,…….an):primary key声明表示属性a1,a2,….an构成关系的主码。主码属性必须非空且唯一。
4. foreign key(b1,b2,…….bn)references table1:foreign key声明表示关系中任意元组在属性(b1,b2,……bn)上的取值必须对应于(在…之中)关系table1中某元组在主码属性上的取。 5. 数据加载:insert insert into table1
values(a1,a2,….an); 6. 删除元组:delete
delete from table1删除student中符合谓词p1的 where p1 元组 7. 更新: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)
8. case语句的一般格式: case
when p1 then r1 when p2 then r2 ….. when pn then rn else r0 end
9. 删除关系:drop table
drop table table1; 删除table1的元组和模式 10. 为已有关系增减属性:alter table 加:alter table r add a d;
其中r是现有关系的名字,a是待添加属性的名字,d是待添加属性的域。关系中的所有元组在新属性上的取值将被设为null。 减:alter table r drop a d; 11. 强行删除重复:distinct select distinct dept_name from instructor
12. 基本查询语句: select a1,a2,……an
from table1,table2,……tablen where p;
a为属性,table为关系,p为table间的谓词。
①通过from子句定义了一个在该子句中所列出关系上的笛卡尔积 ②where子句中的谓词用来限制笛卡尔积所建立的组合。允许使用逻辑连词and,or,not,逻辑连词的运算对象是包含比较运算
符,=,=,,=,的表达式。可以用比较运算符来比较字符串、算术表达式、特殊类型,如日期类型 ③输出select指定的属性 13. 自然连接:natural join select name,course_id
from instructor natural join teaches;
只考虑那些在两个关系模式中都出现的属性上取值相同的元组对,这样的属性只出现一次。列出顺序为:先是两个关系模式中的共同属性,然后是那些只出现在第一个关系模式中的属性,最后是那些只出现在第二个关系模式中的属性。
14. 指定属性的自然连接:table1 join table2 using(a1,a2) 在有的情况,两个关系之间有两个以上的相同属性名称,但是意义不同,如course.id和student.id。 select name,title
from(instructor nature join teaches)join course using (course_id)
15. select a1,a2相同的属性列会出现两次 from table1 join table2 on p1
16. 更名运算:as
as子句既可以出现在select子句中,又可以出现在from子句中。主要用于:?把一个长的关系名替换成短的?使用于需要比较同一个关系中的元组情况,自己跟自己进行笛卡尔积运算。 select distinct t.name
from instructor as t,instructor as s
where t.salary s.salary and s.dept_name=’biology’; 17. 字符串运算:
? 用单引号来标示字符串,例如‘computer’。如果单引号是字符串的组成部分,那就用两个单引号字符来表示,如“it’’s right”
? sql标准中字符串大小写敏感。但是mysql和sql sever中不一定,可以设置。
? 用like操作符实现模式匹配,大小写敏感。使用两个特殊字符来描述模式:
百分号(%):匹配任意子串 下划线(_):匹配任意一个字符
? 为使模式中能够包含特殊字符(%,_),使用escape关键字来定义转移字符
like ‘ab\\í%’ escape ‘’匹配所有的以“abí”开头的字符串 18. select子句中表示“所有的属性”:星号“*” select * from instructor
19.排列元组的显示顺序:order by
默认使用升序。可以显示使用desc表示降序,asc表示升
【篇二:数据库读书笔记 李辉】
sql 是英文structured query language 的缩写,意思为结构化查询语言。sql被作为关系型数据库管理系统的标准语言。一个典型的关系型数据库通常由一个或多个被称作表格的对象组成。数据库中的所有数据或信息都被保存在这些数据库表格中。数据库中的每一个表格都具有自己唯一的表格名称,都是由行和列组成,其中每一列包括了该列名称,数据类型,以及列的其它属性等信息,而行则具体包含某一列的记录或数据。
sql 语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。sql语句可以分为以下几组:
dml(data manipulation language,数据操作语言):用于检索或者修改数据;
ddl(data definition language,数据定义语言): 用于定义数据的结构,比如创建、修改或者删除数据库对象;
dcl(data control language,数据控制语言):用于定义数据库用户的权限。
dml 组可以细分为以下的几个语句: select:用于检索数据;
insert:用于增加数据到数据库;
update:用于从数据库中修改现存的数据 delete:用于从数据库中删除数据。
ddl 语句可以用于创建用户和重建数据库对象。下面是ddl 命令: create table alter table drop table create index drop index
dcl 命令用于创建关系用户访问以及授权的对象。下面是几个dcl 命令:
alter password grant revoke
create synonym
下面主要介绍几个常用的数据库操作语句的格式: 数据查询:select 语句主要被用来对数
据库进行查询并返回符合用户查询标准的结果数据。select 语句的语法格式如下: select column1 [, column2,etc] from tablename [where condition]; ([] 表示可选项)
select 语句中位于select 关键词之后的列名用来决定那些列将作为查询结果返回。用户可以按照自己的需要选择任意列,还可以使用通配符“*”来设定返回表格中的所有列。select 语句中位于from 关键词之后的表格名称用来决定将要进行查询操作的目标表格。select 语句中的where 可选从句用来规定哪些数据值或哪些行将被作为查询结果返回或显示。 向表格中添加、更新、删除记录
添加新记录
sql 语言使用insert 语句向数据库表格中插入或添加新的数据行。insert 语句的使用格式如下: insert into tablename
(first_column,...last_column)
values (first_value,...last_value);
简单来说,当向数据库表格中添加新记录时,在关键词insert into 后面输入所要添加的表格名称,然后在括号中列出将要添加新值的列的名称。最后,在关键词values 的后面按照前面输入的列的顺序对应的输入所有要添加的记录值。 更新记录
sql 语言使用update 语句更新或修改满足规定条件的现有记录。update 语句的格式为: update tablename
set columnname = newvalue [, nextcolumn = newvalue2...] where columnname operator value [and|or column operator value]; 删除记录
sql 语言使用delete 语句删除数据库表格中的行或记录。delete 语句的格式为: delete from tablename
where columnname operator value [and|or column operator value];
网络数据库
数据和资源共享这两种方式结合在一起即成为今天广泛使用的网络数据库(web数据库),它以后台(远程)数据库为基础,加上一定的前台(本地计算机)程序,通过浏览器完成数据存储、查询等操作的系统。
网络数据库(network database)其含义有三个:①在网络上运行的数据库。②网络上包含其他用户地址的数据库。③信息管理中,数据记录可以以多种方式相互关联的一种数据库。网络数据库和分层数据库相似,因为其包含从一个记录到另一个记录的前进。与后者的区别在于其更不严格的结构:任何一个记录可指向多个记录,而多个记录也可以指向一个记录。实际上,网络数据库允许两个节点间的多个路径,而分层数据库只能有一个从父记录(高级记录)到子记录(低级目录)的路径。
因此,网络数据库是跨越电脑在网络上创建、运行的数据库。网络数据库中的数据之间的关系不是一一对应的,可能存在着一对多的