SQL创建表的语法
在 SQL 中,创建表的基本语法是使用 CREATE TABLE 语句。通过这个语句,可以定义新表的结构,包括列(字段)名称、数据类型以及其他约束。
基本语法
CREATE TABLE table_name (
column1 datatype [constraint],
column2 datatype [constraint],
...
[table_constraints]
);
table_name:表的名称。column1,column2, ...:列的名称。datatype:列的数据类型(如INT,VARCHAR,DATE等)。constraint:可选的列约束(如NOT NULL,UNIQUE,PRIMARY KEY等)。table_constraints:可选的表级约束(如PRIMARY KEY,FOREIGN KEY等)。
常见数据类型
INT:整数类型。VARCHAR(size):变长字符类型,size指定最大字符长度。CHAR(size):定长字符类型。DATE:日期类型。DATETIME:日期和时间。FLOAT、DOUBLE:浮动小数类型。TEXT:长文本类型。BOOLEAN:布尔类型。
常见约束
NOT NULL:列值不能为NULL。UNIQUE:列中的值必须唯一。PRIMARY KEY:将此列作为表的主键,唯一标识每一行。FOREIGN KEY:定义外键约束,建立与其他表的关联。CHECK:限制列中的值。DEFAULT:为列指定默认值。
示例 1:创建一个简单的表
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
hire_date DATE,
salary DECIMAL(10, 2) DEFAULT 0.00
);
id列是整数类型,作为主键。name列是字符串类型,不能为空。hire_date列是日期类型,允许为空。salary列是小数类型,默认值为0.00。
示例 2:创建带有外键约束的表
CREATE TABLE orders (
order_id INT PRIMARY KEY,
order_date DATE,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
orders表包含一个外键customer_id,引用customers表中的customer_id列。- 外键约束确保只有在
customers表中存在的customer_id才能插入到orders表中。
示例 3:创建带有多个列约束的表
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
birth_date DATE CHECK (birth_date < CURRENT_DATE),
email VARCHAR(100) UNIQUE
);
student_id是主键,唯一标识每个学生。birth_date列要求日期小于当前日期。email列必须唯一,不能重复。
总结
CREATE TABLE 语句通过定义列的数据类型和约束来创建新的表。不同的数据类型和约束帮助确保表数据的完整性和规范性。
记录建表操作
create table comment(
id int unsigned not null auto_increment,
user_id int not null,
article_id int not null,
ipaddr varchar(255) collate utf8mb4_general_ci not null,
reply_id int default 0,
create_time datetime default CURRENT_TIMESTAMP,
update_time datetime default null on update CURRENT_TIMESTAMP,
primary key(id)
)engine=INNODB default charset=utf8
- auto_increment 自增
- utf8mb4_general_ci
- 使用 UTF-8 编码存储字符,支持多种语言和特殊字符(如表情符号)、
- 在进行字符串比较和排序时,不区分大小写和重音符号,简化了数据处理和查询
default 0默认值为0- CURRENT_TIMESTAMP 获取当前日期和时间的特殊值 格式为
YYYY-MM-DD HH:MM:SS - engine=INNODB default charset=utf8 表的存储引擎和字符集的配置选项
- limit 1 只返回结果集的第一行数据
- limit n 返回前n行

浙公网安备 33010602011771号