首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL - 在数据库中创建表(数据库教程指南二)

SQL - 在数据库中创建表

CREATE 语句用于创建数据库结构,如表、视图、序列、函数、过程、包、触发器等。我们将在教程的后面部分探索所有这些数据库结构。

CREATE TABLE 语句用于在数据库中创建新表。以下是在数据库中创建新表的语法。

句法:

CREATE TABLE table_name(

column_name1 data_type [NULL|NOT NULL],

column_name2 data_type [NULL|NOT NULL],

...

);

在上面的 CREATE TABLE 语法中,table_name是您想要给出的表的名称,column_name1是第一列的名称,column_name2是第二列的名称,依此类推。是data_type列要存储的数据类型,例如字符串、整数、日期时间等。数据类型因数据库而异,例如,SQL Server 中的字符串数据类型是 or ,而 Oraclevarchar中是nvarchar。varchar2因此,数据类型取决于您使用的数据库。

使用NULLorNOT NULL约束指定列是否允许NULL 值。默认情况下,除非指定,否则所有列都允许NULL值NOT NULL。这些NULL列是可选的,而NOT NULL在插入或更新数据时,列是必需的。

在 SQL Server、MySQL、PostgreSQL、SQLite 中创建表

以下命令将用于Employee在 SQL Server、MySQL、PostgreSQL、SQLite 数据库中创建表:

SQL 脚本:创建表

复制

CREATE TABLE Employee(

EmpId integer,

FirstName varchar(20),

LastName varchar(20),

Email varchar(25),

PhoneNo varchar(25),

Salary integer

);

上面的Employee是表的名称,EmpId、FirstName、LastName、Email、PhoneNo、HireDate、 和Salary是列。varchar是字符串数据类型,其大小在括号中提及,例如varchar(20)指定该列将存储最多 20 个字符长的字符串。

大多数时候,数据库中的所有表都至少有一列作为主键。下面定义了一个带有主键的表。

创建EmpId integer PRIMARY KEY,列EmpId并同时将其定义为主键。

SQL 脚本:使用主键创建表

复制

CREATE TABLE Employee (

EmpId integer PRIMARY KEY,

FirstName varchar(20),

LastName varchar(20),

Email varchar(25),

PhoneNo varchar(25),

Salary integer

);

在Oracle中创建表

以下 SQL 脚本Employee在 Oracle 数据库中创建带有主键的表:

SQL 脚本:在 Oracle 中创建表

复制

CREATE TABLE Employee(

EmpId number PRIMARY KEY,

FirstName varchar2(20),

LastName varchar2(20),

Email varchar2(25),

PhoneNo varchar2(25),

Salary number(8)

);

注意,在Oracle中,字符串数据类型被称为varchar2,整数类型被称为number。

在此阶段,该Employee表是空的,不包含任何数据。另请注意,我们创建了一个以EmpId列作为主键的表,这意味着表中所有行中的字段EmpId都是唯一且非空Employee字段。

Employee下图是数据库中的表的示意图。

从现有表创建新表

该CREATE TABLE AS命令用于从具有结构和数据的现有表创建一个新表,如下所示:以下查询将在 Oracle、MYSQL、SQLite 和 PostgreSQL 中运行。

SQL 脚本:创建包含数据的表的副本

CREATE TABLE Employee_Backup AS SELECT * FROM Employee;

要创建包含选定列和数据的表副本Employee,请使用CREATE TABLE AS命令,如下所示:

SQL 脚本:创建包含数据的表的副本

CREATE TABLE TempEmployee as (SELECT EmpId, FirstName, LastName FROM Employee);

Employee要创建仅包含结构且无数据的表副本,请使用命令,CREATE TABLE AS如下所示:

SQL 脚本:创建没有数据的表的副本

CREATE TABLE Consultant AS SELECT * FROM Employee WHERE 1=2;

上面的where子句where 1=2不会返回任何记录,因此上面的命令只创建一个没有数据的表。

在 MS SQL Server 中创建表的副本

该SELECT * INTO命令创建具有结构和数据的现有表的副本。

SQL 脚本:在 SQL Server 中创建表的副本

SELECT * INTO Employee_backup FROM Employee

表格设计指南

在数据库中创建任何表之前,需要设计表,表中将存储什么样的信息。需要什么列,列的数据类型是什么?哪些约束将适用于不同的列?应该对表应用哪些约束?表之间的关系是什么?

以下是设计表格时需要考虑的一些准则:

定义表名和列名时使用缩写但有意义的名称。

列名称允许的最大长度为 30 个字符,并且应以字母开头。

为表的每一列定义适当的数据类型。

尝试在表中仅保留必需的列。不太重要的列可以保留到其他一些详细表中,而不是将它们存储在主表中。

始终尝试放置可以包含 NULL 值的列。这样,它将节省存储空间。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OXZ0mRPy00BTXR1QY287pqTg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券