表介绍:

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

创建表:

#语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
); #注意:
1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的

查看表结构:

查看表结构有两种方式:

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

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

mysql> show create table staff_info\G;
*************************** 1. row ***************************
Table: staff_info
Create Table: CREATE TABLE `staff_info` (
`id` int(11) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int(3) DEFAULT NULL,
`sex` enum('male','female') DEFAULT NULL,
`phone` bigint(11) DEFAULT NULL,
`job` varchar(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.01 sec)

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操作非空和唯一(了解)

create table t(id int unique,name char(10) not null);

#去掉null约束
alter table t modify name char(10) null;
# 添加null约束
alter table t modify name char(10) not null; # 去掉unique约束
alter table t drop index id;
# 添加unique约束
alter table t modify id int unique; alter处理null和unique约束

alter操作主键(了解)

1、首先创建一个数据表table_test:
create table table_test(
`id` varchar(100) NOT NULL,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`name`)
);
2、如果发现主键设置错了,应该是id是主键,但如今表里已经有好多数据了,不能删除表再重建了,仅仅能在这基础上改动表结构。
先删除主键
alter table table_test drop primary key;
然后再增加主键
alter table table_test add primary key(id);
注:在增加主键之前,必须先把反复的id删除掉。

删除表

DROP TABLE 表名;

多表结构的创建与分析

如何找出两张表之间的关系 

分析步骤:
#1、先站在左表的角度去找
是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2、再站在右表的角度去找
是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id) #3、总结:
#多对一:
如果只有步骤1成立,则是左表多对一右表
如果只有步骤2成立,则是右表多对一左表 #多对多
如果步骤1和2同时成立,则证明这两张表时一个双向的多对一,即多对多,需要定义一个这两张表的关系表来专门存放二者的关系 #一对一:
如果1和2都不成立,而是左表的一条记录唯一对应右表的一条记录,反之亦然。这种情况很简单,就是在左表foreign key右表的基础上,将左表的外键字段设置成unique即可

最新文章

  1. 固定在网页顶部跟随滚动条滑动而滑动的DIV层
  2. Python-2 print
  3. 关于前端build工具
  4. Jaxb 解析 带有继承关系的bean与xml
  5. VBS 相关知识 笔记
  6. OpenLDAP与phpldapadmin的搭建
  7. Interview----将一棵二叉树转换成其镜像
  8. System.out.println调试输出
  9. python sleep
  10. Google Chrome浏览器调试功能介绍
  11. Spring多资源文件properties的配置
  12. Inventory > INV.MTL_MATERIAL_TRANSACTIONS Show Error Msg: ORA-20100: File lxxx.tmp creation for FND_FILE failed.
  13. LeetCode——Remove Duplicates from Sorted Array
  14. PHP内置函数getimagesize()的漏洞
  15. css精灵(css script 技术)
  16. angular实现的按钮提示
  17. PHP基础入门(四)---PHP数组实用基础知识
  18. GIT入门笔记(15)- 链接到私有GitLab仓库
  19. [android] 保存联系人到系统通讯录
  20. CentOS内网机器利用iptables共享公网IP上网

热门文章

  1. 第14周 预习、实验与作业:Java数据库编程
  2. R语言码农的Scala学习心得
  3. centos 服务器配置网络ifconfig位置
  4. 远程CG动画制作的神器:RayLink远程控制软件
  5. jQuary学习(一)
  6. h5项目
  7. 33. Java对异常处理的两种方式
  8. 维纳攻击 wiener attack
  9. mybatis核心配置文件—mappers标签设置映射文件
  10. window.open在打开pdf时直接下载而不是查看