1. 常用的数据类型(data_type)

字符串类型

CHAR(n) : 固定长度

VARCHAR(n) : 可变长度

NCHAR(n) : 使用utf8存储,固定长度

NVARCHAR(n) : 使用utf8存储,可变长度

BLOB : (2^16 - 1)字节

LONGBOLB : (2^32 - 1)字节

ENUM('value1','value2',...) : 枚举,填入的值必须是枚举列表中的某一个

数字类型

INT, INTEGER (n) : 标准整型

DOUBLE(m,n) : 标准双精度浮点型, m为总长度,n为小数精确位数(0<= n <=6)

BOOL, BOOLEAN : 值为零则视为false,非零视为true

日期和时间类型

DATE : 以'YYYY-MM-DD'形式现实

DATETIME(fsp) : 以'YYYY-MM-DD HH:MM:SS[.fsp]'格式显示, (0 <= fsp <= 6)

TIME(fsp) : 以'HH:MM:SS[.fsp]'格式显示

YEAR : 以'YYYY'格式显示

JSONS数据类型(从MySql5.7.8开始支持)

JSON

JSON数据类型的优势:

自动验证存储在JSON列中的JSON文档 。无效的文档会产生错误。

优化的存储格式。存储在JSON列中的JSON文档将 转换为内部格式,以允许快速读取文档元素。当服务器稍后必须读取以此二进制格式存储的JSON值时,不需要从文本表示中解析该值。二进制格式的结构使服务器能够直接通过键或数组索引查找子对象或嵌套值,而无需在文档中读取它们之前或之后的所有值。

2. MySql表级约束和列级约束

表级约束

PRIMARY KEY

UNIQUE

CHECK(exp)

FOREIGN KEY (column-name, ......) REFERENCES foreign-table (column-name, ......) ON [DELETE | UPDATE] [SET NULL | RESTRICT | CASCADE | NO ACTION | SET DEFAULT]

列级约束

PRIMARY KEY, AUTO_INCREMENT

NOT NULL

UNIQUE

CHECK(exp)

DEFAULT

REFERENCES foreign-table (column-name, ......) ON [DELETE | UPDATE] [SET NULL | RESTRICT | CASCADE | NO ACTION | SET DEFAULT]

注意: 整数或浮点列可以具有附加属性AUTO_INCREMENT。通常该值为 value+1 ,这里 value 是目前在表中的列的最大值。如果插入NULL时自动为该列设至此值。

3. Example

CREATE TABLE T_DEPT

(

DEPTNO INTEGER(2) PRIMARY KEY,

DNAMEVARCHAR(15),

LOCVARCHAR(15)

) DEFAULT CHARACTER SET utf8;

INSERT INTO T_DEPT VALUES(10, 'ACCOUNTING', 'NEW YORK');

INSERT INTO T_DEPT VALUES(20, 'RESEARCH', 'DALLAS');

INSERT INTO T_DEPT VALUES(30, 'SALES', 'CHICAGO');

INSERT INTO T_DEPT VALUES(40, 'OPERATIONS', 'BOSTON');

CREATE TABLE T_EMP

(

EMPNOINTEGER(4)PRIMARY KEY,

ENAMEVARCHAR(15),

JOBVARCHAR(9),

MGRINTEGER(4),

HIREDATEDATE,

SALDOUBLE(7,2),

COMMDOUBLE(7,2),

DEPTNOINTEGER(2)REFERENCES T_DEPT(DEPTNO) ON UPDATE CASCADE

) DEFAULT CHARACTER SET utf8;

INSERT INTO T_EMP VALUES(7369, 'SMITH', 'CLERK', 7902, CURRENT_DATE, 800, NULL, 20);

INSERT INTO T_EMP VALUES(7499, 'ALLEN', 'SALESMAN', 7698, CURRENT_DATE, 1600, 300, 30);

