当前位置: 首页 > news >正文

mysql中的列属性

一、NULL

  定义方式:NULL(默认)  NOT NULL

 

二、comment

  用来描述字段,会根据创建语句保存,可用show create table 表名; 查看

  create table my_tab(

    str varchar(10) not null comment '字符串',

    num int unsigned not null comment '数字'

  );

三、default

  用来设置默认值。

  create table my_tab(

    str varchar(10) not null,

    num int unsigned default 10;  --  默认值为10

  );

  使用方法:

  insert into my_tab (str) values ('abc');  -- num会自动设为10

  insert into my_tab values ('abc', default);  -- 用默认值插入num字段

 

四、primary key  -- 主键

  1. 主键特点

    ① 唯一性,一张表只能有一个字段设为主键

    ② 主键不允许为NULL

  2. 增加主键方式

    ① 在创建表时,在字段后面跟关键字primary key设置

      create table my_tab(

        id int primary key,

        name varchar(10)

      )charset utf8;

    ② 在创建表时,在所有字段后使用primary key(字段列表)设置复合主键

       create table my_tab2(

         id int,

         number int,

         name varchar(10),

         primary key(id, number, ...)

       )charset utf8;

    ③ 在已创建好的表中追加主键

       alter table my_tab3 modify id int primary key;

       alter table my_tab3 add primary key(id, ...);

  3. 主键更新与删除

    主键无法更新,若想更新主键,只能删除后重新添加。

    alter table my_tab3 drop primary key;

 

五、auto_increment  --  自动增长

   1. 自动增长通常与主键搭配使用, 字段设置自动增长后,不给值,或给默认值或NULL的时候,会自动触发,

     如果给了值,则当前自增失效,从下一次开始以当前最大值开始自增。

     设置为自增长的字段必须是一个索引,且必须是一个整型类型,一张表只能有一个字段被设为auto_increment.

   2. 使用方式,在字段后面跟auto_increment关键字

     create table my_tab4(

      id int auto_increment,

      name varchar(10)

     )charset utf8;

   3. 修改自增长

     alter table my_tab4 auto_increment = 值;  -- 如果改的值比当前最大值小,则修改无效

   4. 查看系统自增长变量

     show variables like 'auto_increment%';

     可以修改系统变量的值, 但是没什么意义 

     set auto_increment_increment = 值;  -- 修改自增步长

   5. 删除自增长

     alter table my_tab1 modify id int;  -- 修改字段,使其没有auto_increment即可。

 

六、unique key -- 唯一键

   1. 唯一键允许自动为NULL,且可以有多个。如果当前表中没有主键,并有唯一键设为NOT NULL时,会显示第一个NOT NULL的唯一键为PRI,但他本质是唯一键。

   2. 增加唯一键

     ① 在创建时在字段后面跟关键字unique/unique key

      create table my_unique1(

        id int unique,

        num int unique key,

        name varchar(10)

      )charset utf8;

    ② 在创建时在所有字段后面增加 unique key(字段列表)  -- 复合唯一键MUL

      create table my_unique2(

        id int,

        num int,

        name varchar(10)

        unique key(id, num)

      )charset utf8;

     ③ 在表创建之后增加唯一键

      alter table my_unique3 add unique key(字段列表); -- unique key 或 unique 都可以

      alter table my_unique3 modify 字段名 数据类型 unique;

  3. 更新与删除唯一键

    和主键一样,先删除后添加,因为唯一键可以有多个,所以不删除直接添加也可以。

    alter table my_unique drop index 索引名;   -- 索引名的默认值为字段名

 

七、索引

  索引的作用: 提高查询效率、约束数据的有效性

  1. 主键索引   primary key

  2. 唯一键索引  unique key

  3. 全文索引   textfill  index

  4. 普通索引   index

转载于:https://www.cnblogs.com/pengyin/p/6366564.html

相关文章:

  • tcp三次握手与四次挥手
  • ajax php 点击加载更多
  • 【VS开发】ClientToScreen 和ScreenToClient 用法
  • 简单获取CDN背后网站的真实IP
  • jquery 简单实现tab切换
  • int的最大最小值补码原码转换
  • Js 跨域CORS报错 Response for preflight has invalid HTTP status code 405
  • Spring随笔(01)
  • 全屏显示
  • pickle使用及案例
  • 改变this指向
  • mac 自定义脚本命令
  • sdk相关
  • 去掉IE提示:internet explorer 已限制此网页运行脚本或Activex控件
  • TCP与UDP
  • co.js - 让异步代码同步化
  • JavaWeb(学习笔记二)
  • js
  • Meteor的表单提交:Form
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Python打包系统简单入门
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • webpack+react项目初体验——记录我的webpack环境配置
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 关于List、List?、ListObject的区别
  • 回顾 Swift 多平台移植进度 #2
  • 两列自适应布局方案整理
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 使用docker-compose进行多节点部署
  • 小程序 setData 学问多
  • 一份游戏开发学习路线
  • 走向全栈之MongoDB的使用
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​Linux·i2c驱动架构​
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C++17) std算法之执行策略 execution
  • (Git) gitignore基础使用
  • (Python) SOAP Web Service (HTTP POST)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (利用IDEA+Maven)定制属于自己的jar包
  • (七)理解angular中的module和injector,即依赖注入
  • (三)c52学习之旅-点亮LED灯
  • (转) 深度模型优化性能 调参
  • (转)编辑寄语:因为爱心,所以美丽
  • .net core 连接数据库,通过数据库生成Modell
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • @Autowired 与@Resource的区别
  • @Bean有哪些属性