ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql数据库表结构与表约束

2021-05-26 17:01:30  阅读:187  来源: 互联网

标签:与表 sudty name 数据库 alter 添加 mysql table 主键


表结构操作:

  添加单列: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数据库,外键约束和表关系

 

  

 

标签:与表,sudty,name,数据库,alter,添加,mysql,table,主键
来源: https://blog.51cto.com/u_15228753/2818116

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有