#Mysql基本知识
运行环境Ubuntu20.04
1.开启mysql服务
sytemctl start mysql
不然,命令行进入myql交互行提交命令后,就会出现4200错误。
2.显示所有数据库
SHOW DATABASES;
注意复数s,毕竟很多数据库
3.新建数据库test
CREATE DATABASE test;
注意分号。
4.在数据库中建立表格students,并且初始化
->CREATE TABLE students(
-> id bigint(20) NOT NULL AUTO_INCREMENT,
-> class_id bigint(20) NOT NULL,
-> name varchar(100) NOT NULL,
-> gender varchar(1) NOT NULL,
-> score int(11) NOT NULL,
-> PRIMARY KEY(id)
-> );
注意分号。指定了主键为id。
5展示表students的结构
DESC students;
如下:
其中:
Null:代表是否该允许字段(field)为空
Default: 全称"默认值约束(Default Constraint),是指在不输入的情况下,系统自动填入的值。
6.如果要给students表新增一列birth,使用:
ALTER TABLE students ADD COLUMN birth VARCHAR(10) NOT NULL;
7.要修改birth列,例如把列名改为birthday,类型改VARCHAR(20):
ALTER TABLE students CHANGE COLUMN birth birthday VARCHAR(20) NOT NULL;
8.要删除列,使用:
ALTER TABLE students DROP COLUMN birthday;
9.删除表使用DROP TABLE语句:
DROP TABLE students;
10.删除数据库test。
DROP DATABASE test;
哈人命令,形同rm -rf。
注意此时就在test库里面,仍然可以执行,删除本身,这是不同的地方。
#关于外键的知识
1.外键的名称可以任意
2.外键的指定依赖于两张表内的已有的字段
3.设定外键的表,被另外的表制约。
4.通过外键定义的几种关系,
一对一
一对多:
用部门信息和职员信息举例:
如果外键设置在部门信息中,那么部门信息就要依赖职员信息,也就是说每个部门至少要有一个职员
如果外键设置在员工信息中,那么员工信息依赖部门,也就是说每个职员至少要有一个部门。
考虑到有些公司可能会新建部门,但是暂时没有任何员工入职;也可能新入职的员工没有进入任何部门,因此需要根据实际情况,具体设置约束。
一般情况下,我们会要求每个部门至少有一个员工,因此将外键设置在部门信息中(多的一方)比较合适。每个职员也确实不一定非要入职一个具体的部门(实习生)。
多对多
ref:
https://www.liaoxuefeng.com/wiki/1177760294764384/1246617774585536