SQL CREATE TABLE语句

2024年11月19日 SQL CREATE TABLE语句 极客笔记

SQL CREATE TABLE语句

SQL CREATE TABLE语句用于在数据库中创建表。

如果要创建一个表,您应该为表命名并定义其列和每个列的数据类型。

让我们看一下创建表的简单语法。

create table "tablename"
("column1" "data type",
"column2" "data type",
"column3" "data type",
...
"columnN" "data type");

列的数据类型在不同数据库中可能会有所不同。例如,Oracle数据库支持INTEGER类型的数值,而MySQL支持INT类型。

让我们以创建一个名为STUDENTS的表为例,其中ID是主键,NOT NULL是约束条件,表示在创建记录时这些字段不能为NULL。

SQL> CREATE TABLE STUDENTS (
ID INT                           NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT                         NOT NULL,
ADDRESS CHAR (25),
PRIMARY KEY (ID)
);

如果您成功创建了表格,您可以通过查看 SQL Server 显示的消息来验证它;否则,您可以使用以下 DESC 命令:

SQL> DESC STUDENTS;

FIELD TYPE NULL KEY DEFAULT EXTRA
ID Int(11) NO PRI
NAME Varchar(20) NO
AGE Int(11) NO
ADDRESS Varchar(25) YES NULL

在设置中有4行(0.00秒)

现在你的数据库中有可用的STUDENTS表,并且你可以用它来存储与学生有关的必要信息。

MySQL中的SQL CREATE TABLE示例

让我们来看看在MySQL数据库中创建表的命令。

CREATE TABLE Employee
(
EmployeeID int,
FirstName varchar(255),
LastName varchar(255),
Email varchar(255),
AddressLine varchar(255),
City varchar(255)
);

在Oracle中SQL CREATE TABLE示例

让我们来看看在Oracle数据库中创建表的命令。

CREATE TABLE Employee
(
EmployeeID number(10),
FirstName varchar2(255),
LastName varchar2(255),
Email varchar2(255),
AddressLine varchar2(255),
City varchar2(255)
);

SQL CREATE TABLE在Microsoft SQLServer中的示例

让我们看一下在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 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;

SQL创建表语句中的主键

下面的查询在创建”Employee”表时在”D”列上创建了一个主键。

MySQL

CREATE TABLE Employee(
EmployeeID NOT NULL,
FirstName varchar(255) NOT NULL,
LastName varchar(255),
City varchar(255),
PRIMARY KEY (EmployeeID)
);

SQL Server / Oracle / MS Access

CREATE TABLE Employee(
EmployeeID NOT NULL PRIMARY KEY,
FirstName varchar(255) NOT NULL,
LastName varchar(255),
City varchar(255)
);

使用以下查询在多列上定义主键约束,并允许命名主键约束。

对于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)
);

本文链接:http://so.lmcjl.com/news/18124/

展开阅读全文