MySQL表的创建实验

创建并使用数据库mydb6_product 。

sql 复制代码
mysql> create database mydb6_product;
Query OK, 1 row affected (0.01 sec)

mysql> use mydb6_product;
Database changed

新建employees表。 对于gender,有默认值意味着不为空,在建表时可以选择不写not null;

sql 复制代码
mysql> create table employees(
    -> id int primary key,
    -> name varchar(50) not null,
    -> age int,
    -> gender varchar(10) default 'unknown',
    -> salary float);
Query OK, 0 rows affected (0.03 sec)

mysql> desc employees;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int         | NO   | PRI | NULL    |       |
| name   | varchar(50) | NO   |     | NULL    |       |
| age    | int         | YES  |     | NULL    |       |
| gender | varchar(10) | YES  |     | unknown |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

新建orders表。

sql 复制代码
mysql> create table orders(
    -> id int primary key,
    -> name varchar(100) not null,
    -> price float,
    -> quantity int,
    -> category varchar(50));
Query OK, 0 rows affected (0.02 sec)

mysql> desc orders;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | int          | NO   | PRI | NULL    |       |
| name     | varchar(100) | NO   |     | NULL    |       |
| price    | float        | YES  |     | NULL    |       |
| quantity | int          | YES  |     | NULL    |       |
| category | varchar(50)  | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

新建invoices表。

auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。

外键约束主要定义在从表上,主表则必须是有主键约束或唯一键约束.当定义外键后**,**要求外键列数据必须在主表的主键列存在或为null。格式为foreign key (从表的字段名称) references 主表名字(主表的字段名称)

sql 复制代码
mysql> create table invoices(
    -> number int primary key auto_increment,
    -> order_id int,
    -> in_date date,
    -> total_amount float check(total_amount>0),
    -> foreign key(order_id) references orders(id));
Query OK, 0 rows affected (0.03 sec)

mysql> desc invoices;
+--------------+-------+------+-----+---------+----------------+
| Field        | Type  | Null | Key | Default | Extra          |
+--------------+-------+------+-----+---------+----------------+
| number       | int   | NO   | PRI | NULL    | auto_increment |
| order_id     | int   | YES  | MUL | NULL    |                |
| in_date      | date  | YES  |     | NULL    |                |
| total_amount | float | YES  |     | NULL    |                |
+--------------+-------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
相关推荐
金州饿霸17 分钟前
Flink链接Kafka
数据库·flink·kafka
dengjiayue22 分钟前
MySQL 与 Redis 数据一致性 2
数据库·redis·mysql
TU不秃头31 分钟前
SQL面试题1:连续登陆问题
数据库·sql
qw9492 小时前
MySQL(高级特性篇) 07 章——InnoDB数据存储结构
数据库·mysql
weisian1512 小时前
Mysql--实战篇--SQL优化(查询优化器,常用的SQL优化方法,执行计划EXPLAIN,Mysql性能调优,慢日志开启和分析等)
sql·mysql
oioihoii2 小时前
《C++11》深入剖析正则表达式库:解锁文本处理的高效之道
c++·mysql·正则表达式
kcarly2 小时前
初步认识 Neo4j 图数据库
数据库·neo4j
宁静@星空4 小时前
006-excel数据输出insert语句
数据库·mysql·excel
七禾页话4 小时前
数据库基础知识总结
数据库