SQL——学习笔记
2014-02-19 17:06
225 查看
时间:2014.02.19
地点:基地
————————————————————————————————————————
varchar(n) ——可变长度的字符串,用户指定最大长度n,是多少就是多少,不足也不会用空格补齐,但为了方便做比较操作,建议始终使用varchar类型
int ——整数类型(和机器相关的整数的有限子集)
smallint ——小整数类型(和机器相关的整数类型的子集)
numeric(p,d) ——定点数,精度由用户指定,这个数有p位数字,一个小数点符号位,其中d位数字在小数点右边,比如numeric(3,1)可以存储44.5,但444.5或0.32这样的数字就不行了。
real,double precision ——浮点数与双精度浮点数,精度与机器相关
floar(n) ——精度至少为n位的浮点数
其中每种类型都可能包含一个空值得特殊值,前面提到过,应该尽量避免使用这样的空值。
————————————————————————————————————————
完整性约束
a) primary key(A1,A2,......An)属于完整性约束,用来指明属性A1,A2,......An构成关系的主码。主码的属性必须唯一非空。比如:
b) foreign key(A1,A2,......An) references xxx 用以说明关系中任意元组在属性(A1,A2,......An)上的取值必须对应于关系XXX中某元组在主码属性上的取值。比如:
c) not null 一个属性上的not null 约束表明在该属性上不允许空值
SQL会禁止破坏完整性约束的任何数据更新。
地点:基地
————————————————————————————————————————
一、基本类型
char(n) ——固定长度的字符串,用户指定为n。不足用空格补齐varchar(n) ——可变长度的字符串,用户指定最大长度n,是多少就是多少,不足也不会用空格补齐,但为了方便做比较操作,建议始终使用varchar类型
int ——整数类型(和机器相关的整数的有限子集)
smallint ——小整数类型(和机器相关的整数类型的子集)
numeric(p,d) ——定点数,精度由用户指定,这个数有p位数字,一个小数点符号位,其中d位数字在小数点右边,比如numeric(3,1)可以存储44.5,但444.5或0.32这样的数字就不行了。
real,double precision ——浮点数与双精度浮点数,精度与机器相关
floar(n) ——精度至少为n位的浮点数
其中每种类型都可能包含一个空值得特殊值,前面提到过,应该尽量避免使用这样的空值。
————————————————————————————————————————
二、基本模式
1. create table 命令定义SQL关系,比如
create table departname (dept_name varchar(20), building varchar(15), budget numeric(12,2), primary key (dept_name));这里创建了一个department关系,包含三个属性,并指明dept_name属性为关系的主码。另外在很多SQL实现中,分号是可选的。
完整性约束
a) primary key(A1,A2,......An)属于完整性约束,用来指明属性A1,A2,......An构成关系的主码。主码的属性必须唯一非空。比如:
create table department (dept_name varchar(20), building varchar(15), budget nmueric(12,2), primary key(dept_name));类似的完整性约束还有:
b) foreign key(A1,A2,......An) references xxx 用以说明关系中任意元组在属性(A1,A2,......An)上的取值必须对应于关系XXX中某元组在主码属性上的取值。比如:
foreign key(dept_name) references department
此外码表明对与关系中的每个元组来说,该元组所表示的dept_name属性值必然存在于department关系的主码属性dept_name中,若果没有这个约束的话,就可能关系中的某个项指定了一个并不存在的dept_name值。
create table course (course_id varchar(7), title varchar(15), dept_name varchar(20), crediits numeric(2,0), primary key(course_id), foreign key(dept_name) references deptment);
c) not null 一个属性上的not null 约束表明在该属性上不允许空值
SQL会禁止破坏完整性约束的任何数据更新。
2.insert into XXX values() 插入数据
inser into instructor values(10211,'Smith','Biology',66000);
3.delete 命令删除元组
delete from studeng;
从student关系中删除所有元组。4.drop table 命令从数据库中删除关系
drop table r;注意与delete from区别,delete from只是删除元组,关系依旧存在,而drop则是彻底删除,包括元组和关系。
6.alter table r add A,D 命令为已有关系增加属性。A为待增加的属性,D为待增加属性的域。
7.alter table r drop A;
表从关系中去掉属性
相关文章推荐
- mysql自定义排序顺序语句
- 阅读redis源代码的一些体会
- Redis双机热备方案--转
- 45 Useful Oracle Queries--ref
- HAProxy advanced Redis health check---ref
- 深入redis内部之redis启动过程之一
- 深入redis内部之redis启动过程之二
- 深入redis内部--内存管理
- redis虚拟内存---官方文档
- 深入redis内部--事件处理机制
- 深入redis内部--初始化服务器
- Redis数据持久化机制AOF原理分析一---转
- 转载--redis密码管理
- 转载----How fast is Redis?
- 深入redis内部--字典实现
- 解决MySQL Table '***' is marked as crashed and should be repaired问题
- 查询数据库中某个表的总列数
- oracle导入dmp文件命令
- Sql全局变量
- Oracle中利用sequence做添加操作