SQL
结构化查询语言
- DDL
数据定义语言,用来维护存储数据的结构,如建库建表等操作语句
- DML
数据操作语言,用来对数据进行操作,如增删改查等语句
- DCL
数据控制语言,主要负责用户的权限管理等
数据库基本操作
- 新增数据库
Create database 数据库名 库选项;
库选项用来约束数据库,用户设置字符集和校对集等 查看数据库
show databases;
查看所有数据库
Show databases like ‘pattern’;
pattern为匹配模式,%匹配多个字符,_表示匹配单个字符查看数据库创建语句
show create database 数据库名;
执行后可查看数据库创建的语句- 更新数据库
Alter database 数据库名 库选项;
数据库名字不可以修改,只能更改库选项 - 删除数据库
Drop database 数据库名字;
执行后删除数据库,数据不可恢复。
数据表基本操作
- 指定数据库
Create table 数据库名.表名();
use 数据库名;
创建数据表时必须指定数据库,有以上两种方式 新增数据表
**Create table if not exists 表名(
字段名字 数据类型 列属性,
字段名字 数据类型 – 最后一行不需要逗号
)表选项;**If not exists: 如果表名不存在,那么就创建,否则不执行创建代码: 检查功能
表选项: 控制表的表现
字符集: charset/character set 具体字符集; – 保证表中数据存储的字符集
校对集: collate 具体校对集;
存储引擎: engine 具体的存储引擎(innodb和myisam)
列属性:NULL/NOT NULL, default, Primary key, unique key, auto_increment,comment等- 查看数据表
show tables;
查看库中所有表
show tables like ‘pattern’;
模糊匹配表名进行查看,模糊匹配规则同上 - 查看表的创建语句
show create table 表名;
查看创建表的sql语句 - 查看表结构
show columns from 表名;
查看表中各个字段信息
修改数据表
- 修改表名
rename table 老表名 to 新表名; - 修改表选项
Alter table 表名 表选项 = 表选项值;
修改数据表字符集、校对集、存储引擎 - 新增字段
Alter table 表名 add column 字段名 数据类型 列属性 位置;
可以指定插入新字段的位置,first为第一个,after+字段名可放在指定字段后,默认为最后一个字段后 - 重命名字段
Alter table 表名 change 旧字段 新字段名 数据类型 属性 位置; - 修改字段
Alter table 表名 modify 字段名 数据类型 属性 位置; - 删除字段
Alter table 表名 drop 字段名; - 删除数据表
Drop table 表名1,表名2…;
可以一次删除多张表,删除后数据不可恢复
数据操作-CRUD
- 新增数据
Insert into 表名 values(值1,值2,…);
插入所有字段
Insert into 表名 (字段1,字段2,…) values (值1,值2,…);
插入指定字段 - 查询数据(基本用法)
Select */字段列表 from 表名 where条件;
基本查询数据语句 - 更新数据
Update 表名 set 字段 = 值 where 条件
没有where条件跟新全部 - 删除数据
Delete from 表名 where 条件;
MySql数据类型
- 数值
- 整数型
五种整型,范围区间和所占内存不同,由小到大排列:
**Tinyint(常用)
Smallint
Mediumint
Int(常用)
Bigint** - 小数型
- 浮点型
**Float: 单精度
Double: 双精度** - 定点型
Decimal:定点型,理论上不会丢失精度
- 浮点型
- 整数型
字符串
- char定长
- varchar变长
- Text存储文字
- Blob存储二进制数据
- Enum枚举
- Set字符串集合
时间日期
- Datetime:格式是YYYY-mm-dd HH:ii:ss
- Date :datetime中的date
- Time :时间段
- Timestamp :时间戳
- Year:年份