- SQL的基本语法
- 对数据库
- 对表
- 对数据
- 存储引擎
- 数据类型
- 表的设计
1. SQL的基本语法
1.1 对数据库
- 查看所有的数据库
show databases;
- information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
- performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象
- mysql: 授权库,主要存储系统用户的权限信息
- test: MySQL数据库系统自动创建的测试数据库
- 创建表时指定编码格式:
create database db1 charset utf8;
- 创建数据库
CREATE DATABASE 数据库名 charset utf8;
- 数据库命名规则
可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位
# 基本上跟python或者js的命名规则一样
- 其他语法
#查看数据库
show databases;
#查看当前库
show create database db1;
#查看所在的库
select database();
#选择数据库
use 数据库名
#删除数据库
DROP DATABASE 数据库名;
# 修改数据库
alter database db1 charset utf8;
1.2 对表
use db1; #切换文件夹
select database(); #查看当前所在文件夹
- 增
create table t1(id int,name char(10));
- 查
#查看当前的这张t1表
show create table t1;
# 查看所有的表
show tables;
# 查看表的详细信息
desc t1;
- 改
# modify修改的意思
alter table t1 modify name char(6); # 修改name的显示长度为6
# 改变name为大写的NAME
alter table t1 change name NAMA char(7);
- 删
# 删除表
drop table t1;
- 删除某条记录 and 清空表
5.1 delete
delete from t1;
如果有自增id,新增的数据仍然是以删除前的记录作为起始。
delete from t1 where id = 5;
删除id为5的记录,下一条插入的记录id从6开始。
5.2 truncate
truncata table t1;
数据量大,删除的速度比delete快。且id从0开始
1.3 对数据
3. 数据类型
-
整形:tinyint、int、bigint
-
浮点型:float、double、decimal
-
时间:year、date、time、datetime
-
字符:char(定长)、 varchar(变长) 、 text(文本)
4.1 执行效率:char(定长)> varchar(变长) > text(文本) -
枚举:
enum
多选一 -
集合:
set
多选一或多选多 -
布尔:boolean
tinyint(1) 存1 表示TRUE,存0 表示FALSE
# 创建表
create table t1(
id int,
name char(10),
sex enum('male', 'famale')
fav set('run', 'swimming', 'eat')
);
函数:
- now() : 根据字段的数据类型获得当前的时间格式
- char_length:获取字符长度
- length():获取字节数
SQL中默认是有符号的,设置无符号的关键字unsigned
用0填充的关键字zerofill
网友评论