Mysql学习之路03-列属性
来源:互联网 发布:淘宝旺铺专业版价格 编辑:程序博客网 时间:2024/06/14 10:57
列属性:数据类型的约束很单一,需要一些额外的约束,来保证数据的合法性
:NULL/NOT NULL ,default,primary key ,unique key,auto_increment,comment
空属性: 两个值:NULL和NOT NULL列描述:comment,描述,没有实际含义,是专门用来描述字段,会根据表创建语句保存: 来给数据管理员进行了解默认值:可以由用户选择性的使用默认值 默认值关键词:default create table my_default( name varchar(20) not null, age tinyint unsigned default 0, gender enum('男','女','保密') default '男' )charset utf8;字段属性: 主键,唯一键和自增长 主键 :primary key ,主要的键,一张表只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复 一张表只能有最多一个主键 增加主键: 1,在创建表的时候,直接在字段之后,跟primary key 关键字,主键不允许为空 优点:非常直接;;缺点:只能使用一个字段作为主键 2,在创建表的时候,在所以的字段之后,使用primary key(主键字列表)来创建主键 (如果有多个字段作为主键,可以是复合主键) 3,当表已经创建好之后,再次额外追加主键:可以通过修改表字段属性,也可以直接追加 alter table 表名 add primary (字段列表) alter table 表名 modify 字段 primary key; 主键对应的字段中的数据不允许重复:一旦重复,数据操作失败 更新主键&删除主键:主键必须先删除,才能更新 alter table 表名 drop primary key; 主键分类: 在实际创建表的过程中,很少使用真实业务数据作为主键字段(业务主键,如雪花,课程号), 大部分的时候是使用逻辑性的字段(字段没有业务含义,值是什么都没有关系),这种字段主键称之为逻辑主键 自动增长:当对应的字段,不给值,或者是NULL时,系统会从当前字段中已有的最大值在进行+1操作,得到一个新的字段 自增长通常是跟主键搭配 查看自增长对应的变量:show variables like 'auto_incremrnt%'; 特点:auto_increment 1,任何一个字段要做自增长必须其本身是一个索引(key一栏有值) 2,自增长字段必须是数字(整型) 3,一张表最多只能有一个自增长 create table my_auto( id int primary key auto_increment comment '自增长', name varchar(10) )charset utf8; 自增长使用:自增长默认第一个为1,每次加1,如果对应字段输入了值,那么自增长失效,但是下一次还是能够正确的自增长(即输入值+1) 修改自增长: 如果涉及到字段改变,必须先删除自增长,后增加 修改当前自增长已经存在的值:修改只能比当前已有的自增长的最大值,不能小 alter table 表名 auto_increment = 值; 删除自增长: alter table 表名 modify 字段 类型; 唯一键:一张表中有许多字段需要唯一性,数据不能重复,但是一张表只能有一个主键, 唯一键(unique key)可以解决 增加唯一键: 1,在创建表的时候,字段之后直接跟unique, 2,在所有字段后增加unique key(字段列表) -- 复合唯一键 3,在表创建之后增加唯一键 删除唯一键: alter table 表名 drop index 索引名字;---唯一键默认以字段名为索引 唯一键约束:与主键相同,唯一区别为唯一键允许为空,而且是多个为空
-- 创建表create table my_teacher(name varchar(20) not null comment '姓名',money decimal(10,2) not null comment '工资')charset utf8;-- 默认值create table my_default(name varchar(20) not null,age tinyint unsigned default 0,gender enum('男','女','保密') default '男')charset utf8;--插入数据insert into my_default (name) values ('Marr');insert into my_default values ('Arry',default,default);-- 增加主键create table my_pril(name varchar(20) not null comment '姓名',number char(10) primary key comment '学号:0000,不能重复' )charset utf8;-- 复合主键create table my_pri2(number char(10) comment '学号',course char(10) comment '课程代码',score tinyint unsigned default 60 comment '成绩',-- 增加主键限制:学号和课程号应该对应,具有唯一性primary key (number,course))charset utf8;-- 追加主键create table my_pri3(course char(10) not null comment '课程编号',name varchar(10) not null comment '课程名字')charset utf8;alter table my_pri3 modify course char(10) primary key;alter table my_pri3 add primary key(course) ;-- 删除主键alter table my_pri3 drop primary key;-- 自增长create table my_auto(id int primary key auto_increment comment '自增长',name varchar(10))charset utf8;-- 触发自增长insert into my_auto(name) values('Han');insert into my_auto values(null,'Mary');insert into my_auto values(default,'Grr');insert into my_auto values(6,'Sarry');insert into my_auto values(null,'Kaat');-- 修改自增长alter table my_auto auto_increment = 8;-- 查看自增长变量show variables like 'auto_increment%';-- 删除自增长alter table my_auto modify id int;-- 唯一键create table my_unique1(number char(10) unique comment '学会:唯一键',name varchar(20) not null)charset utf8;------------create table my_unique2(number char(10) unique comment '学会:唯一键',name varchar(20) not null,unique key(number))charset utf8;------------ 追加唯一键create table my_unique3(id int primary key auto_increment,number char(10) not null,name varchar(20) not null )charset utf8;alter table my_unique3 add unique key (number);-- 删除唯一键alter table my_unique3 drop index number;
阅读全文
0 0
- Mysql学习之路03-列属性
- mysql学习(列属性)
- mysql 学习之列类型以及属性特点详解
- MYSQL学习笔记 第四讲:列属性
- Mysql入门(三)之列属性
- Mysql学习之路02-数据类型(列类型)
- mysql修改列属性
- (2)MySQL列属性
- Mysql学习笔记一之列类型
- Mysql学习历程基本语法(9)-列属性
- mysql 增加列,修改列名、列属性,删除列
- MySQL 列属性-自动增长
- mysql中的列的属性
- 浅析MySQL中列属性
- mysql基础总结 列属性
- MySQL 学习教程(四)【整理】-列属性(空属性、列描述和默认值/ 主键/ 自动增长/ 唯一键)
- 史上最简单的 MySQL 教程(十三)「列属性 之 空属性、列描述和默认值」
- mysql增加列修改列名列属性以及删除列
- 非监督特征学习与深度学习(三)----向量化
- Volley和XUtils区别
- 一个例子理解装饰器模式
- nginx(二)负载均衡设置
- SSH -- 建立本地GIT仓库和Github的连接
- Mysql学习之路03-列属性
- 前端编辑器-webstrom使用交谈
- 数据库恢复挂起
- 关掉Windows10的计划自动重启行之有效的方法
- 非监督特征学习与深度学习(四)----调试:梯度检查
- 转载:快排时间复杂度分析
- 大端 小端
- 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果。
- Maven的6种依赖范围