1 数据库
- 相关操作
-- 创建数据库 CREATE DATABASE IF NOT EXISTS TE; -- 删除数据库 DROP DATABASE IF EXISTS TE; -- 使用数据库 use `test`; -- 查看数据库 show DATABASEs;
2 数据表
2.1 数据类型
1、数值
类型 | 用途 | 说明 |
---|---|---|
tinyint | 十分小的数据 | 1个字节 |
smallint | 较小的数据 | 2个字节 |
mediumint | 中等大小的数据 | 3个字节 |
int (常用) | 标准的整数 | 4个字节 |
bigint | 较大的数据 | 8个字节 |
float | 浮点数 | 4个字节 |
double | 浮点数 | 8个字节 |
decimal | 字符串的浮点数 | 金融计算的时候使用 |
2、字符串
类型 | 用途 | 说明 |
---|---|---|
char | 字符串固定大小的 | 0~255 |
varchar 常用 | 可变字符串 | 0~65535 |
tinyint | 微型文本 | 0~2^8-1 |
text | 文本串(保存较大的文本) | 0~2^16-1 |
3、时间日期
类型 | 用途 | 说明 |
---|---|---|
date | YYYY-MM-DD | 日期 |
time | HH:MMM:SS | 时间 |
datetime 常用 | YYYY-MM-DD HH:MMM:SS | 时期时间 |
timestamp | 1970 1.1 到现在的毫秒数 全球一致 | 时间戳 |
year | 年份 |
4、null
- 没有数值 位置
- 使用NULL进行运算 结果为NULL
2.2操作
1、创建表
-- 主键一般写在最后面
-- AUTO_INCREMENT 自增
-- PRIMARY KEY (`id`) 主键
-- NOT NULL 非空
-- DEFAULT '匿名' 默认值
-- COMMENT '学号' 注释
CREATE TABLE `user` (
`id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` varchar(255) NOT NULL DEFAULT '匿名' COMMENT '姓名' ,
`pwd` VARCHAR(255) NOT NULL DEFAULT '123456' COMMENT'密码',
`sex` VARCHAR(255) NOT NULL DEFAULT '男'COMMENT '性别',
`address` VARCHAR(255) DEFAULT NULL COMMENT'地址',
`telephone` VARCHAR(255) DEFAULT NULL COMMENT'手机号',
PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
-
公式
-- 公式 create table [if not exists]`表名`( `字段名` 类型 [属性] [索引] [注释], `字段名` 类型 [属性] [索引] [注释], `字段名` 类型 [属性] [索引] [注释], `字段名` 类型 [属性] [索引] [注释], ..... )[表类型][字符集设置][注释]
-
查看标的结构
mysql> desc user; +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | id | int(4) | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | 匿名 | | | pwd | varchar(255) | NO | | 123456 | | | sex | varchar(255) | NO | | 男 | | | address | varchar(255) | YES | | NULL | | | telephone | varchar(255) | YES | | NULL | | +-----------+--------------+------+-----+---------+----------------+ 6 rows in set
-
数据表类型
ENGINE=INNODB
- 默认使用:innoDB
- 早些年使用:MYISAM
事项 MYISAM INNODB 事务处理 不支持 支持 数据行锁定 不支持 支持 外键约束 不支持 支持 全文索引 支持 不支持 表空间的大小 较小 2倍于 MYISAM 常规操作 节约空间 速度较快 安全性高 支持事务处理 多表多用户操作 -
物理文件存储
- innoDB *.frm 格式 上级目录上的 ibdata1文件
- MYISAM
- *.frm 表结构定义文件
- *.MYD 数据文件
- *.MYI 索引文件
-
字符集编码
DEFAULT CHARSET=utf8;
不设置的话 是 默认:Latin1(拉丁文)
可以在my.ini 中默认设置(不建议)
character-set-server=utf8
2、修改表
-- 修改表名 alter tabel old_name rename as new_name
ALTER table js_uesr rename as js_user;
-- 添加字段
alter table js_user add age int(4);
/*
change 用来重命名字段 但是不可以修改字段的类型和约束
modify 不能修改字段的名称 只能修改字段的类型和约束
*/
-- 重命名 changge
ALTER table js_user change age age_1 int(4);
-- 修改约束 modify
alter table js_user modify age_1 varchar(4);
-- 删除表中的字段
alter table js_user drop age_1;
3、删除表
drop table if exists js_user;
- 删除表中的字段
alter table js_user drop age_1;