MySQL 建表命令

本文详细介绍了使用SQL语句创建数据库、表格以及插入初始数据的过程。涵盖了创建数据库、部门表、雇员表和雇员简介表的具体操作,适用于初学者理解和实践数据库的基本构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

create database `company1` default character set utf8 collate utf8_general_ci;
#drop database `company1`;
use `company1`;
# mysqldump -uroot company1 >D:\company1.bak #备份 (-p password)
# mysql -uroot company1 < D:\company1.bak #还原 (-p password)
#==============================================================
drop table if exists `departments`;
CREATE TABLE `departments` (
    `id` SERIAL PRIMARY KEY,
    `name` NVARCHAR(10) COMMENT '部门名称',
    `deleted` BOOLEAN DEFAULT 0
)  ENGINE=INNODB COMMENT='部门表';
insert into `departments`(`name`) values
('人事部'),('开发部');
#==============================================================
drop table if exists `employees`;
CREATE TABLE `employees` (
    `id` SERIAL PRIMARY KEY,
    `department_id` BIGINT UNSIGNED COMMENT '部门ID',
    `deleted` BOOLEAN DEFAULT 0
)  ENGINE=INNODB COMMENT='雇员表';
insert into `employees`(`department_id`) values
(1),(1),(2),(2);
#==============================================================
drop table if exists `profiles`;
CREATE TABLE `profiles` (
    `employee_id` BIGINT UNSIGNED UNIQUE NOT NULL,
    `name` NVARCHAR(6) COMMENT '名字',
    `gender` BOOLEAN COMMENT '性别',
    `age` TINYINT UNSIGNED COMMENT '年龄'
)  ENGINE=INNODB COMMENT='雇员简介表';
insert into `profiles`(`employee_id`,`name`,`gender`,`age`) values
(1,'甲',1,29),(2,'乙',0,21),(3,'丙',1,24),(4,'丁',0,32);
### MySQL 创建命令语法与示例 在 MySQL 中,创建的基本语法如下: ```sql CREATE TABLE table_name ( column1_name data_type constraints, column2_name data_type constraints, ... PRIMARY KEY (column_name), FOREIGN KEY (column_name) REFERENCES parent_table(column_name) ); ``` 此语法中,`table_name` 是新的名称,`column1_name`, `column2_name` 等是中的列名,`data_type` 指定每列的数据类型,`constraints` 用于定义约束条件(如 NOT NULL、UNIQUE、PRIMARY KEY 等)[^1]。 #### 示例:创建一个学生信息 以下是一个具体的例子,展示如何使用 MySQL 命令创建一个名为 `students` 的,包含学生的学号、姓名、年龄和性别字段。 ```sql CREATE TABLE students ( student_id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT, gender ENUM('M', 'F'), PRIMARY KEY (student_id) ); ``` 在这个示例中: - `student_id` 是一个整数类型的主键,并启用了自动递增功能。 - `name` 是一个最大长度为 50 的字符串,且不能为空。 - `age` 是一个整数类型,示学生的年龄。 - `gender` 使用了枚举类型,允许值为 'M'(男性)或 'F'(女性)[^1]。 #### 示例:创建带外键约束的 假设需要创建一个课程 `courses` 和一个选课 `enrollments`,其中 `enrollments` 通过外键关联到 `students` 。 ```sql CREATE TABLE courses ( course_id INT NOT NULL AUTO_INCREMENT, course_name VARCHAR(100) NOT NULL, PRIMARY KEY (course_id) ); CREATE TABLE enrollments ( enrollment_id INT NOT NULL AUTO_INCREMENT, student_id INT NOT NULL, course_id INT NOT NULL, PRIMARY KEY (enrollment_id), FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (course_id) REFERENCES courses(course_id) ); ``` 上述代码中,`enrollments` 通过 `student_id` 和 `course_id` 分别引用了 `students` 和 `courses` 中的主键[^1]。 #### 注意事项 在创建时,可以同时添加索引以优化查询性能。例如,为 `students` 的 `name` 列创建一个普通索引: ```sql CREATE INDEX idx_name ON students(name); ``` 或者使用 `ALTER TABLE` 语句为现有添加索引[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值