第十章      本章主要介绍了一些语法规范,如

对于表,函数,字段,在Linux上大小写敏感,Windows和MacOS上却不敏感;

Mysql是如何识别函数的及用户在定义自定义函数时命名要求:通过函数名与左括号标识,中间无空格,用户自定义函数名不得与内嵌函数名重名,

用户变量的命名,声明与赋值,注意用户变量不能与Mysql关键字和保留字重合。

进制转换之类的。

表达式定义等等

注释方法:#,--,/*  */

第十二章,Mysql数据类型

支持:数字类型,日期时间类型,字符类型,空间(spatial)类型和JSON类型

  数字类型:

    ZEROFILL,是unsigned,自动左边填0.

    SERIAL,是 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的别名

    BIT[(M)],位,1<=M<=64;当M被忽略时,M=1,即此时BIT为0 or 1.

    TINYINT[(M)] [UNSIGNED] [ZEROFILL] ,是个微整型,范围在[-128,127]之间,当为UNSIGNED时最大为255;1<=M<=8之间。

    BOOL,BOOLEAN,同义于TINYINT(1),0被视为false,非零被视为true. 然而,the values TRUE and FALSE are merely aliases for 1 and 0。

    SMALLINT[(M)] [UNSIGNED] [ZEROFILL] ,是个小整型,范围在[-32768,32767]之间,当为UNSIGNED时最大为65535;1<=M<=16之间。

    MEDIUMINT[(M)][UNSIGNED] [ZEROFILL],是个中整型,范围在[-8388608,8388607]之间,当为UNSIGNED时最大为16777215;1<=M<=24.

    INT[(M)] [UNSIGNED] [ZEROFILL],是个整型,范围在[-2147483648,2147483647]之间,当为UNSIGNEDJ时最大为4294967295;1<=M<=32.

  INTEGER,与INT同义。

  BIGINT[(M)] [UNSIGNED] [ZEROFILL],是个大整型,1<=M<=64.

  小数:

  DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL],数字的最大位数为M,有D个小数。M<=65,D<=30.. If D is omitted, the default is 0. If M is omitted, the default is 10.

  FLOAT[(M[,D])] [UNSIGNED] [ZEROFILL] ,单精度,7位小数,在计算时Mysql按照DOUBLE型计算。

  DOUBLE[(M[,D])] [UNSIGNED] [ZEROFILL] ,双精度,15位小数,在计算时Mysql按照DOUBLE型计算。

日期时间型

  DATE,是一个日期型,范围在[1000-01-01,9999-12-31],格式类型为YYYY-MM-DD。

  DATETIME[(fsp)],是个日期时间型,范围在[1000-01-01 00:00:00.000000,9999-12-31 23:59:59.999999],格式类型为YYYY-MM-DD HH:MM:SS[.fraction]。

  TIMESTAMP[(fsp)],是个时间戳,范围在[1970-01-01 00:00:01.000000,2038-01-19 03-14-07.999999]

  TIME[(fsp)],是个时间型,范围在[-838:59:59.000000,838:59:59.000000],格式类型为HH:MM:SS[.fraction] If omitted, the default precision is 0

  YEAR[(4)],是个4位的数值类型,范围在[1901,2155],格式为YYYY,可用字符串和数值为其赋值。

字符类型:

  [NATINAL] CHAR[(M)] [CHARACTER SET charset_name] [COLLATE collate_name] ,固定长度M的字符串,若不足M则右侧用空格填充;对于CHAR类型,其M<=255.若char(0),只能表示两个值:''或NULL。

  [NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name],是可度长度的字符串,M<=65535Bytes,如果编码为utf8,则最多能存储21844个字符(每个占3个字节);在存储时,varchar用长度+data形式。长度为1or2 bytes[超过255为2]。

  BINARY[(M)],存放二进制数据,M表示其存储的最大长度(Byte为单位),与char类似。

   VARBINARY(M),与varchar 类似  

  TINYBLOB,最大长度为255,用一个字节(1byte)表示其存储长度;

  TINYTEXT,与TINYBLOB相似,最大为255。

  BLOB[(M)],TEXT[(M)],最大长度为65535【2^16-1】,使用2Bytes表示其长度,如果指定了M值则创建M个长度存放数据减少不必要的空间浪费。

  MEDIUMBLOB,MEDIUMTEXT,最大长度为16,777,215 (224 − 1) bytes,用3个byte表示其长度。

  LONGBLOB,LONGTEXT,最大长度为4,294,967,295 or 4GB (232 − 1) characters;

  ENUM('VALUE1','VALUE2',...),表示数据只允许这里中的一个;ENUM中最大有65535个元素;每个Enum元素都对应一个索引,索引从1开始。

