sql语句(创建表)

        SQL语句用于创建表(Create Table)是数据库操作中的基础之一。创建表时,你需要指定表名、列名、数据类型以及可能的其他约束(如主键、外键、唯一约束、非空约束等)。下面是一些创建表的SQL语句示例,涵盖了不同的场景和数据类型。

示例 1: 简单的用户表

CREATE TABLE Users ( 
UserID INT PRIMARY KEY, 
Username VARCHAR(50) NOT NULL, 
Email VARCHAR(100) UNIQUE, 
Password VARCHAR(255) NOT NULL, 
CreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP 
);

这个示例创建了一个Users表,包含用户ID(主键)、用户名(非空)、电子邮件(唯一且非空)、密码(非空)以及创建时间(默认值为当前时间戳)。

示例 2: 包含外键的订单表

假设我们还有一个Products表,我们需要创建一个Orders表来存储订单信息,并包含与Products表相关联的外键。

首先,Products表的定义可能如下:

CREATE TABLE Products ( 
ProductID INT PRIMARY KEY, 
ProductName VARCHAR(100), 
Price DECIMAL(10, 2) 
);

Orders表的定义可能如下:

CREATE TABLE Orders ( 
OrderID INT PRIMARY KEY, 
ProductID INT, 
OrderDate DATE, 
Quantity INT, 
FOREIGN KEY (ProductID) REFERENCES Products(ProductID) 
);

在这个示例中,Orders表有一个ProductID列,它是Products表的外键。这意味着每个订单都必须与一个存在的产品相关联。

示例 3: 带有自增主键的表

在很多情况下,我们希望数据库自动为每条新记录分配一个唯一的ID。这可以通过将主键列设置为自增(AUTO_INCREMENT)来实现(注意:AUTO_INCREMENT是MySQL的特定语法,其他数据库系统可能有不同的实现方式)。

 

sql复制代码

CREATE TABLE Articles (
ArticleID INT AUTO_INCREMENT PRIMARY KEY,
Title VARCHAR(255) NOT NULL,
Content TEXT,
Published BOOLEAN DEFAULT FALSE
);

在这个示例中,ArticleID列是自动递增的主键,每当插入新记录时,MySQL都会自动为其分配一个唯一的整数值。

示例 4: 包含枚举和集合的表

在某些情况下,你可能希望某列只能包含预定义的值集合。这可以通过枚举(ENUM)类型或集合(SET)类型来实现。

CREATE TABLE Surveys ( 
SurveyID INT AUTO_INCREMENT PRIMARY KEY, 
Question VARCHAR(255), 
Answer ENUM('Yes', 'No', 'Maybe') 
); 


CREATE TABLE Profiles ( 
ProfileID INT AUTO_INCREMENT PRIMARY KEY, 
Hobbies SET('Reading', 'Swimming', 'Hiking', 'Gaming') 
);

        在这个示例中,Surveys表的Answer列只能包含'Yes'、'No'或'Maybe'中的一个值,而Profiles表的Hobbies列可以包含'Reading'、'Swimming'、'Hiking'和'Gaming'中的零个或多个值(以逗号分隔)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值