数据类型
- 整型
数据类型 | 存储范围 | 字节 |
---|---|---|
TINYINT | 无符号值:-128到127 有符号位0-255 | 1 |
SMALLINT | 无符号值:-2^15到 2^15 有符号位0-2^16 | 2 |
MEDIUMINT | 无符号值:-2^23到 2^15 有符号位0-2^23 | 3 |
INT | 无符号值:-2^31到 2^31 有符号位0-2^32 | 4 |
BIGINT | 无符号值:-2^63到 2^63 有符号位0-2^64 | 8 |
选择合适的类型 例如: 年龄字段(1-100多岁)用TINYINT
- 浮点型
数据类型 | 存储范围 |
---|---|
FLOAT[(M,D)] | -3.4E+38到-3.4E-38 0和1,。175E-38到3.40E+38 M数字总数,D小数点后位数单精度浮点大概精确到7位小数位 |
DOUBLE[(M,D)] | 近十倍的单精度浮点的大小 |
FLOAT[(7,2)] 总位数7位,小数位2位
- 日期时间类型
列表型 | 存储需求 |
---|---|
YEAR | 1 |
TIME | 3 |
DATE | 3 |
DATETIME | 8 |
TIMESTAM | 4 |
DATE 1000年1月1号 9999年12月31号
> DATE 1000年1月1号0点 9999年12月31号23点59分59秒
> TIMESTAM 时间戳 1970年1月1号0点 2037年的一个值
>实际开发中用数字类型取代(用php加密),由于跨时区问题
- 字符型
列表型 | 存储需求 |
---|---|
CHAR(M) | M个字节 0<=M<=255 |
VARCHAR(M) | L+1个字节 L<=M 且 0<=M<=65535 |
TINYTEXT | L+1个字节 L< 2^8 |
TEXT | L+2个字节 L< 2^16 |
MEDIUMTEXT | L+3个字节 L< 2^24 |
ENUM(‘value’,’value’) | |
SET(‘value’,’value’) |
- 行–记录 列–字段
数据表
创建数据表
- 数据表(或称呼表)是数据库最重要的组成部分之一,是其他对象的基础
行–记录 列–字段
- USE 数据库名称
- SHOW DATABASE 展示数据库
- SELECT DATABASE 打开数据库
- CREATE TABLE [IF NOT EXISTS] table_name(colunm_name data_type,…) 创建数据库
- eg: CREATE TABLE IF NOT EXISTS demo_name( id int,username VARCHAR(20), age TINYINT UNSIGNED,salary FLOAT(8,2) UNSIGNED) 无符号位
- NULL ,字段可为空 NOT NULL ,字段可为空
- eg: CREATE TABLE IF NOT EXISTS demo_name( id int,username VARCHAR(20) NOT NULL,salary FLOAT(8,2) UNSIGNED NULL)
- AUTO_INCREMENT 自动编号,必须和主键结合使用,默认起始为1,每次增1
- 主键 每张表只能存在一个,保证记录的唯一性,主键自动为NOT NULL
- 唯一约束 UNIQUE KEY 也可以保证记录唯一性,可以为NULL 每张表可以存在多个唯一约束
- 默认约束 DEFAULT 若没有明确某字段赋值, 则自动赋值默认值
查看数据表
- SHOW TABLES [FROM db_name] [LIKE `PATTERN` | WHERE expr]查看某数据库中的数据表 当前数据库不会改变
- SHOW COLUMNS FROM tal_name 查看数据表结构
插入与查找
- INSERT [INTO] tab_name [(col_name,…)] VALUES(val,…) 插入列名的情况下必须全部赋值
- SELECT expr,… FROM tab_name 查找
- SELECT * FROM tab_name