mysql数据库表结构与表约束
表结构操作:
添加单列:alter table tb_name add [column] col_name
添加一列: alter table `sudty` add `aaa` int;

添加多列:

指定添加在哪:默认添加在最后一列,用after+col_name可以添加在某一列之后
使用first可以添加第一列。
alter table `sudty` add `bbb` int after `name`;在sudty这个表的name后添加一列bbb。

alter table `sudty` add `科目` int first;

删除列:alter table sudty drop bbb;
删除多列:alter table sudty drop aaa,drop scx;
修改表:

修改age的数据类型:
alter table sudty modify `age` varchar(20);
修改age的列名为年龄:
alter table sudty change `age` `年龄` varchar(20);
修改表名sudty为school:
alter table sudty rename to school;
非空约束:not null
建表时约束:

建表后约束:


此时,id和name的Null值都变为NO了。有非空约束的列,传值进去的时候就必须传它。
唯一约束:
确保字段中的值的唯一: unique key
同not null一样,它可以在建表的时候:

删除唯一约束:

添加唯一约束:现在给tb 添加一列`name`,让后添加一个联合唯一:

此时,联合唯一的key名是id,所以删除只需要写:alter table tb drop key id;
insert into tb (id,name) values(1,'王五'),(2,'王五'); 注意两个联合起来才唯一,
即只要id和name不是两个同时相同就可以。

主键约束:
主键保证记录的唯一性, 唯一标识每一条数据主键自动为NOT NULL;每张数据表只能存在
一个主键not null+unique key,一个unique key 又是一个not null的时候,那么它被当做primary
key主键当一张表里没有一个主键的时候,第一个出现的非空且为唯一的列被视为有主键。
自然可以在建表的时候添加主键约束,下面讨论给表tb的id添加主键约束:

删除主键:

添加联合主键:任然只有一个主键(虽然有两个PRI)

删除联合主键和正常删除主键是一样的操作。
自增长AUTO_INCREMENT
自动编号,一般与主键组合使用。一个表里面只有一个自增默认情况下,起始值为1,
每次的增量为1。当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则
会出现两种情况。
情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为数据列的值必须
是唯一的;
情况二,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编
号将从这个新值开始递增。也就是说,可以跳过一些编号。如果自增序列的最大值被删除
了,则在插入新记录时,该值被重用。(可以调大,不可以缩小)如果插入的值小于现有
的值且不重复,则会成功,但是下一个数据过来还是默认从最大的值开始增长。



默认约束:default
初始值设置,插入记录时,如果没有明确为字段赋值,则自动赋予默认值。

插入值:

此时表的详情:

删除default:


添加默认default
方法一:

方法二:

mysql数据库表结构与表约束的更多相关文章
- 用户中心mysql数据库表结构的脚本
/* Navicat MySQL Data Transfer Source Server : rm-m5e3xn7k26i026e75o.mysql.rds.aliyuncs.com Source S ...
- mysql数据库表结构导出
mysql数据库表结构导出 命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 导出整个数据库结构和数据 mysqldump -h localh ...
- 比较两个mysql数据库表结构的差异
需求来源:一个线上系统,一个开发系统,现在要把开发系统更新到线上,但是开发系统的数据库结构与线上的略有差异,所以需要找出两个数据库的表结构差异. 数据库表结构的差异 注:操作均在Linux系统下完成 ...
- 一个漂亮的输出MySql数据库表结构的PHP页面
经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作. 这 ...
- centos/windows服务器,Mysql数据库表结构损坏-已解决
[问题原因]服务器突然断电 [故障报告]数据库表结构损坏 [解决思路]进入强制恢复模式,备份库表及数据重建 故障发现 周末公司断电,周一启动数据库就直接报错了 查看日志 上面标记的log,明确表示是非 ...
- PHP快速获取MySQL数据库表结构
直接举例某个数据库中只有两个数据表,一个 test ,一个 xfp_keywords ,获取他们的数据库表结构. 此功能可以用于开发人员快速获取数据表结构通过获取的数据生成各种文件形式,用来快速理解数 ...
- PowerDesigner逆向生成MYSQL数据库表结构总结
由于日常数据建模经常使用PowerDesigner,使用逆向工程能更加快速的生成模型提高效率,所以总结使用如下: 1. 安装MYSQL的ODBC驱动 Connector/ODBC 5.1.1 ...
- 反向读取Mysql数据库表结构到PowerDesigner中
使用PowerDesigner挺长时间了,只是一些简单的表结构设计,因需要对当前数据库进行再设计,需要看一下数据库中所有的表,及表之间的关系,并重新修改表结构,因此需求就是怎么把数据库中的表结构反向生 ...
- powerDesigner如何动态显示mysql数据库表结构
原文链接:http://jingyan.baidu.com/article/e5c39bf5d64efa39d760333c.html 有时候,由于数据库中的表太多,主外键关系复杂,对数据库的非设计人 ...
随机推荐
- 快收藏!高手Linux运维管理必备工具大全,你会吗?
一.统一账号管理 1.LDAP 统一管理各种平台帐号和密码,包括但不限于各种操作系统(Windows.Linux),Linux系统sudo集成,系统用户分组,主机登入限制等:可与Apache,HTTP ...
- 数据的随机抽取 及 jQuery补充效果(菜单、移动)
一.数据的随机抽取 都见过那种考试题从很多题中随机抽取几道的试卷吧,现在就要做这样的一个例子:从数据库中随机抽取几条数据出来显示(例如:一百中随机挑选50条) 随机挑选是要有提交数据的,所以肯定是要有 ...
- JSON Schema 校验实例
JSON Schema 简介 JSON Schema is a vocabulary that allows you to annotate and validate JSON documents. ...
- java.lang基础数据类型boolean、char、byte、short、int、long、float、double (JDK1.8)
java.lang.Boolean public static int hashCode(boolean value) { return value ? 1231 : 1237; } JDK 1.8新 ...
- JavaWeb之数据源连接池(3)---Tomcat
此文续 <JavaWeb之数据源连接池(2)---C3P0>. Apache Tomcat作为一款JavaWeb服务器,内置了DBCP数据源连接池.在使用中,只要进行相应配置即可. 首先, ...
- http性能测试工具wrk源码学习之开篇
1.前言 最近工作需要测试nginx反向代理的性能,于是找了一些http测试工具,例如经典的Apache的ab.siege.wrk.wrk使用多线程事件驱动方式,支持lua脚本扩展.关于wrk介绍可以 ...
- CentOS7.4 chrony时间同步服务器部署(替代NTPD)
Chrony是一个开源的自由软件,它能保持系统时钟与时钟服务器(NTP)同步,让时间保持精确. 它由两个程序组成:chronyd和chronyc. chronyd是一个后台运行的守护进程,用于调整内核 ...
- Docker(二):Docker镜像使用
1.Docker Image介绍 简单来说,Docker Image是用来启动容器的只读模板. Docker Image被划分了三个部分:Remote-dockerhub.com/namespace/ ...
- Geode集群搭建
Geode集群搭建 1.下载安装包 http://mirror.bit.edu.cn/apache/geode/1.2.0/ 2.安装解压后即可直接使用 apache-geode-1.2.0 3.进入 ...
- MySQL5.6中date和string的转换和比较
Conversion & Comparison, involving strings and dates in MySQL 5.6 我们有张表,表中有一个字段dpt_date,SQL类型为da ...