INSERT INTO T_EMP VALUES(7521, 'WARD', 'SALESMAN', 7698, CURRENT_DATE, 1250, 500, 30);

INSERT INTO T_EMP VALUES(7566, 'JONES', 'MANAGER', 7839, CURRENT_DATE, 2975, NULL, 20);

INSERT INTO T_EMP VALUES(7654, 'MARTIN', 'SALESMAN', 7698, CURRENT_DATE, 1250, 1400, 30);

INSERT INTO T_EMP VALUES(7698, 'BLAKE', 'MANAGER', 7839, CURRENT_DATE, 2850, NULL, 30);

INSERT INTO T_EMP VALUES(7782, 'CLARK', 'MANAGER', 7839, CURRENT_DATE, 2450, NULL, 10);

INSERT INTO T_EMP VALUES(7788, 'SCOTT', 'ANALYST', 7566, CURRENT_DATE, 3000, NULL, 20);

INSERT INTO T_EMP VALUES(7839, 'KING', 'PRESIDENT',NULL, CURRENT_DATE, 5000, NULL, 10);

INSERT INTO T_EMP VALUES(7844, 'TURNER', 'SALESMAN', 7698, CURRENT_DATE, 1500, 0, 30);

INSERT INTO T_EMP VALUES(7876, 'ADAMS', 'CLERK', 7788, CURRENT_DATE, 1100, NULL, 20);

INSERT INTO T_EMP VALUES(7900, 'JAMES', 'CLERK', 7698, CURRENT_DATE, 950, NULL, 30);

INSERT INTO T_EMP VALUES(7902, 'FORD', 'ANALYST', 7566, CURRENT_DATE, 3000, NULL, 20);

INSERT INTO T_EMP VALUES(7934, 'MILLER', 'CLERK', 7782, CURRENT_DATE, 1300, NULL, 10);

CREATE TABLE T_SALGRADE

(

GRADEINTEGERPRIMARY KEY AUTO_INCREMENT,

LOSALINTEGER,

HISALINTEGER

) DEFAULT CHARACTER SET utf8;

INSERT INTO T_SALGRADE VALUES(1, 700, 1200);

INSERT INTO T_SALGRADE VALUES(2, 1201, 1400);

INSERT INTO T_SALGRADE VALUES(3, 1401, 2000);

INSERT INTO T_SALGRADE VALUES(4, 2001, 3000);

INSERT INTO T_SALGRADE VALUES(5, 3001, 9999);

CREATE TABLE T_JSON

(

JOSN_TEXT JSON DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO T_JSON VALUES \

(

'{"type": \

[{"lavel": 1, "price": 500.12}, \

{"lavel": 2, "price": 800.78}], \

"width": 50, "height": 100}'\

);

--搜索JSON值

mysql> SELECT JSON_EXTRACT(JOSN_TEXT, '$.width') from T_JSON;

+------------------------------------+

| JSON_EXTRACT(JOSN_TEXT, '$.width') |

+------------------------------------+

| 50 |

+------------------------------------+

mysql> SELECT JSON_EXTRACT(JOSN_TEXT, '$.type[1].lavel') from T_JSON;

+--------------------------------------------+

| JSON_EXTRACT(JOSN_TEXT, '$.type[1].lavel') |

+--------------------------------------------+

| 2 |

+--------------------------------------------+

