数据库会话:
connect(此时,会话被初始化,而且可能会有身份认证),disconnect和exit。退出的时候,会话结束,而且访问数据库的软件可能已经关闭。
SQL的命令的类型:
DDL:create /alter/drop table;create/alter/drop index;create/drop view.
DML: insert,delete,update.
DQL: select.
DCL: ALTER PASSWORD,GRANT,REVOKE,CREATE SYNONYM。
数据管理命令:对操作进行分析,start /stop audit。
事务控制命令:commit,rollback,savepoint(为事务回退创建标记点),set transaction(设置事务名称)。
表命名标准:
注意后缀的使用,比如_tbl,_idx等等。
表的构成:
字段,记录或者一行数据,列,主键,null值等。
数据类型:
字符串:定长、变长、大对象类型(blob、text)。
数值类型:bit(n)、 bit varying(n)、 decimal(s)、 integer、 smallint、 bigint、float(p,s)、numeric(s)、 real(s)、 double precision(p,s)。p表示字段长度,s表示小数点后的位数。
时间和日期类型:支持datetime数据类型,data,time,datetime(数据元素包含:year,month,day,hour,minute,second),timestamp。
其他:直义字符串,NULL类型,bool值(返回true,false,null),自定义类型。
数据的主要存储方式是表:列和行(记录)。
创建表的语法:
create table table_name(
col_name1 datatype constraint,
col_name2 datatype constraint,
………………
………………
);记得创建完后以分号结尾,注意表、列的命名规范。
修改表:
语法标准:alter table table_name [modify ] [column column_name] [data_type|| null \not null] [restrict cascade]
[ drop ] [constraint constraint name ]
[ add ] [column ] column definition.
修改表的元素(修改列的属性,即数据类型,列长、有效位数、标度,是否可空);添加列;
添加自动增长的列(serial 法);修改列。
从现有表创建另外一表:利用create table 和select语句的组合复制现有的表,新表有同样可选择的列定义:
语法:create table new_table_name as
select (*|column1,coumn2……) from table_name
[where]……;
删除表:drop table table_name;
完整性约束:主键约束,primary key;唯一性约束,unique;外键约束,foreign key;not null约束;检查约束;去除约束。
语法:alter table table_name
add constraint constraint_name primary/foreign key/check (prod_id , vend_id)
reference table_name(column_name);
alter table table_name drop constraint constraint_name/primary key; ‘/’ 后面的是快捷方式,可能不是很有用,两种方法选一个就行。
规格化过程(去除冗余):
数据库的逻辑设计:考虑终端用户的需求,比如保存什么数据,如何访问数据库,用户需要什么权限,数据如何分组,经常访问的数据是那些,数据正确性,减少冗余,访问简单化。数据冗余,应该尽可能的减少。
规格形式:第一、第二、第三规格形式。
规格化以后,对计算机性能的要求提高,比如CPU、I/O特性等等。规格化、去规格化是两个截然相反的过程,应该见仁见智。