• 主键的测试  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--约束条件的更多相关文章

  1. mysql 约束条件目录

    mysql 约束条件 mysql 约束条件 not null与default mysql 约束条件 unique key 唯一的键 mysql primary key 主键 mysql auto_in ...

  2. mysql 约束条件介绍

     mysql 约束条件介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FO ...

  3. mysql 约束条件 auto_increment 自动增长目录

    mysql 约束条件 auto_increment 自动增长 mysql 约束条件 auto_increment 自动增长起始值 布长 起始偏移量 mysql 约束条件 auto_increment ...

  4. mysql 约束条件 not null与default

    not null与default 是否可空,null表示空,非字符串not null - 不可空null - 可空 use db4: 默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动 ...

  5. mysql 约束条件 unique key 唯一的键

    如果不设置unique 会出现两条相同的记录 mysql)); Query OK, rows affected (0.01 sec) mysql ,,'mike'); Query OK, rows a ...

  6. mysql 约束条件 primary key 主键

    primary key字段的值不为空且唯一 约束:not null unique 存储引擎:innodb 对于innodb来说,一张表内必须有一个主键 单列做主键多列做主键(复合主键) 通常都是id字 ...

  7. mysql 约束条件 auto_increment 自动增长起始值 布长 起始偏移量

    我们指定一个字段为自动增长,他默认从1开始自动增长,默认值为1,每次增长为1,步长为1 模糊查询 like % 代表任意个数字符 任意字符长度 查看mysql正在使用变量 show variables ...

  8. mysql 约束条件 auto_increment 自动增长

    约束字段为自动增长,被约束的字段必须同时被key约束 id自动增长,每插入一条记录,自动增长 创建一张表 t20 id 字段设置为 不为空 唯一 自动增长 mysql)); Query OK, row ...

  9. mysql 约束条件 auto_increment 自动增长 清空表 自动增长情况

    清空表情况: mysql> delete from t20; Query OK, rows affected (0.00 sec) mysql> show create table t20 ...

  10. mysql 约束条件 auto_increment 自动增长 创建表时设置自增字段

    auto_increment mysql) )auto_increment; Query OK, rows affected (0.01 sec) mysql> show create tabl ...

随机推荐

  1. Arc066_F Contest with Drinks Hard

    传送门 题目大意 有一个长为$N$的序列$A$,你要构造一个长为$N$的$01$序列使得$01$序列全部由$1$组成的子串个数$-$两个序列的对应位置两两乘积之和最大,每次独立的询问给定$pos,x$ ...

  2. Django 登录页面重定向

    转自:http://blog.chedushi.com/archives/3484 登陆和注销操作在网页编程上很常见,这两个操作经常需要在操作成功以后转入发出请求的页面. 比如用户正在浏览一篇文章,发 ...

  3. position:sticky属性测试

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Unity3d-WWW实现图片资源显示以及保存和本地加载

    本文固定连接:http://blog.csdn.net/u013108312/article/details/52712844 WWW实现图片资源显示以及保存和本地加载 using UnityEngi ...

  5. Windows平台下gitbook的安装与使用

    最近要用到gitbook去阅读电子书,整理了一份在windows系统下安装gitbook的过程. * 安装nodejs * 安装cnpm * 搭建gitbook平台 1.在windows上安装node ...

  6. [MySQL-MM] 生产环境自动恢复MM中一台M2库的过程,分享从零开始写的自动化重建脚本以及思路 (转)

    必须是MM架构,而且一台主库M1是完好无损的,一台主库M2可以根据M1主库来进行重建:如果MS架构,自己可以稍微做一下脚本修改动作,也能使用,架构如下图所示: 3  总体思路,建立主脚本a_build ...

  7. Machine Learning的Python环境设置

    Machine Learning目前经常使用的语言有Python.R和MATLAB.如果采用Python,需要安装大量的数学相关和Machine Learning的包.一般安装Anaconda,可以把 ...

  8. 摘之知乎网友...PHYTIN学习

    作者:东瓜王链接:https://www.zhihu.com/question/19593179/answer/23746083来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  9. ThreadPoolExecutor之一:使用基本介绍

    一.concurrent包中的线程池的简单介绍 线程池按照线程数量可以分为:一是固定线程数量的线程池:二是可变数量的线程池. 线程池按照执行时间可以分为:一是立即执行线程池:二是延时线程池. Thre ...

  10. 使用Spring AMQP开发消费者应用

    前一篇中我们介绍了使用RabbitMQ Java Client访问RabbitMQ的方法.但是使用这种方式访问RabbitMQ,开发者在程序中需要自己管理Connection,Channel对象,Co ...