上一章的内容
练习!上一章表的内容!!!熟能生巧
先重新创建一个数据库
命令create database supermarket;
然后查看数据库、再切换到当前数据库。
查看数据库 : show databases;
切换到当前数据库: use supermarket;
创建员工表命令
create table 员工表(员工ID char(6) primary key not null,姓名 varchar(8) not null,性别 char(1) not null,出生日期 date not null,部门 varchar(20) not null,工作时间 date not null,个人简历 varchar(200) null);
创建完成之后我们通过命令show tables
查看所有表。
这里显示员工表已经创建好了,我们再使用命令describe 员工表;
,查看表的结构
可以看到,这表已经按照我们输入的内容要求创建, 员工ID为主键,其他字段格式也同样进行了设置。
上面这命令:describe 员工表
还可以优化一下成这条命令:desc tables;
一样的效果。
接下来就是用Navicat的界面来创建我们的表
1.选中我们的数据库,点开表,在右边可以看到新建表
2.点击之后会跳转到新建表页面
我们就按照上面的员工表来进行创建,
点击保存
不要重复表的名字即可
再输入我们的查看表结构的命令:desc 员工表2;
发现结构一模一样,正确
mysql主键和外键的区别,看不懂的先点这里看这遍文章
商品一览表
题目:使用语句创建“商品一览表”,并定义唯一约束,且在全部字段定义后设置主键约束。
后面我就不演示用界面操作的过程了。全部用sql命令演示。
create table 商品一栏表(货号 char(4) NOT NULL,货名 varchar(16) UNIQUE NOT NULL, //注释 唯一约束规格 varchar(8) NOT NULL,单位 char(1) NOT NULL,平均进价 decimal(8,2) NOT NULL,参考价格 decimal(8,2) NULL,库存量 tinyint(4) NULL,PRIMARY KEY (货号) //注释 主键约束);
销售表
在使用语句创建“销售表”,并定义相应的主键约束和外键约束。
命令
CREATE TABLE 销售记录 (序列号 tinyint(4) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, \\注释 无符号,非空,主键,自增长, UNSIGNED表示该字段值只能是非负数销售日期 DATE DEFAULT NULL,客户姓名 varchar(30) DEFAULT NULL,货号 char(4) DEFAULT NULL,单价 decimal(8,2) DEFAULT NULL, //注释 定义十进制数字列,总长度8位,小数点后2位数量 int(4) DEFAULT NULL,销售员ID char(6) DEFAULT NULL,FOREIGN KEY (货号) REFERENCES 商品一栏表(货号),FOREIGN KEY (销售员ID) REFERENCES 员工表(员工ID) //注释 foreign key 定义外键约束,引用了其他表的主键作为本表的某个字段参照,确保数据的一致性和完整性。这里分别引用了商品一栏表的货号字段和员工表的员工ID字段
);
供货商表
DEFAULT NULL,如果插入一行新记录时没有为这些字段提供值,则它们将被默认设置为NULL。
命令
create table 供货商(供货商ID varchar(10) not null primary key,供货商名称 varchar(30) not null unique,厂家 varchar(40),账户 char(15),联系人 varchar(8));
进货表
命令
create table 进货表(序号 tinyint(4) unsigned not null primary key auto_increment, 销售日期 date,客户名称 varchar(30),货号 char(4),单价 decimal(8,2), 数量 int(4),销售员ID char(6),foreign key(货号) references 商品一览表(货号),foreign key(销售员ID) references 员工表(员工ID) );
到此为止我们表的练习已经算入门了,建议多练几次