内容小结:这篇学习了创建表的语句,强调了一个方括号 [] 的问题;用思维导图形式列出了Mysql列类型(又叫数据类型),并且用整型与bit型进行了举例,关于bit型数据查询结果显示不出来的问题,给了一个说明。创建表的基础结构遵循 “定义表名 + 字段列表(字段名、类型、约束) + 表级约束” 的逻辑,完整语法如下CREATE TABLE [IF NOT EXISTS] 表名 ( 字段名1 数据类型 [约束条件], 字段名2 数据类型 [约束条件], ... [表级约束条件]) [DEFAULT CHARACTER SET 字符集] [COLLATE 校对规则];
- 标记括号内的内容是「可选选项」(可写可不写),而非必须的核心语法;绝对不能直接把方括号写在实际执行的 SQL 语句里。
CREATE TABLE IF NOT EXISTS user2 ( id INT, `name` VARCHAR(255), `password` VARCHAR(255), `date` DATE) DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
- 不要觉得SQL语句是很随意的哦,比如上面的语句中,如果第5行 `date` DATE 如果多写一个逗号,结果也是会报错的。
# 使用tinyint来演示范围,有符号-128~127 如果没有符号就是0-125
# 说明: 表的字符集,校验规则,存储,引擎 就使用默认
# 如果没有指定 unsigned,则TINYINT就是有符号
CREATE TABLE t2( id TINYINT); # 如果没有指定unsigned,就是有符号的CREATE TABLE t3( id TINYINT UNSIGNED); # 如果指定了unsigned,就是无符号的INSERT INTO t2 VALUES(-128) # 非常简单的添加语句SELECT * FROM t2
BIT 类型本质是二进制字符串类型,并非普通数值类型,是数值类型中不太常用的一个类型:关于它本身先有几点说明:# 1. bit(m) m在1-64之间
# 2. 添加数据 范围 按照你给的(二进制)位数来确定,比如m=8表示一个字节0-255
# 3. 显示会按照bit
# 4. 查询时,仍然可以按照数来查询
CREATE TABLE t4(num BIT(8)); INSERT INTO t4 VALUES(16) ;INSERT INTO t4 VALUES(255) ;SELECT BIN(num) FROM t4
-- 方法1(推荐):+0 强制转换为十进制整数(最简洁)SELECT num + 0 FROM t4;-- 方法2:CAST函数显式转为无符号整数(语义最清晰)SELECT CAST(num AS UNSIGNED) AS num FROM t4;-- 方法3:查看二进制形式(验证存储的是0b1)SELECT BIN(num) FROM t4;