可使用 SHOW COLUMNS,查看所有可能值:如

   SET('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name],set中最多不超过64个元素。

对于SET使用,可如下:

  

 

Mysql手册—基本规范与数据类型的更多相关文章

  1. mysql 手册关于修改列字符编码的一个bug

    项目因为历史原因使用了 GBK编码,遇到非GBK编码字符时出现乱码问题,情况比较严重,暂时先打算修改 列的字符编码为 utf8mb4. 查看 mysql 手册: 用 GBK 编码转 utf8 进行说明 ...

  2. MySQL数据库笔记二:数据类型及数据库操作

    三.MySQL数据库数据类型 MySQL数据库中支持多种数据类型:数值型.字符型.日期型 常用的数据类型: 1.整型 int:整形,存储整数 int(M):M表示预期值.与存储大小和数值的范围无关. ...

  3. MySQL基础(1) | 数据类型

    MySQL基础(1) | 数据类型 数值类型 TINYINT #小整数值,1 字节,有符号(-128,127),无符号(0,255) SMALLINT #大整数值,2 字节 MEDIUMINT #大整 ...

  4. MySQL入门(引擎、数据类型、约束)

    MySQL入门(二) 表的引擎:驱动数据的方式 - 数据库优化 # 概要:引擎是建表规定的,提供给表使用,不是数据库的 # 展示所有引擎 show engines; # innodb(默认): 支持事 ...

  5. mysql数据库——选择优化的数据类型

    选择更小的数据类型:一般情况下,应该尽量使用可以正确存储数据的最小数据类型.更小的数据类型通常更快,它们占用更少的磁盘.内存和CPU缓存,并且处理时需要的CPU周期也更少.但是要确保没有低估需要存储的 ...

  6. MySQL入门(3)——数据类型

    MySQL入门(3)--数据类型 数字类型 整数数据类型: 数据类型 取值范围 说明 单位 TINYINT 符号值:-127~127无符号值:0~255 最小的整数 1字节 BIT 符号值:-127~ ...

  7. MySQL知识树-支持的数据类型

    本篇学习笔记的主要内容: 介绍MySQL支持的各种数据类型(常用),并讲解其主要特点.   MySQL支持多种数据类型,主要包括数值类型.日期和时间类型.字符串类型. 数值类型 MySQL的数值类型包 ...

  8. MySQL建表规范与常见问题

    一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确 ...

  9. MySQL数据库开发规范知识点

    前言: 设计规范更多的是为了确保数据库设计的合理性.为了项目最终的协调稳定性,而命名规范则更多的是为了确保设计的正式和统一. 约定优先于配置(Convention Over Configuration ...

随机推荐

  1. XML类似的解析时,会遇到'XXX' 不是 'NCName' 的有效值的问题

    主要原因是:xml中或类xml的文件中有些关键属性的值不符合NCName命名规范,例如我遇到的是流程的bpmn文件中,id的属性值命名的数字开头. NCName 不包含冒号 (:) 的 XML 名称. ...

  2. 高性能Java网络框架 MINA

    Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...

  3. Java 7 Concurrency Cookbook 翻译 第一章 线程管理之三

    五.睡眠和唤醒一个线程 有时,你会想要在一段特定的时间后再去中断线程的运行.举个例子,程序中的一个线程每一分钟检查一次传感器的状态,剩余的时间,线程应该处于空闲的状态.在这段空闲时间里,线程不会使用计 ...

  4. 进军swift

    swift中文文档网站 http://letsswift.com/category/swiftguide/language-guide/ Swift的优缺点 , 来自珍妮讲解~~ 优点1.简洁(不是说 ...

  5. cocos2d界面渲染

    渲染是visit函数来做的, visit是先将不可见的节点和他所有的子节点都跳过, 然后再看节点的子节点是否为空, 如果为空的话直接看这个节点是否在摄像机可见范围之内, 如果在就渲染这个节点, 否则什 ...

  6. SPOJ 375 Query on a tree

    Description 给出一个树,每条边有边权,支持两种操作,询问 \(u,v\) 路径上边权最大值,修改第 \(i\) 条边的边权,\(n\leqslant 10^4,T\leqslant 10\ ...

  7. net-snmp配置文件详解

    net-snmp配置文件详解 net-snmp的配置文件是有一定的层次结构的,配置起来也很方便.网上找了很多资料,大概把这个配置文件的各个信息搞懂了一点.其实在net-snmp的EXAMPLE.con ...

  8. Python之函数之路

    1 集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 创建集合 a = {3, 5, 9, 9, ...

  9. hdu 5492

    动态规划 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm&g ...

  10. 新塘ARM平台交叉编译minigui界面库

    简介 MiniGUI 是一款面向嵌入式系统的高级窗口系统(Windowing System)和图形用户界面(Graphical User Interface,GUI)支持系统,由魏永明先生于 1998 ...