SQL 创建表
SQL CREATE TABLE语句用于在数据库中创建表。
如果要创建表,应将其命名为表,并定义其列和每一列的数据类型。
让我们看一下创建表的简单语法。
create table "tablename"
("column1" "data type",
"column2" "data type",
"column3" "data type",
...
"columnN" "data type");
列的数据类型可能因一个数据库而异。例如,在Oracle数据库中,整数值支持NUMBER,而在MySQL中则支持INT。
让我们以创建一个ID为主键的STUDENTS表为例,而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 rows in set (0.00 sec)
现在数据库中已有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命令创建现有表的副本。新表获得与旧表相同的列签名。我们可以选择所有列或某些特定列。
如果使用旧表创建新表,则新表将被旧表中的现有值填充。
与另一个表一起创建表的基本语法为:
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主键
以下查询在创建" Employee"表时在" D"列上创建PRIMARY KEY。
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)
);
使用以下查询在多个列上定义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)
);