一、什么是数据库对象
数据库对象是数据库里定义的、用于存储或引用数据的对象,比如表、视图、簇、序列、索引和异名。
二、什么是规划
规划是与数据库某个用户名相关联的数据库对象集合。相应的用户名被称为规划所有人,或是关联对象组的所有人。数据库里可以有一个或多个规划。用户只与同名规划相关联,通常情况下反之亦然。
三、表:数据库的主要存储方式
1、列
字段在关系型数据库也被称为列,它是表的组成部分,被设置为特定的数据类型。
2、行
行是数据库表里的一条记录。
3、CREATE TABLE语句
在创建表时,需要考虑以下一些基本问题。
表里会包含什么类型的数据?
表的名称是什么?
哪个(或哪些)列组成主键?
列(字段)的名称是什么?
每一列的数据类型是什么?
每一列的长度是什么?
表里哪些列可以是NULL?
创建表的基本语法:
CREATE TABLE table_name
(
Field1 date_type [not null],
Field2 date_type [not null],
Field3 date_type [not null],
Field4 date_type [not null],
Field5 date_type [not null]
);
4、命名规范
5、ALTER TABLE命令
ALTER TABLE命令的标准:
alter table table_name[modify] [column column_name][datatype]null not null] [restrict | cascade]
[drop] [constraint constraint_name]
[add] [column] column definition
(1) 修改表的元素
列的属性是其所包含数据的规则和行为。利用ALTER TABLE命令可以修改列的属性,在此“属性”的含义是:
列的数据类型;
列的长度、有效位数或标度;
列值能否为空。
语法:
ALTER TABLE table_name MODIFY
Field date_type [not null]; (2) 添加列
强行向表添加一列的方法:
添加一列,把它定义为NULL(这一行不一定要包含数据);
给这条新列在每条记录里都插入数据;
把列的定义修改为NOT NULL。
(3) 添加自动增加的列
格式:
MySQL:
CREATE TABLE table_name
(
Field SERIAL;
… SQL Server:
CREATE TABLE table_name
(
Field INT IDENTITY(1,1) NOT
NULL,
...
Oracle:
可以使用SEQUENCE对象和一个触发器来实现类似的效果。
(4) 修改列
修改列的通用规则:
列的长度可以增加到特定数据类型所允许的最大长度;
如果想缩短某列的长度,则必须要求这一列在表里所有数据的长度都小于或等于新长度;
数值数据的位数可以增加;
如果要缩短数值数据的位数,则必须要求这一列在表里所有数值的位数小于或等于新指定的位数;
数值的小数位数可以增加或减少;
列的数据类型一般是可以改变的。
6、从现有表新建另一个表
MySQL和Oralce:
利用CREATE TABLE语句与SELECT语句组合可以复制现有的表。
create table new_table_name as
select [*|column1, column2]
from table_name
[where] SQL Server:
利用SELECT…INTO方法来实现相同的效果。
select [*|column1, column2]
into new_table_name
from table_name
[where]
7、删除表
drop table table_name [restrict | cascade]
四、完整性约束
1、主键约束
主键是表里一个或多个用于实现记录唯一性的字段。
隐含约束:Field date_type [not null] PRIMARY KEY;
明确指定:PRIMARY KEY(Field);
明确指定两个主键:PRIMARY KEY(Field1, Field2);
ALTER TABLE table_name:ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY(Field1, Field2);
2、唯一性约束
唯一性约束要求表里某个字段的值在每条记录里都是唯一的。
Field date_type [not null] UNIQUE;
3、外键约束
外键是子表里的一个字段,引用父表里的主键。
创建表的同时创建外键:
…
CONSTRAINT constraint_name FOREIGN KEY(Field) REFERENCES table_name(Field); 利用ALTER TABLE命令可以向表里添加外键:
ALTER TABLE table_name
ADD CONSTRAINT constraint_name FOREIGN KEY(Field)
REFERENCES table_name(Field);
4、NOT NULL约束
5、检查约束
检查(CHK)约束用于检查输入到特定字段的数据的有效性。
在检查约束力可以使用几乎任何条件,就像在SQL查询里一样。
6、去除约束
利用ALTER TABLE命令的DROP CONSTRAINT选项可以去除已经定义的约束。
ALTER TABLE table_name DROP CONSTRAINT constraint_name;