MySQL基本操作之创建数据表

创建数据库

  1. 创建数据库
mysql> create database test_db;
  1. 查看所有数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| test_db            |
| world              |
+--------------------+
7 rows in set (0.00 sec)
  1. 查看创建的数据库的状态
mysql> show create database test_db\g
+----------+------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                |
+----------+------------------------------------------------------------------------------------------------+
| test_db  | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ |
+----------+------------------------------------------------------------------------------------------------+
  1. 选择创建表的数据库
mysql> use test_db;
Database changed
  1. 创建tb_emp1 表
mysql> create table tb_emp1(
    -> id INT(11),
    -> name VARCHAR(25),
    -> deptID INT(11),
    -> salary FLOAT);
Query OK, 0 rows affected (0.19 sec)
  1. 查看表格
mysql> show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| tb_emp1           |
+-------------------+
1 row in set (0.00 sec)

使用主键约束

主键,又称主码,是表中一列或多列的组合,主键约束要求主键列的数据唯一,并且不能为空。主键能唯一的标识表中的一条记录,可以结合外键来定义不同表之间的关系。

  1. 单子段主键:在定义列的同时指定主键。
    语法规则如下:字段名 数据类型 PRIMARY KEY (默认值)
mysql> create table tb_emp2(
    -> id INT(11) primary key,
    -> name varchar(25),
    -> deptID INT(11),
    -> salary float,
    -> birth varchar(20));
Query OK, 0 rows affected (0.16 sec)
  1. 多字段联合主键:主键由多个字段联合组成
    语法规则如下:字段名 数据类型 (PRIMARYKEY字段1,字段2,...,字段n)
mysql> create table tb_emp0
    -> (
    -> id       int(11),
    -> name     varchar(25),
    -> deptId   int(11),
    -> salary   float,
    -> primary key (id, name)
    -> );
Query OK, 0 rows affected (0.22 sec)

使用外键约束

外键用来在两个表之间建立连接,外键可以为空,若不为空,则必须要等于另一个表中的主键的某个值,外键是表中的一个字段,虽可以不是主键,但是要对应另一个表的一个主键,定义外键后,不能随意删除在另一个表中有关联的行

主表(父表):对于两个具有关联关系的表而言,相关联字段主键所在的那个表为主表。
从表(子表):对于两个具有关联关系的表而言,相关联字段外键所在的那个表为从表。

语法规则如下:CONSTRAINT 外键约束名 FOREIGN KEY(外键名称) EREFERENCES 依赖的表名(主键名)

mysql> create table tb_emp5
    -> (
    -> id INT(11) primary key,
    -> name varchar(25),
    -> deptId int(11),
    -> salary float,
    -> constraint fk_emp_dept1 foreign key(deptId) references tb_dept1(id)
    -> );
Query OK, 0 rows affected (0.15 s

语句执行后在表tb_emp5上添加了名称为fk_emp_dept1的外键约束,外键名称为deptId,其依赖于表tb_dept1的主键id。

使用非空约束

非空约束就是指字段的值不能为空,否则会报错。

非空约束的语法规则:字段名 数据类型 not null

例子:

mysql> create table tb_emp6
    -> (
    -> id INT(11) primary key,
    -> name varchar(25) not null,
    -> deptId Int(11),
    -> salary float
    -> );
Query OK, 0 rows affected (0.16 sec)

使用唯一性约束

唯一性约束,要求该列唯一,允许为空,但不能重复。
语法规则如下:字段名 数据类型 UNIQUE

例子:

mysql> create table tb_dept2
    -> (
    -> id int(11) primary key,
    -> name varchar(22) unique,
    -> location varchar(50)
    -> );
Query OK, 0 rows affected (0.20 sec)

默认约束

默认约束就是指定某列的默认值
语法规则如下:字段名 数据类型 DEFAULT 默认值

mysql> create table tb_emp7
    -> (
    -> id       int(11)         primary key,
    -> name     varchar(25)     not null,
    -> deptId   int(11)         default 1111,
    -> salary   float
    -> );
Query OK, 0 rows affected (0.19 sec)

设置表的属性自动增加

通过为表主键添加关键AUTO_INCREMENT,并且它只能为主键的一部分。
语法规则:字段名 数据类型 AUTO_INCREMENT

例子:

mysql> create table tb_emp8
    -> (
    -> id       int(11)         primary key     auto_increment,
    -> name     varchar(25)     not null,
    -> deptId   int(11),
    -> salary   float
    -> );
Query OK, 0 rows affected (0.08 sec)

猜你喜欢

转载自blog.csdn.net/A_easy_learner/article/details/114981371