Database system concept笔记(2)

关系模型
relation 指的是多个集合笛卡尔积的子集(集合意味着没有重复的tuple)
relation schema由一个个attribute组成(attribute的集合)
relation instance指的就是一张张表
(这里relation instance和relation schema的关系又类似于数据与类型之间的关系。)

Query Language
1、关系代数是SQL语句的数学基础,下面6个是基本符号,其他运算都可以从这六个推导出。
  • select: σ 
  • project: ∏
  • union: ∪
  • set difference: –
  • Cartesian product: x
  • rename: ρ
2、SQL
DDL——维护:relation的schema、attribut的domain、integrity约束、关系的索引集合、授权信息、每个关系的物理存储结构。

create table table_name(
     attr1 char(15) not null,
     attr2 integer,
     primary key(attr2)
)

drop
alter table table_name add attr3 integer
alter table table_name delete attr3(不是所有的数据库都支持)

基本查询语句都是基于集合的关系运算

select允许结果出现重复结果(duplicates),如果希望避免,加入关键字distinct。
select distinct attr1 from table_name
而关键字all则指明重复结果不被消除
select all attr1 from table_name

where子句使用and、or和not作逻辑连接词,子句中允许代数运算
区间值(左右封闭区间)可使用between运算符
字符串匹配使用like运算符,在匹配的pattern中%代表任意子字符串,_代表任意字符

from子句内含笛卡尔积的操作,要使用naturn join的运算,需要配合where子句

as子句可以重命名属性或关系,通常可以省略

order by子句后跟属性名表示按照该属性排序,默认为升序,可以通过关键字desc和asc指定

集合操作运算符union、intersect、except对应关系运算中的集合操作,默认消除duplicates,也可以通过添加all关键字调整

累计函数返回一个值,avg、min、max、sum、count,有时跟group by子句结合使用,以根据不同属性做累计,同时也结合having子句,作用同where

用于控制内嵌于query中的subquery有许多关键字通常配合where子句使用,in(tuple是否在relation中)、>some(比某些大)、>all(比所有tuple大)、exists(relation是否为空)、unique(判断duplicate)、

with子句用于表示新创建view,还有另外的view定义法:create view view_name as <query>,还有其他的view操作方法略

所谓的数据库的增(create)删(delete)改(update)查(retrieve),还剩CUD:
删的语法:delete from table_name where ...
增的语法:insert into table_name values(),这里values可以更换为select子句
改的语法:update table_name set

最后介绍join子句,来看 http://coolshell.cn/articles/3463.html,简单粗暴。
----------------------------------additional-------------------------------------------------
号称Advanced SQL,首先是SQL内建类型
date:'2005-7-27'
time:'09:00:55.2'
timestamp:'2005-7-27 03:00:22.3'
interval:'1'day
blob:binary large object
clob:character large object

下面是主要约束
not null:非空约束
unique:顾名思义,可作为candidate key
check(P):P为判断条件

primary key:主键
foreign key:外键 references 另外表的主键

授权也是SQL命令考虑的,主要的权限有:Read、Insert、Update、Delete、Index(增删索引)、Resources(增添新relation)、Alteration(增删relation属性)、Drop(删除relation)
授权语法(撤销授权为revoke):
grant <权限list>
on <relation名 或 view名> to <用户表>

JDBC使用方法:1、打开连接。2、创建statement。3、执行query。4、处理异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值