数据库系统概念笔记 CH3

数据库系统概念笔记 CH3

第三章 SQL
SQL数据定义

数据库中的关系集合必须由数据定义语言(DDL)指定给系统

SQL支持多种数据类型,包括:

  • char(n):固定长度为n的字符串
  • varchar(n):最大长度为n的可变长字符串
  • int:整数类型
  • smallint:小整数类型
  • numeric(p,d):定点数,p位数字,d位在小数点后面
  • real,double precision:浮点数,双精度浮点数
  • float(n):精度至少为n的浮点数

补充:如果使用char(5)存储"abc",则后面未使用的两位将补充空格,如果使用varchar就不会出现该情况。故如果设计字符串的比较问题,个人建议均使用varchar较为方便,可以避免一些问题。

--创建一个表  通用格式:
creat table r
    (A1,D1
     A2,D2,
     ...
     An,Dn,
     <完整性约束1>
     ...
     <完整性约束n>
     );
--例如:
create table department
	(dept_name varchar(20),
     building varchar(15),
     budget numeric(12,2),
     primary key (dept_name)   --完整性约束,将dept_name设置为主码
     );

完整性约束:

  • primary key(A1,A2,…An):表示属性A1,A2,…An构成了该关系的主码。主码必须非空且唯一
  • foreign key(A1,A2,…An) references table2 : 声明表示关系的任意元组的外码属性必须与后者的主码属性一致
  • not null :表示该属性不能为空值

基本的插入、删除命令:

--插入命令
insert into instructor
	values(id,name..);
--删除元组
delete from student ;--删除所有元组
delete table student ;--彻底删除,该关系将被删除
--为原有关系增加属性
alter table r add A D;
--其中,r是关系的名字, A是添加属性的名字,D是添加属性的域

--为原有关系删除属性
alter table r drop A;
SQL查询的基本结构

基本结构:select … from … where…

  • select子句用来列出查询结果中所需的属性
  • from子句是一个查询求值中需要访问的关系列表
  • where子句是一个作用在from子句中关系的属性上的谓词

例如:

--找出所有教师的名字
select name
from instructor;

--找出所有计算机学院的教师名字
select name
from instructor
where dept_name='Comp.Sci.'

可以通过在select后加入distinct去除重复,使用all显式声明不去重

--去重
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值