mysql longbolb_MySql基本数据类型及约束相关推荐

  1. mysql约束类型 A P_mysql笔记: 数据类型、约束、范式

    登陆mysql # mysql -uroot -p123456 # 显示数据库 SHOW DATABASES; # 创建数据库 CREATE DATABASE test; # 显示数据库中的表 SHO ...

  2. mysql约束类型 A P_sql数据类型与约束总结

    前言: 我们已经总结了sql的基本用法,经过上一篇文章单表的相关逻辑操作我们已经会了,但是我们搞后台通常会通过java(此处就以使用最多的java总结了) 搞一些数据然后换成mysql能够接受的数据类 ...

  3. mysql decimal_MySQL系列之数据类型及约束

    点击关注 不迷路 前言 上篇咱们介绍了MySQL的基本情况和建库建表语句,当然必不可少的增删改查中的增删改也一并介绍了一下,此处再次强调语句,删库需谨慎,三思而后行. 内容简介 本篇会分两部分介绍: ...

  4. mysql中约束由数字构成_MySQL 数据类型和约束(外键是重点)

    数据类型 1. 数字(默认都是由符号,宽度表示的是显示宽度,与存储无关).tinyint 括号里指定宽度 七位2进制数最大数就是2**7 -1=127 最小是-128 验证: create tabel ...

  5. Mysql数据库——数据类型和约束

    数据类型和约束 1.数据类型: 常用数据类型: (1)整数:int,bit (2)小数:decimal (3)字符串:char,varchar (4)日期时间:date,time,datetime ( ...

  6. 数据库中数据类型和约束(整数类型、字符串、时间类型)

    数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,比如:数据类型和约束. 数据类型和约束保证了表中数据的准确性和完整性 1. ...

  7. Mysql数据库(1.表的约束,以及数据表相关操作和字段名的相关操作)

    1.windows10中命令行进入mysql   mysql -u root -p     然后输入数据库的密码即可    MySQL创建表并设置约束 1.1创建表,设置id为主键  (primary ...

  8. mysql查询修改数据类型_MySQL增删改查及数据类型

    1.配置文件的使用 配置文件需要放在 安装目录的根目录,bin同一级 文件名称:my.ini 内容和使用 cfg格式 即 section+option [mysqld] 分区服务器端配置 修改后需要重 ...

  9. django之关系及查询,数据类型,约束,分页

    目录 关系 数据列类型 数据类型的约束 分页 关系 1. 一对一(水平分表) 母表:UserInfoid name age 子表:privateid salary sp 创建模型语句: class U ...

最新文章

  1. JVM crash at ForUtil.readBlock
  2. zipoutputstream压缩文件响应到浏览器_现代浏览器内部机制之导航这件小事
  3. (转)工作了一个星期各位一定累了吧,那我们一起来表单验证一番吧!
  4. Boost:标准地图比较的测试程序
  5. 使用screen -r时提示“There is no screen to be resumed matching xxx”的解决办法
  6. c语言源程序结构是怎样的?
  7. Redis高频面试笔记:mysql8.0新特性
  8. JDBC通过连接池链接数据库总是失败的解决办法
  9. java excel 删除单元格格式_Java 去除excel表格内容中的空格
  10. Coolite Toolkit学习笔记一:AjaxEvent、AjaxMethod和Listeners
  11. 矩阵乘法 算法训练 试题_线性代数入门——矩阵乘法的定义及其意义
  12. Python 数据处理数据挖掘(五):线性回归
  13. Ubuntu交叉编译工具链安装
  14. [年度总结]我的ACM2013
  15. python修改ppt的字体和颜色_ppt-页面大小和颜色更改
  16. 论文阅读-2017-Vidal-NEARP
  17. 安装Power BI Desktop在线报错关于windows10家庭版更新中遇到的 “你的设备中缺少重要的安全和质量修复”问题
  18. VSTO Office二次开发应用程序键盘鼠标钩子
  19. 华为云学院新春大礼包:场景化微认证上新了! 1
  20. python下拉框二级联动_怎么在Django 添加省市二级联动下拉列表?

热门文章

  1. notion知识库网站
  2. NLP --- 隐马尔可夫HMM(第三个问题详解及HMM的应用)
  3. c语言【const】用法
  4. Sql JOIN 一张图说明
  5. Restful规范-开发api接口
  6. java中阻止类的继承
  7. day 61 pymysql
  8. JavaScript笔记杂谈篇(啥都有)
  9. 代码生成器集合(整理)
  10. 中级.NET开发人员应该知道些什么?