欢迎投稿

今日深度:

SQL必知必会 笔记 第十七章 创建和操纵表,sql必

SQL必知必会 笔记 第十七章 创建和操纵表,sql必知


17.1创建表

一般有两种创建表的方法
(1)多数DBMS都具有交互式创建和管理表工具
(2)表也可以直接用SQL语句操纵
语法差别:在不同的SQL实现中,CREATE TABLE语句的语法可能会有所不同。

17.1.1表创建基础

为利用CREATE TABLE创建表,必须给出下列信息:
(1)新表的名字,在关键字CREATE TABLE之后给出。
(2)表列的名字和定义,用逗号分隔。
(3)有的DBMS还要求指定表的位置。
创建Products表

CREATE TABLE Products
{
     prod_id          CHAR(10)     NOT NULL,
     vend_id          CHAR(10)     NOT NULL,
     prod_name     CHAR(254)     NOT NULL,
     prod_price      DECIMAL(8,2)     NOT NULL,
     prod_desc      VARCHAR(1000)    NULL
};

替换现有的表
在创建新表时,指定的表名必须不存在,否则将出错。如果要防止以外覆盖已有的表,SQL要求首先手工删除该表,然后再重建它,而不是简单地用创建表语句覆盖它。

17.1.2使用NULL值

允许NULL值的列也允许在插入行时不给出该列的值。不允许NULL值的列不接受该列没有值的行,换句话说,在插入或更新行时,该列必须没有值。
指定NULL:多数DBMS在不指定NOT NULL时认为指定的是NULL,但并不是所有的DBMS都这样。
主键和NULL值:主键是其值唯一标识表中每一行的列,只有不允许NULL值的列可用于主键。允许NULL值的列不能用于唯一标识。
理解NULL:不要把NULL值与空串相混淆,NULL值是没有值,它不是空串,如果指定‘’,这在NOT NULL列种是允许的。空串是一个有效的值,它不是无值。NULL值用关键字NULL而不是空串指定。

17.1.3指定默认值

SQL允许指定默认值,在插入行时如果不给出值,DBMS将自动采用默认值。默认值在CREATE TABLE语句的列定义中用关键字DEFAULT指定。

CREATE TABLE OrderItems
{
     order_num     INTEGER     NOT NULL,
     order_item     INTEGER     NOT NULL,
     prod_id          CHAR(10)     NOT NULL,
     quantity         INTEGER     NOT NULL     DEFAULT 1,
     item_price      DECIMAL(8,2)   NOT NULL
};

获得系统日期
这里写图片描述

17.2更新表

为更新表定义,可使用ALTER TABLE语句。
使用ALTER TABLE所考虑的内容。
(1)一般来说,在表中包含数据时不要对其进行更新。
(2)所有DBMS都允许给校友的表增加列,不过对所增加列的数据类型(以及NULL和DEFAULT的使用)有所限制。
(3)许多DBSM不允许删除或更改表中的列。
(4)多数DBMS允许重新命名表中的列。
(5)许多DBMS对已经填有数据的列的更改有限制,对未填有数据的列几乎没有限制。
为了使用ALTER TABLE更改表结构,必须给出下面信息:
(1)在ALTER TABLE之后给出要更改的表名(该表必须存在,否则将出错)
(2)所做更改的列表
添加列

ALTER TABLE Vendors
ADD vend_phone CHAR(20);

删除列

ALTER TABLE Vendors
DROP COLUMN vend_phone;

小心使用ALTER TABLE:使用ALTER TABLE要极为小心,应该在进行改动前做一个完整的备份。数据库表的更改不能撤销,如果增加了不需要的列,可能不能删除它们。类似地,如果删除了不应该删除的列,可能会丢失该列中的所有数据。

17.3删除表

删除表(删除整个表而不是其内容),使用DROP TABLE语句。

DROP TABLE CustCopy;

17.4重命名表

不同DBMS所支持的表的重命名有所不同。
Oracle用RENAME

www.htsjk.Com true http://www.htsjk.com/shujukunews/7578.html NewsArticle SQL必知必会 笔记 第十七章 创建和操纵表,sql必知 17.1创建表 一般有两种创建表的方法 (1)多数DBMS都具有交互式创建和管理表工具 (2)表也可以直接用SQL语句操纵 语法差别:在不同...
评论暂时关闭