SQL CREATE TABLE 语句用于在数据库中创建表。
如果要创建表,应为表命名并定义其列和每列的数据类型。
让我们看看创建表的简单语法。
create table "tablename"
("column1" "data type",
"column2" "data type",
"column3" "data type",
...
"columnN" "data type");
列的数据类型可能因一个数据库而异。例如,对于整数值,Oracle 数据库支持 NUMBER,而 MySQL 支持 INT。
让我们举个例子,创建一个以 ID 作为主键的 product 表,NOT NULL 是约束,表明在表中创建记录时这些字段不能为 NULL。
CREATE TABLE `product` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'pk',
`product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '产品名称',
`english_name` varchar(255) DEFAULT NULL COMMENT '英文名',
`price` decimal(10,2) DEFAULT NULL COMMENT '价格',
`category_id` int(11) DEFAULT NULL COMMENT '分类',
`created_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='产品表';
您可以通过查看 SQL Server 显示的消息来验证是否已成功创建表,否则您可以使用 DESC 命令,如下所示:
SQL> DESC product;
现在您的数据库中有可用的 product 表,您可以使用它来存储与 产品 相关的所需信息。
MySQL SQL 创建表 示例
让我们看看在 MySQL 数据库中创建表的命令。
CREATE TABLE `product` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'pk',
`product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '产品名称',
`english_name` varchar(255) DEFAULT NULL COMMENT '英文名',
`price` decimal(10,2) DEFAULT NULL COMMENT '价格',
`category_id` int(11) DEFAULT NULL COMMENT '分类',
`created_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='产品表';
Oracle SQL 创建表 示例
让我们看看在 Oracle 数据库中创建表的命令。
CREATE TABLE Employee
(
EmployeeID number(10),
FirstName varchar2(255),
LastName varchar2(255),
Email varchar2(255),
AddressLine varchar2(255),
City varchar2(255)
);
SQL Server SQL 创建表 示例
让我们看看在 SQLServer 数据库中创建表的命令。它与 MySQL 和 Oracle 相同。
CREATE TABLE Employee
(
EmployeeID int,
FirstName varchar(255),
LastName varchar(255),
Email varchar(255),
AddressLine varchar(255),
City varchar(255)
);
使用另一个表创建一个新表
我们可以使用 create table 命令创建现有表的副本。新表获得与旧表相同的列签名。我们可以选择所有列或某些特定列。
如果我们使用旧表创建新表,则新表将使用旧表中的现有值填充。
用另一个表创建一个表的基本语法是:
CREATE TABLE table_name AS
SELECT column1, column2,...
FROM old_table_name WHERE ..... ;
The following SQL creates a copy of the employee table.
CREATE TABLE EmployeeCopy AS
SELECT EmployeeID, FirstName, Email
FROM Employee;
带有 CREATE TABLE 语句的 SQL 主键
以下查询在创建“product”表时在“id”列上创建一个 PRIMARY KEY。
MySQL
CREATE TABLE `product` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'pk',
`product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '产品名称',
`english_name` varchar(255) DEFAULT NULL COMMENT '英文名',
`price` decimal(10,2) DEFAULT NULL COMMENT '价格',
`category_id` int(11) DEFAULT NULL COMMENT '分类',
`created_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='产品表';
SQL Server / Oracle / MS Access
CREATE TABLE Employee(
EmployeeID NOT NULL PRIMARY KEY,
FirstName varchar(255) NOT NULL,
LastName varchar(255),
City varchar(255)
);
使用以下查询在多个列上定义 PRIMARY KEY 约束,并允许命名 PRIMARY KEY 约束。
MySQL / SQL Server /Oracle / MS Access
CREATE TABLE Employee(
EmployeeID NOT NULL,
FirstName varchar(255) NOT NULL,
LastName varchar(255),
City varchar(255),
CONSTRAINT PK_Employee PRIMARY KEY (EmployeeID, FirstName)
);
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
本文链接:https://www.jhelp.net/p/kBHYOJVROTAsp7rc (转载请保留)。
关注下面的标签,发现更多相似文章
本站推荐
-
1249
-
1157
-
1024
-
1021
-
1016
文章目录