您的位置:首页 > 数据库 > MySQL

MySQL系列:数据类型、运算符及函数(5)

2017-10-30 19:59 477 查看

1. 数据类型

  MySQL支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。

  (1)数值类型:包括整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,

            浮点小数类型:FLOAT和DOUBLE,

            定点小数类型:DECIMAL。

  (2)日期/时间类型:包括 YEAR、TIME、DATE、DATETIME和TIMESTAMP。

  (3)字符串类型:包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。

1.1 整数类型

  整数类型的字段可以添加AUTO_INCREMENT自增约束条件。

  整数类型:

mysql> CREATE TABLE product
-> (
-> id INT AUTO_INCREMENT PRIMARY KEY,
-> product_name VARCHAR (100) NOT NULL
-> );


mysql> DESC product;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int(11)      | NO   | PRI | NULL    | auto_increment |
| product_name | varchar(100) | NO   |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+


  整数类型无符号:

mysql> CREATE TABLE product
-> (
-> id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
-> product_name VARCHAR (100) NOT NULL
-> );


mysql> DESC product;
+--------------+------------------+------+-----+---------+----------------+
| Field        | Type             | Null | Key | Default | Extra          |
+--------------+------------------+------+-----+---------+----------------+
| id           | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| product_name | varchar(100)     | NO   |     | NULL    |                |
+--------------+------------------+------+-----+---------+----------------+


1.2 浮点数类型和定点数类型

  MySQL中使用浮点数和定点数来表示小数。

  浮点类型包括:单精度浮点类型(FLOAT)和双精度浮点类型(DOUBLE)。

  定点类型只有:DECIMAL。

  浮点类型和定点类型都可以使用(M, N)来表示,其中M为精度,表示总位数;N为标度,表示小数的位数。

  FLOAT和DOUBLE在不指定精度时,默认会按照实际的精度,DECIMAL不指定精度默认为(10,0)。

1.3 日期与实践类型

  CURRENT_DATE():返回当前日期

  NOW():返回当前日期 + 时间

mysql> SELECT CURRENT_DATE(), NOW();
+----------------+---------------------+
| CURRENT_DATE() | NOW()               |
+----------------+---------------------+
| 2017-11-01     | 2017-11-01 19:40:58 |
+----------------+---------------------+


1.4 字符串类型

  (1)CHAR和VARCHAR类型

  CHAR(m):固定长度字符串,m表示列长度,取值范围 0~255(28-1)。

  VARCHAR(m):长度可变的字符串,m表示列长度,取值范围 0~65535(216-1)。

  (2)ENUM类型

  ENUM是一个字符串对象,其值为表创建时在列规定中枚举的一列值。

  语法格式:

  column_name ENUM('value1', 'value2', ...)

  ENUM类型字段只能在指定的枚举列表中取值,一次只能取一个。

  ENUM值在内部使用整数表示,每个枚举值都有一个索引值,枚举列表索引值从1开始。MySQL存储索引编号。

  枚举最多可以有65535(216-1)个元素。

mysql> CREATE TABLE product
-> (
-> id INT AUTO_INCREMENT PRIMARY KEY,
-> product_name VARCHAR(10),
-> size ENUM('x-small', 'small', 'medium', 'large', 'x-large') NOT NULL DEFAULT 'small'
-> );


mysql> DESC product;
+--------------+----------------------------------------------------+------+-----+---------+----------------+
| Field        | Type                                               | Null | Key | Default | Extra          |
+--------------+----------------------------------------------------+------+-----+---------+----------------+
| id           | int(11)                                            | NO   | PRI | NULL    | auto_increment |
| product_name | varchar(10)                                        | YES  |     | NULL    |                |
| size         | enum('x-small','small','medium','large','x-large') | NO   |     | small   |                |
+--------------+----------------------------------------------------+------+-----+---------+----------------+
3 rows in set (0.06 sec)


  ENUM类型的取值范围,示例:size

索引
NULLNULL
''0
x-small1
small2
medium3
large4
x-large5
  ENUM值按照索引顺序排列,并且空字符串排在非空字符串前,NULL值排在其他所有枚举值前。

  ENUM列总有一个默认值。如果ENUM列定义为NULL,则NULL则为该列的一个有效值,并且默认为NULL。如果ENUM列定义为NOT NULL,则默认值为允许的值列表的第1个元素。

2. 运算符

  MySQL运算符是执行特定算术或逻辑操作的符号,主要分四大类:算术运算符、比较运算符、逻辑运算符及位操作运算符。

2.1 算术运算符

  MySQL中的算术运算符:

运算符说明
+加法运算
-减法运算
*乘法运算
/除法运算,返回商
%求余运算,返回余数

2.2 比较运算符

  比较运算符的结果总是1、0或者NULL,比较运算符常在SELECT查询条件子句中使用,用来查询满足指定条件的记录。

3. 函数

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