mysql表的操作

引擎介绍

表介绍

表就相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段

还记得我们之前写过的‘员工信息表作业’么?存储这员工信息的文件是这样的:

id,name,age,sex,phone,job
1,Alex,83,female,13651054608,IT
2,Egon,26,male,13304320533,Tearcher
3,nezha,25,male,13332353222,IT
4,boss_jin,40,male,13332353333,IT

如果把上面这个文件改成一张表,应该是下面这个样子
id   name   age   sex   phone   job  
1 Alex 83 female 13651054608 IT
2 Egon 26 male 13304320533 Teacher
3 nezha 25 male 13332353222 IT
4 boss_jin 40 male 13332353333 IT

id,name,age,sex,phone,job称为字段,其余的,一行内容称为一条记录

语法:

create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);

注意:

  1. 在同一张表中,字段名是不能相同
  2. 宽度和约束条件可选
  3. 字段名和类型是必须的

建表
插入数据
查看表结构

查看表结构有两种方式:

describe [tablename];这种方法和desc [tablename];效果相同;可以查看当前的表结构

虽然desc命令可以查看表的定义,但是其输出的信息还不够全面,为了得到更全面的表定义信息,有时候就需要查看创建表的SQL语句,使用show create table语法。除了可以看到表定义之外,还可以看到engine(存储引擎)和charset(字符集)等信息。(G选项的含义是是的记录能够竖向排列,以便更好的显示内容较长的记录。)
desc和show create table
返回顶部
mysql中的数据类型

mysql支持的数据类型(https://www.cnblogs.com/Eva-J/articles/9683316.html)
返回顶部
表的完整性约束

mysql表的完整性约束(https://www.cnblogs.com/Eva-J/articles/9687915.html)

语法:

  1. 修改表名
    ALTER TABLE 表名
    RENAME 新表名;

  2. 增加字段
    ALTER TABLE 表名
    ADD 字段名 数据类型 [完整性约束条件…],
    ADD 字段名 数据类型 [完整性约束条件…];

  3. 删除字段
    ALTER TABLE 表名
    DROP 字段名;

  4. 修改字段
    ALTER TABLE 表名
    MODIFY 字段名 数据类型 [完整性约束条件…];
    ALTER TABLE 表名
    CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
    ALTER TABLE 表名
    CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

5.修改字段排列顺序/在增加的时候指定字段位置
ALTER TABLE 表名
ADD 字段名 数据类型 [完整性约束条件…] FIRST;
ALTER TABLE 表名
ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
ALTER TABLE 表名
CHANGE 字段名 旧字段名 新字段名 新数据类型 [完整性约束条件…] FIRST;
ALTER TABLE 表名
MODIFY 字段名 数据类型 [完整性约束条件…] AFTER 字段名;

alter操作非空和唯一(了解)
alter操作主键(了解)
为表添加外键(了解)

DROP TABLE 表名;

返回顶部
多表结构的创建与分析
如何找出两张表之间的关系

分析步骤:

1、先站在左表的角度去找

是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id)

2、再站在右表的角度去找

是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id)

3、总结:

多对一:

如果只有步骤1成立,则是左表多对一右表
如果只有步骤2成立,则是右表多对一左表

多对多

如果步骤1和2同时成立,则证明这两张表时一个双向的多对一,即多对多,需要定义一个这两张表的关系表来专门存放二者的关系

一对一:

如果1和2都不成立,而是左表的一条记录唯一对应右表的一条记录,反之亦然。这种情况很简单,就是在左表foreign key右表的基础上,将左表的外键字段设置成unique即可

建立表之间的关系

一对多或称为多对一

三张表:出版社,作者信息,书

一对多(或多对一):一个出版社可以出版多本书

关联方式:foreign key

多对多

三张表:出版社,作者信息,书

多对多:一个作者可以写多本书,一本书也可以有多个作者,双向的一对多,即多对多
  
关联方式:foreign key+一张新的表

一对一

两张表:学生表和客户表

一对一:一个学生是一个客户

关联方式:foreign key+unique

原文地址:https://www.cnblogs.com/lyoko1996/p/11233951.html