您的位置:

MySQL建表语句及完整案例详解

一、MySQL查询建表语句

在MySQL中查询已经建好的表语句很简单,只需要用到SHOW CREATE TABLE和表名的语法。具体语句如下:

SHOW CREATE TABLE table_name;

例如我们现在要查询一个名为“user_info”的表的建表语句,则语句为:

SHOW CREATE TABLE user_info;

执行以上语句,可以得到 “user_info”表的建表语句。当然,如果不喜欢在查询结果中出现反引号,可以使用以下语句:

SET sql_notes = 0;
SHOW CREATE TABLE table_name;
SET sql_notes = 1;

执行以上语句,即可隐藏所有表名外部的反引号。

二、MySQL建表的完整步骤

MySQL建表的完整步骤可以总结为以下几个关键点:

1. 选择好库名

在使用MySQL建表前,首先需要在命令行或者图形化界面上创建好库名。具体命令为:

CREATE DATABASE database_name;

2. 切换到选定的库名

使用以下命令切换到选定的库名:

USE database_name;

3. 设计表结构

在MYSQL中首先需要设计好表结构,在设计的过程中需要考虑表需要承载的数据类型,表的关联,表中字段之间的依赖等问题。表设计的好坏直接决定了数据的规范和管理实现的难度。

4. 创建表

在MYSQL中使用CREATE TABLE创建一个新表。语法格式如下:

CREATE TABLE table_name (
    column1 datatype contraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ....
     );

其中,table_name为所要创建的新表的名称;column1, column2, column3为表中的字段名称,datatype为数据类型,constraint为限制条件。

5. 添加表数据

在MYSQL中向表中添加数据,可以使用INSERT INTO语法。语法格式如下:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

其中,table_name为表名称,column1,column2,column3为表字段名称,value1,value2,value3为对应的字段值。

三、MySQL建表语句

MySQL建表语句的语法格式如下:

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ....
     );

其中,table_name为所要创建的新表的名称;column1, column2, column3为表中的字段名称,datatype为数据类型,constraint为限制条件。

例如,以下是一个创建“customer_info”表的例子,包含了3个字段,分别为“user_id”,“user_name”,“user_age”:

 CREATE TABLE customer_info (
    user_id INT PRIMARY KEY,
    user_name VARCHAR(255) NOT NULL,
    user_age INT 
);

执行以上语句,“customer_info”表将被成功创建。

四、MySQL建表语句日期

如果需要在MySQL建表语句中添加日期类型的字段,可以使用DATE, TIME, DATETIME, TIMESTAMP, YEAR等类型,其语法如下:

CREATE TABLE table_name (
    column_name DATE,
    column_name TIME,
    column_name DATETIME,
    column_name TIMESTAMP,
    column_name YEAR
);

例如,以下是一个创建“book_info”表的例子,包含了3个字段,分别为“book_id”,“book_name”,“book_publish_time”:

CREATE TABLE book_info (
    book_id INT PRIMARY KEY,
    book_name VARCHAR(255) NOT NULL,
    book_publish_time DATE
);

执行以上语句,“book_info”表将被成功创建,其中“book_publish_time”字段类型为DATE。

五、MySQL的建表语句

MySQL建表语句包含了数据类型和约束条件两个关键点。数据类型代表了字段的数据类型,包括INT, VARCHAR, DECIMAL等等。约束条件则用于限制字段的取值范围和规则,包括NOT NULL, PRIMARY KEY, UNIQUE, CHECK等。

例如,以下是一个创建一个包含了数据类型和约束条件的“order_info”表的例子,包含了5个字段,分别为“order_id”,“user_id”,“order_time”,“order_desc”,“order_price”:

CREATE TABLE order_info (
            order_id INT PRIMARY KEY,
            user_id INT NOT NULL,
            order_time DATETIME NOT NULL,
            order_desc VARCHAR(255),
            order_price DECIMAL(10, 2) NOT NULL,
            UNIQUE (user_id)
);

执行以上语句,“order_info”表将被成功创建,其中order_id字段类型为INT PRIMARY KEY,user_id字段类型为INT NOT NULL,order_time字段类型为DATETIME NOT NULL,order_desc字段类型为VARCHAR(255),order_price字段类型为DECIMAL(10, 2) NOT NULL,其中约束条件为UNIQUE (user_id)。

六、MySQL建库建表语句

