创建表 CREATE TABLE

不同的 DBMS 中 CREATE TABLE 语法不同

CREATE TABLE Products
(
    prod_id  CHAR(10)  NOT NULL.
    vend_id  CHAR(10)  NOT NULL,
    prod_desc VARCHAR(1000) NULL
);

使用 NULL 值

  • 每行的 NULL/NOT NULL 代表是否允许 NULL 值
  • 有些DBMS可以省略关键字NULL,有些不可以
  • 只有不允许NULL的列才能作为主键

指定默认值 DEFAULT

CREATE TABLE OrderItems
(
	quantity  INTEGER  NOT NULL DEFAULT 1
);

更新表 ALTER TABLE

不同DBMS允许更新的内容差别很大

-- 增加一列
ALTER TABLE Vendors
ADD vend_phone CHAR(20);

-- 删除一列,只对部分DBMS有效
ALTER TABLE Vendors
DROP COLUMN vend_phone;
  • 对表结构更复杂的更改需要手动创建新表,复制数据再重命名新表

删除表 DROP TABLE

DROP TABLE CustCopy;

重命名表

DB2、MariaDB、MySQL、Oracle和PostgreSQL使用RENAME语句,SQL Server使用sp_rename存储过程,SQLite使用ALTER TABLE

复制表

CREATE TABLE CustCopy AS SELECT * FROM Customers;

可以明确给出列名、使用任何 SELECT 选项和子句,以及使用联结