- 第一章节:SQL概要
数据库SQL命令的类型:
- 数据定义语言DDL
- 数据操纵语言DML
- 数据查询语言DQL
- 数据控制语言DCL
- 数据管理命令
- 事务控制命令
DDL:
- create table
- alter table
- drop table
- create index
- alter index
- drop index
- create view
- drop view
DML:
- insert
- update
- delete
DQL:
- select
DCL:
- alter password
- grant
- revoke
- create synonym
数据管理命令:
- start audit
- stop audit
事务控制命令:
- commit:提交数据库事务
- rollback:撤销数据库事务
- savepoint:在一组事务里创建标记点以用于回退
- set transaction:设置事务的名称
表名的应该符合商业规则,有利于辅助使用。例如表名为XX_TAB字段名为user_id。
表的构成:字段,记录,列,主键,NULL值。
- 第二章节:定义数据结构
- 数据基本类型可以设置字段的类型,一些数据类型可以自动转换为其他数据类型,隐式转换了。例如从一个数值字段的数据取出来放到字符串里,数据库可以完成自动转换,但有的必能完成自动转换,要显式才用cast和convert。
最基本三种类型:字符串,数值,日期和时间类型。
定长与变长字符串:主要考虑不要造成空间浪费。varchar为常见变长的。
大对象类型:varchar太小,blob与text保存大数据集,blob是二进制大对象(很长的二进制字符串)。
数值类型:
bit(n)
bit varying(n)
decimal(p,s)
Integer
smallint
bigint
float(p,s)
double precision(p,s)
real(s)
p为最大长度,s为小数后位数
有个通用类型numeric。整数小数正负数都可以
小数类型:
decimal(p,s) 有四舍五入的性质,34.33放到decimal(3,1)保存为34.3
整数:-
浮点数:
单精度浮点有效位数1-21.
双精度有效位数22-53
定义两个 float(15) float(50)
日期和时间类型:
date
time
datetime
timestamp
datetime数据类型的元素:
year
month
day
hour
minute
second
直义字符串:一般来说字符串需要使用单引号,数值不需要
NULL类型:
为空
布尔型:
true false null
自定义类型:极大丰富存储的数据。
自定义一个类型:create type person as object(name varchar(30),ssn varchar(9))
使用:create table em_tab(employee person,salary decimal(10,2),)
域:可以被使用的数据类型的集合。域与数据相关联,从而只能接受特定的数据。
创建域:
create domain money_d as number(8,2);
还可以给域添加约束条件:
alter domain money_d add constraint money_con1 check(value > 5)
然后这样引用域:
create table emp_ pay(emp_id number(9),em_name varchar(30),pay_rate money_d)
- 第三章:管理数据库对象
数据库对象:表,视图,簇,序列,索引和异名。表示最主要最简单的储存形式。
规划:某个用户名相关联的数据库的对象集合。当用户user创建一个对象就是在自己的规划里创建了它。对于数据库来说全名是user.表名.自己在自己的规划内使用不需要加user,其他用户要访问这个表就要加用全名。
表:列,行。
create table语句-
命名规范
alter table命令-
从现有的表新建另一个表:
create table new_table_name as select [* | column1,column2] from table_name [where]
删除表:-
- 完整性约束
主键约束:唯一
唯一性约束:也可作为主键
外键约束:为确保标语表之间引用完整性的主要机制。外键作为主键的那个表为父表,在子表插入一个数据必须也在父表中有其值,类似在父表中删除了该字段,子表里的对应值也应该被全部删除,这就是应用完整性。
用alter向表里添加外键:alter table 【子表名】add constraint 【子表中字段名】 foreign key(【外键名】) references 【父表名】(【父表字段名】)
not null约束
检查约束:用于检查输入到特定的字段的数据的有效性。
去除约束-