MySQL建库建表语句是用于建立一整个数据库架构的方法,即不仅需要建表,还需要建立相关的表之间的关联和索引。

以下是一个统计用户购买行为的MySQL建库建表语句的例子:

CREATE DATABASE user_order;

USE user_order;

CREATE TABLE user (
    user_id INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
    user_name VARCHAR(255) NOT NULL COMMENT '用户昵称',
    email VARCHAR(255) NOT NULL COMMENT '用户邮箱',
    PRIMARY KEY (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表' ;

CREATE TABLE order (
    order_id INT(11) NOT NULL AUTO_INCREMENT COMMENT '订单ID',
    user_id INT(11) NOT NULL COMMENT '用户ID',
    product_id INT(11) NOT NULL COMMENT '商品ID',
    order_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '下单时间',
    order_status INT(11) NOT NULL DEFAULT '0' COMMENT '订单状态:0-未支付,1-已支付,2-已取消',
    PRIMARY KEY (order_id),
    KEY user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单信息表';

执行以上语句,则会在MySQL中创建一个名为“user_order”的数据库和两张对应的表——“user”和“order”。

七、MySQL建库建表例子

以下是一个类似于博客网站的例子,展示了如何在MySQL中建立多张表格,以存储博客的用户、文章和评论信息。具体内容如下:

CREATE DATABASE blog_system;

USE blog_system;
 
CREATE TABLE user (
    user_id INT PRIMARY KEY AUTO_INCREMENT,
    user_name VARCHAR(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';

CREATE TABLE article (
    article_id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    title VARCHAR(50) NOT NULL,
    content TEXT NOT NULL,
    publish_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX (user_id),
    CONSTRAINT article_user_fk FOREIGN KEY (user_id) REFERENCES user(user_id)
        ON DELETE CASCADE
        ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章信息表';

CREATE TABLE comment (
    comment_id INT PRIMARY KEY AUTO_INCREMENT,   
    user_id INT NOT NULL,
    article_id INT NOT NULL,
    content TEXT NOT NULL,
    comment_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT comment_article_fk FOREIGN KEY (article_id) REFERENCES article(article_id)
        ON DELETE CASCADE
        ON UPDATE CASCADE,
    CONSTRAINT comment_user_fk FOREIGN KEY (user_id) REFERENCES user(user_id)
        ON DELETE CASCADE
        ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章评论表';

执行以上语句,则在MySQL中成功创建了一个“blog_system”数据库和三张对应的表——“user”、“article”和“comment”。

八、MySQL建表语句加注释

在MySQL中,添加注释可以使代码更加易读,方便其他人理解。常用的添加注释的的方法有以下两种:

1. 添加注释到表格中

在MySQL建表语句中向表格中添加注释十分简单,只需要在列名和数据类型之间添加注释即可。例如:

CREATE TABLE blog_info (
    blog_id INT(11) PRIMARY KEY COMMENT '博客ID',
    blog_title VARCHAR(50) NOT NULL COMMENT '博客标题',
    blog_content TEXT COMMENT '博客内容'
) ENGINE=InnoDB CHARSET=utf8 COMMENT='博客信息表';

2. 添加注释到字段中

在MySQL建表语句中向字段中添加注释,只需要在数据类型和约束条件之间添加注释就可以了。例如:

CREATE TABLE payment (
  payment_id INT(11) NOT NULL COMMENT '订单ID',
  payment_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '支付时间',
  amount DECIMAL(10,2) NOT NULL COMMENT '支付金额',
  PRIMARY KEY (payment_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付信息记录表';

以上语句为建立一个“payment”表,其中“payment_id”字段有注释“订单ID”,“payment_date”字段有注释“支付时间”,“amount”字段有注释“支付金额”。

九、MySQL建表语句主键

在MySQL的建表语句中,主键是非常重要的。主键用于保证表中记录的唯一性,并且可用于优化表格的性能。

以下是一张包含了主键的“order_info”表的MySQL建表语句的例子:

CREATE TABLE order_info (
    order_id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    order_time DATETIME NOT NULL,
    order_status INT NOT NULL DEFAULT '0',
    UNIQUE KEY unique_user_order (user_id,order_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单信息表';

执行以上语句,则会在MySQL中创建一个名为“order_info”的表格,其中包含了“order_id”字段作为主键。另外,在该表格中还添加了一个包含了“user_id”和“order_id”的联合唯一索引。