紫色代表一级目录
粉红代表二级目录
蓝色代表三级目录
红色代表关键字
橙色代表说明
数据库对象:
是数据库定义的、用于存储或引用数据的对象(表、视图、索引等)。
规划:
规划是与数据库某个用户名相关联的数据库对象集合。
相应的用户名被称为规划所有人(关联对象组的所有人)。
USER1访问自己的table1:table1
USER1访问自己的test:test
USER1访问USER2的table10:USER2.table10
USER1访问USER2的test:USER2.test
数据的主要存储方式:表
简单说明:table是关系型数据库里最主要的数据存储对象,其简单形式由行和列组成。表在数据库中占用实际的物理空间,可以是永久或者临时的。
列:
简单说明:在关系数据库中列也被称为字段,它是表的基本组成部分,被设置为特定的数据类型。数据类型决定了什么样的数据可以保存在相应的列中,从而保存了数据的完整性。
在给列命名时,采用下划线_将不同的单词分开是一个不错的选择。
列也可以指定为NULL和NOT NULL。
行:
简单说明:行(也被称为元组)是数据库表中的一条记录。
CREATE TABLE语句:
SQL中的CREATE TABLE语句用于创建一个表。
在创建表时需要考虑到的问题:
- 表的名字
- 列的名字
- 包含什么类型的数据
- 每一列的数据类型
- 每一列的长度
- 主键
- 哪些字段的值可以是NULL
创建表的基本语法:
CREATE TABLE table_name
( field1 data_type [ null / not null ],
field2 data_type [ null / not null ],
…
fieldn data_type [ null / not null ];
)
ALTER TABLE
1. 修改表的元素
列的属性是其所包含数据的规则和行为。利用ALTER TABLE可以修改列的属性,这里“属性”的含义为:
列的数据类型;
列的长度、有效位数或标度;
列值是否为空
例:ALTER TABLE table1
name VARCHAR(10); 修改表table1的name属性的变量类型(如果表已包含数据,这时添加的列就不能定义为NOT NULL。原因是当现有记录中没有相关数据时,就会产生自身矛盾的情况。)
2. 添加列
强行向表添加一列的方法:
a. 添加一列,把它定义为NULL(这一行不一定要包含数据)
b. 给这个新列在每条记录里都插入数据
c. 把列的定义修改为NOT NULL
3. 添加自动增加的列(有时我们需要一列数据能自动增加,从而让每一行都具有不同的序号)
多种情况:
MySQL提供SERIAL方法来为表生产真正的唯一值
例:CREATE TABLE TEST(
ID SERIAL,
TEST_NAME VARCHAR(20));
watch out:创建表时使用NULL(列的默认属性是NULL)。
Microsoft SQL Server中使用IDENTITY类型
例:CREATE TABLE TEST(
ID INT IDENTITY(1,1) NOT NULL,
TEST_NAME VARCHAR(20));
Oracle没有提供直接的方法来创建自动增加的列,但却可以用SEQUENCE对象和一个触发器实现类似的效果。
4. 修改列
从现有的表新建另一个表
格式:CREATE TABLE new_table_name AS //创建一个新的表
SELECT [列名] //选择被选择表中的列
FROM table_name //被选择的表
[WHERE] //条件判断语句
删除表
格式:DROP TABLE table_name [ RESTRICT | CASCADE ]
说明:RESTRICT代表如果表被视图或约束所引用,DROP就会返回一个错误。
CASCADE代表全部引用视图和约束都被删除。
完整性约束
作用:用于确定关系型数据库里数据的准确性和一致性。
主键约束
主键是表中一个或多个用于实现记录唯一性的字段。
实现:在创建表时,在没建立一列(字段)时,在变量类型后指定PRIMARY KEY
例:CREATE TABLE table_name
(name CHAR(9) NOT NULL PRIMARY KEY,
…
);
唯一性约束
唯一性约束要求表中某列(字段)的值在每条记录里都是唯一的。
实现:将上例主键约束的PRIMARY KEY改为UNIQUE即可。
外键约束
外键是子表里的一个字段,引用父表的主键。外键约束是确保表与表之间引用完整性的主要机制。
实现:通过CONSTRAINT、FROEIGN KEY、REFERENCES关键字实现。
例:CREATE TABLE new_table_name
(
…
CONSTRAINT new_name FOREIGN KEY(name) REFERENCES table_name(name),
…
)
利用ALTER TABLE命令可以向表里添加外键
例:ALTER TABLE new_table_name
ADD CONSTRAINT new_name FOREIGN KEY (name)
REFERENCES table_name(name);
NOT NULL约束
关键字NULL和NOT NULL说明(字段默认是NULL)。
检查约束
去除约束