mysql--约束条件
- 主键的测试 PRIMARY KEY(PRIMARY可以省略)
--查看创建表的标的定义,可以查看主键
SHOW CREATE TABLE user1; INSERT user1 VALUES(1,'king');--主键不能重复
INSERT user1 VALUES(13,'king'); --复合主键
CREATE TABLE IF NOT EXISTS user2(
id INT,
username VARCHAR(20),
card CHAR(18),
PRIMARY KEY(id,card)--复合主键,这是一个主键
);
- 自增长的测试(让编号自动化)
CREATE TABLE IF NOT EXISTS user3(
id SMALLINT KEY AUTO_INCREMENT,
username VARCHAR(20)
)AUTO_INCREMENT=100;--这是指定自增长的值 查看自增长的值
SHOW CREATE TABLE user3;
user3 | CREATE TABLE `user3` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8 | INSERT user3 VALUES(1,'king');--第一次指定值,id是自增长的
INSERT user3(username) VALUES('queue');--只是插入username的值,手动指定的,id的值是自增长的值,就是已经有的编号加1
INSERT user3 VALUES(111,'queue');
INSERT user3(username) VALUES('queue');
INSERT user3 VALUES(DEFAULT,'queue'); ysql> SELECT * FROM user3;
+-----+----------+
| id | username |
+-----+----------+
| 1 | king |
| 2 | queue |
| 111 | queue |
| 112 | queue |
| 113 | queue |
+-----+----------+ 修改自增长的值
ALTER TABLE user3 AUTO_INCREMENT=500 给自增长赋值
- 非空约束的测试(非空的字段在插入的时候不能有null,标志位非空的时候插入的时候必须给值,不然会报错)
--测试NOT NULL 非空一般是搭配默认值来玩的
CREATE TABLE IF NOT EXISTS user4(
id INT UNSIGNED KEY AUTO_INCREMENT,--这里 无符号的键值 非空
userName VARCHAR(20) NOT NULL,
password CHAR(20) NOT NULL,
age TINYINT UNSIGNED
); INSERT user4(username,password) VALUES('king','king');
INSERT user4(username,password,age) VALUES('king','king',12);
INSERT user4(username,password) VALUES('NULL','NULL'); mysql> SELECT * FROM user4;
+----+----------+----------+------+
| id | userName | password | age |
+----+----------+----------+------+
| 1 | king | king | NULL |
| 2 | king | king | 12 |
| 3 | NULL | NULL | NULL |
+----+----------+----------+------+
- 测试默认值 DEFAULT(默认值)与NOT NULL配合使用
--测试默认值
CREATE TABLE IF NOT EXISTS user5(
id INT UNSIGNED KEY AUTO_INCREMENT,
userName VARCHAR(20) NOT NULL,
password CHAR(20) NOT NULL,
age TINYINT UNSIGNED DEFAULT 18,--DEFAULT +数据 添加默认值 和NOT NULL搭配使用
addr VARCHAR(50) NOT NULL DEFAULT '北京',
sex ENUM('男','女','保密') NOT NULL DEFAULT '男'
); mysql> DESC user5;
+----------+----------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| userName | varchar(20) | NO | | NULL | |
| password | char(20) | NO | | NULL | |
| age | tinyint(3) unsigned | YES | | 18 | |
| addr | varchar(50) | NO | | 北京 | |
| sex | enum('男','女','保密') | NO | | 男 | |
+----------+----------------------------+------+-----+---------+----------------+ INSERT user5(userName,password) VALUES('king','king');
INSERT user5 VALUES(2,'fuzhiqiang','dazhi',29,'上海','保密');
INSERT user5 VALUES(3,'fuzhiqiang','dazhi',DEFAULT,DEFAULT,'保密');--利用关键字DEFAULT进行默认值的插入 mysql> SELECT * FROM user5;
+----+------------+----------+------+--------+--------+
| id | userName | password | age | addr | sex |
+----+------------+----------+------+--------+--------+
| 1 | king | king | 18 | 北京 | 男 |
| 2 | fuzhiqiang | dazhi | 29 | 上海 | 保密 |
| 3 | fuzhiqiang | dazhi | 18 | 北京 | 保密 |
+----+------------+----------+------+--------+--------+
- 测试唯一的约束性 (一个表中只有一个主键,可以有多个唯一,但是唯一的不允许重复) UNIQUE KEY(KEY可以省略)
CREATE TABLE IF NOT EXISTS user6(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
card CHAR(18) UNIQUE--唯一性
); mysql> DESC user6;
+----------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+----------------+
| id | tinyint(3) unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(20) | NO | | NULL | |
| card | char(18) | YES | UNI | NULL | |
+----------+---------------------+------+-----+---------+----------------+ INSERT user6(username) VALUES('A1'); INSERT user6(username,card) VALUES('','A1'); INSERT user6(username,card) VALUES('','A1');--这个是错误的,因为card字段是唯一性的,不能插入相同的值 +----+----------+------+
| id | username | card |
+----+----------+------+
| 1 | A1 | NULL |
| 2 | A1 | NULL |
| 3 | 1111 | A1 |
+----+----------+------+
- 建表步骤
-
--建表的步骤
CREATE TABLE [IF NOT EXISTS] tbl_name(
--按照下面的顺序呢进行建表
字段名称 字段类型 [UNSIGNED|ZEROFILL] [NOT NULL|NULL] [DEFAULT 默认值] [[PRIMARY] KEY | UNIQUE [KEY]] [AUTO_INCREMENT]
--上面中 主键的PRIMARY可以省略, 唯一性约束的KEY可以省略,
)ENGINE=INNODB CHARSET=UTF8 AUTO_INCREMENT=100;--引擎:默认的是INNODB, 编码方式:默认的是utf8, 自增长量:可以在这里初始化
-
mysql--约束条件的更多相关文章
- mysql 约束条件目录
mysql 约束条件 mysql 约束条件 not null与default mysql 约束条件 unique key 唯一的键 mysql primary key 主键 mysql auto_in ...
- mysql 约束条件介绍
mysql 约束条件介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FO ...
- mysql 约束条件 auto_increment 自动增长目录
mysql 约束条件 auto_increment 自动增长 mysql 约束条件 auto_increment 自动增长起始值 布长 起始偏移量 mysql 约束条件 auto_increment ...
- mysql 约束条件 not null与default
not null与default 是否可空,null表示空,非字符串not null - 不可空null - 可空 use db4: 默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动 ...
- mysql 约束条件 unique key 唯一的键
如果不设置unique 会出现两条相同的记录 mysql)); Query OK, rows affected (0.01 sec) mysql ,,'mike'); Query OK, rows a ...
- mysql 约束条件 primary key 主键
primary key字段的值不为空且唯一 约束:not null unique 存储引擎:innodb 对于innodb来说,一张表内必须有一个主键 单列做主键多列做主键(复合主键) 通常都是id字 ...
- mysql 约束条件 auto_increment 自动增长起始值 布长 起始偏移量
我们指定一个字段为自动增长,他默认从1开始自动增长,默认值为1,每次增长为1,步长为1 模糊查询 like % 代表任意个数字符 任意字符长度 查看mysql正在使用变量 show variables ...
- mysql 约束条件 auto_increment 自动增长
约束字段为自动增长,被约束的字段必须同时被key约束 id自动增长,每插入一条记录,自动增长 创建一张表 t20 id 字段设置为 不为空 唯一 自动增长 mysql)); Query OK, row ...
- mysql 约束条件 auto_increment 自动增长 清空表 自动增长情况
清空表情况: mysql> delete from t20; Query OK, rows affected (0.00 sec) mysql> show create table t20 ...
- mysql 约束条件 auto_increment 自动增长 创建表时设置自增字段
auto_increment mysql) )auto_increment; Query OK, rows affected (0.01 sec) mysql> show create tabl ...
随机推荐
- Python之用虚拟环境隔离项目,并重建依赖关系
下面将以安装django和mysqlclient介绍如何用虚拟环境隔离项目,并重建依赖关系.操作系统:windows 10:python版本:python3.7 1. 安装python虚拟环境 (1) ...
- [独孤九剑]Oracle知识点梳理(零)目录
本系列只涉及到Oracle的具体用法,没有上升到理论层面,都是日常工作中总结积累出的零碎知识点,基本上都是一些使用例子,哪天用到了,可以直接复制出来改改. [独孤九剑]Oracle知识点梳理(一)表空 ...
- [BZOJ5248][多省联测2018]双木棋chess
bzoj luogu sol 首先,要保证一个格子的左边和上方都放满了棋子,就需要这个点的左上方那个矩形都放满了棋子. 这样放棋子状态就会是一个自左下至右上的轮廓线. 状态数?\(C_{20}^{10 ...
- 如何找回未保存过的 Excel 文件?
如何找回未保存过的 Excel 文件? 同事做了一个文件,未保存直接关闭,正常是找不回来的. 但是 Excel 有一个强大的自动保存功能,对没有保存的文件也可以找回.
- windbg调试实例(4)--句柄泄露
同事介绍了一篇调试句柄泄露的blog文章,今天有空看了一下,这家伙用视频的方式录下整个调试的过程,学习一目了然,真是有心.鉴于学习的过程总结一下能加深记忆,所以我这里做个记录,感兴趣的朋友可以看这里: ...
- 忽略‘Chrome正在受到自动软件的控制’的提示语,以及后台静默模式启动。
一.使用Chrome做的时候,会看到浏览器上方出现‘Chrome正在受到自动软件的控制’的提示语, 若想忽略此提示信息,在浏览器配置里加个参数:disable_infobars 代码如下 : # co ...
- oralce 记一次 External Procedure initial connection 处理
1 环境 oracle 11.2.0.4 RAC(2 nodes),centos 6.8,实体机 2 问题 线上环境执行一条sql sql> select ST_AsText(ST_Geomet ...
- 第 十五 课 Go 语言范围(Range)
Go 语言中 range 关键字用于 for 循环中迭代数组(array).切片(slice).通道(channel)或集合(map)的元素 package main import "fmt ...
- IIS安装与部署,站点的部署与配置
第一章:IIS安装与部署 一,服务器概念的理解: 将设计好的软件只要部署到一台机器(服务器--->IIS)上,其它的员工通过浏览器(网址.)来进行访问. 做好的网站必须部署到这台机器上的IIS中 ...
- 用java代码解决10元喝多少瓶汽水的问题
问题:汽水2元一瓶,四个盖子换一瓶,两个空瓶一瓶,问10元可以喝几瓶?(不许借别人空瓶或瓶盖,但可以先喝汽水再付空酒瓶或瓶盖) 最近同事让笔者看了一道脑筋急转弯的数学题,当然不是很难,只要会加减法应该 ...