MySQL 表数据类型
MySQL 支持多种类型, 大致可以分为三类: 数值, 日期 / 时间和字符串 (字符) 类型.
数值类型
TINYINT------------>小整数值
SMALLINT---------->大整数值
MEDIUMINT--------->大整数值
INT 或 INTEGER------>大整数值
BIGINT----------------->极大整数值
FLOAT------------------->浮点数值
DOUBLE---------------->双精度浮点数值
DECIMAL--------------->小数值
日期和时间类型
表示时间值的日期和时间类型为 DATETIME,DATE,TIMESTAMP,TIME 和 YEAR
DATE-------------->YYYY-MM-DD---------->日期值
TIME--------------->HH:MM:SS--------------->时间值或持续时间
YEAR--------------->YYYY--------------------->年份值
DATETIME-------->YYYY-MM-DD HH:MM:SS---->混合时间和日期
TIMESTAMP------>YYYYMMDD HHMMSS------>时间戳
字符串类型
字符串类型指 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 字节 ---->二进制形式的中等长度文本数据
2. 用 SQL 语句创建表
create table 表名(列名 类型(大小) 约束)
- MySQL>CREATE TABLE t_student(
- student_id INT PRIMARY KEY,
- student_name VARCHAR(10) NOT NULL,
- student_birthday DATETIME,
- student_phone INT UNIQUE,
- student_score FLOAT);
3 用 SQL 语句向表中添加数据
INSERT INTO 表名称 VALUES (值 1, 值 2,....)
指定列的话是在表名后添加列的名称, 以下是不指定列的添加
方式一: 单条插入,
INSERT INTO t_student VALUES ('lilly', '20', '10', '90')
方式一: 多条插入,
INSERT INTO t_student VALUES ('lilly', '20', '10', '90'),('bobo', '20', '10', '90'),('any', '20', '10', '90')
4. 用 SQL 语句删除表
1,drop table 表名称
drop table t_student
2,truncate table 表名称
truncate table t_student
3,delete from 表名称 where 列名称 = 值
delete from t_student where test='test'
区别:
drop(删除表): 删除内容和定义, 释放空间, drop 语句将删除表的结构被依赖的约束, 触发器, 索引; 依赖于该表的存储过程, 函数将被保留, 但状态会变为 invalid
truncate(清空表中的数据): 删除内容, 释放空间但不删除定义(保留表的数据结构), 不能删除行数据, 要删就要把表清空.
delete(删除表中的数据): 用于删除表中的行, delete 语句执行删除的过程是每次从表中删除一行, 并且同时将该行的删除操作作为事务记录在日志中保存, 以便进行回滚操作
truncate table 删除表中的所有行, 但表结构及其列约束, 索引等保持不变, 新行标识所用的计数值重置为该列的种子. 如果想保留标识计数值, 请改用 delete. 如果要删除表定义及其数据, 请使用 drop table 语句.
对于由 foreign key 约束引用的表, 不能使用 truncate table , 而应使用不带 where 子句的 delete 语句. 由于 truncate table 记录在日志中, 所以它不能激活触发器.
执行速度, 一般来说: drop> truncate> delete.
delete 语句是数据库操作语言(dml), 这个操作会放到 rollback segement 中, 事务提交之后才生效; 如果有相应的 trigger, 执行的时候将被触发.
truncate,drop 是数据库定义语言(ddl), 操作立即生效, 原数据不放到 rollback segment 中, 不能回滚, 操作不触发 trigger.
5. 用 SQL 语句修改表
修改列名
修改表中数据
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
删除行
删除列
DELETE FROM 表名称 WHERE 列名称 = 值
新建列
alter table 表名 add 列名 数据类型.
新建行
来源: http://www.bubuko.com/infodetail-3009535.html