MySQL中常用SQL语句的编写(2)

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

类型大小用途
CHAR   0-255字节   定长字符串  
VARCHAR   0-65535 字节   变长字符串  
TINYBLOB   0-255字节   不超过 255 个字符的二进制字符串  
TINYTEXT   0-255字节   短文本字符串  
BLOB   0-65 535字节   二进制形式的长文本数据  
TEXT   0-65 535字节   长文本数据  
MEDIUMBLOB   0-16 777 215字节   二进制形式的中等长度文本数据  
MEDIUMTEXT   0-16 777 215字节   中等长度文本数据  
LONGBLOB   0-4 294 967 295字节   二进制形式的极大文本数据  
LONGTEXT   0-4 294 967 295字节   极大文本数据  

CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。
有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。

三、MySQL数据的各种骚操作

1. 创建数据表

创建MySQL数据表需要以下信息:
表名
表字段名
定义每个表字段

语法
以下为创建MySQL数据表的SQL通用语法:

CREATE TABLE table_name (column_name column_type);

以下例子中我们将在blog数据库中创建数据表author、article、tag以及article和tag的关联表article_tag
创建author表:

CREATE TABLE IF NOT EXISTS `author`( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '作者ID', `name` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作者名字', `qq` BIGINT(20) NULL DEFAULT NULL COMMENT '作者QQ', `phone` BIGINT(20) NULL DEFAULT NULL COMMENT '作者电话', PRIMARY KEY ( `id` ), INDEX `name` (`name`) USING BTREE, UNIQUE INDEX `phone` (`phone`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC ;

查看author表结构:

mysql> desc author; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(40) | YES | MUL | NULL | | | qq | bigint(20) | YES | | NULL | | | phone | bigint(20) | YES | UNI | NULL | | +-------+-------------+------+-----+---------+----------------+

创建article表:

CREATE TABLE IF NOT EXISTS `article`( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '文章ID', `title` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文章标题', `content` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文章内容', `author_id` INT(11) NOT NULL COMMENT '作者ID', `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间', PRIMARY KEY ( `id` ), FOREIGN KEY (`author_id`) REFERENCES `author` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, UNIQUE INDEX `author_id` (`author_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC ;

查看article表结构:

mysql> desc article; +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | title | varchar(100) | YES | | NULL | | | content | text | YES | | NULL | | | author_id | int(11) | NO | MUL | NULL | | | create_time | date | YES | | NULL | | +-------------+--------------+------+-----+---------+----------------+

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ceab30ba7232b5b1286383285c58cd83.html