一概述:
(1)关系模式与关系:
*在关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述。
*关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的;而关系是动态的、随时间不同变化的。
*每个基本表都属于某一个模式,一个模式包含多个基本表。
*定义模式实际上定义一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如基本表、视图、索引等。
(2)定义:
*关系数据库支持三级模式结构,其模式、外模式和内模式的基本对象有:基本表、视图和索引。
二 数据库的创建和删除:
(1)创建数据库:
*最简单形式:create database name。
(2)删除数据库:drop database name。
三 表的创建:
(1)格式:
*create table<表名>
(<列名> <数据类型> [列级完整性约束条件],
<列名> <数据类型> [列级完整性约束条件],
...
[,<表级完整性约束条件>])
(2)数据类型:
四 表的更新(alter和update):
(1)更新表(alter):
*理性状态下,当表中存储数据以后,该表就不应该再被更新。
*可以使用alter table更改表结构。
*例如:
alter table lyr add salary int.//增加一列。
alter table lyr drop salary.//删除一列。
...
(2)数据修改(update):
*格式:
update <表名>
set <列名>=<表达式> [,<列名>=<表达式>]...
[where <条件>]。
*功能:修改指定表中满足where子句条件的元组。如果省略where子句,则表示要修改表中的所有元组。
五 表的删除(drop、delete和truncate):
(1)drop:
*格式:drop table<表名> [restrict | cascade];
*restrict:缺省情况。该表的删除是有条件的,欲删除的基本表不能被其他表的约束所引用(如check、foreign key等约束),不能有视图、触发器、存储过程或函数等。
*cascade:表的删除没有限制条件。删除基本表的同时,相关的依赖对象例如视图都将被一起删除。(不同数据库实现不同)
(2)delete语句(删除表中的数据而不是表的定义):
*格式:
delete from <表名>
[where <条件>]
*功能:从指定表中删除满足where子句条件的所有元组。如果省略where子句,表示删除表中的全部元组;但表的定义仍在数据字典中。
(3)truncate(删除表中的数据,比delete速度快):
*格式:truncate table name.
*TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
*DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一个项。TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放。
*使用的锁通常较少。当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。TRUNCATE TABLE 始终锁定表和页,而不是锁定各行。