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)
相关推荐
海南java第二人6 小时前
Nebula Graph 实战:基于图数据库存储 CMDB 实体关系
数据库·图数据库·nebula
曹牧7 小时前
oracle:“not all variables bound”
数据库·oracle
数据库百宝箱7 小时前
Oracle RMAN Image Copy 本地恢复
数据库·oracle
zuYM4g7Dp8 小时前
NoSql数据库设计心得
数据库·nosql
bjzhang759 小时前
CentOS下安装MySQL详解
linux·mysql·centos
睡不醒男孩03082310 小时前
第七篇:揭秘 PostgreSQL 数据库内核级管控:CLup 深度架构设计与高可用底座技术白皮书
数据库·postgresql·clup
cmes_love11 小时前
Level 2逐笔成交历史数据下载方法笔记
数据库·笔记·oracle
swordbob11 小时前
MySQL字符集陷阱:从Oracle迁移踩坑到utf8mb4强制规范
数据库·sql
牛油果子哥q11 小时前
【C++ STL string 】C++ STL string 终极精讲:底层原理、内存机制、全套API、深浅拷贝、易错坑点与工程实战规范
数据库·c++
十五年专注C++开发11 小时前
MySql中各种功能用sql语句实现总结
数据库·sql·mysql