sql语句
数据库操作
- show databases; 显示所有的数据库
- 创建数据库;
create database 数据库名称;
create database 数据库名称 character set gbk/utf8; 指定字符集 gbk
- 显示数据库详情
show create database 数据库名称;
- 删除数据库
drop database 数据库名;
- 使用数据库
use 数据库名称;
表操作
- 创建表
create table 表名(字段1名 字段1类型,字段2名 字段2类型);
创建表时指定字符集
create table 表名(字段1名 字段1类型,字段2名 字段2类型) charset=utf8;
- 查询所有表
show tables;
- 查询表详情
show create table 表名;
- 查询表字段
desc 表名;
- 删除表
drop table 表名;
- 添加表字段
最后添加
alter table 表名 add 字段名 类型;
最前面添加
alter table 表名 add 字段名 类型 first;
在某个字段后面添加
alter table 表名 add 字段名 类型 after 字段名;
- 删除表字段
alter table 表名 drop 字段名;
- 修改表字段
alter table 表名 change 原名 新名 新类型;
数据的增删改查
- 插入数据
insert into 表名 values(值1,值2,值3...); 全表插入,需要与表字段一一对应
insert into 表名(字段1,字段2..) values(值1,值2...); 指定字段插入
insert into 表名 values(值1,值2,值3),(值1,值2,值3); 批量插入
insert into 表名(字段1,字段2) values(值1,值2),(值1,值2); 指定字段批量插入
win 10 中文插入时若报错 执行 set 中文字段 gbk;
- 查看数据
select 字段 from 表名 where 条件; 查询条件满足的字段信息
select * from 表名 where 条件; 查询条件满足的所有信息
- 修改数据
update 表名 set 字段名=值,字段名=值 where 条件;
- 删除数据
delete from 表名 where 条件;
delete from 表名; 删除所有
数据类型
整数: int 和 bigint // int() 括号中表示显示数量 zerofill 空位0补齐
浮点数: double(m,d) m总长度 d小数长度 // 23.356 double(5,3)
decimal是一个超高精度的浮点数,精度远高于double,只有涉及到超高精度运算时才会使用
字符串:
- char(m)不可变长度 char(5) "abc" 占5 最大字符长度255,
- varchar(m) 可变长度 节省空间 最大字符长度为65535 但是超过255建议使用text
- text可变长度的字符串类型 长度65535
日期类型:
- date: 只能保存年月日
- time: 只能保存时分秒
- datetime: 默认值null 最大值9999-12-31
- timestamp: 时间戳 默认值当前系统时间 2038-1-19
create table t_date(t1 date,t2 time,t3 datetime,t4 timestamp);
insert into t_date values("2019-10-12",null,null,null);
insert into t_date values(null,"10:37:20",
"2019-10-11 11:11:11",null);
查询相关
is null 和 is not null;; 为空或不为空字段
distinct; 去重复 select distinct 字段 from 表名;
> < >= <= = !=和<> ; 比较运算符
and和or ;并且或者
between x and y 包含x和y ; 在x和y之间;
in ; select * from 表名 where 字段 in(800,3000,1500);
模糊查询
like
%: 代表0或多个未知字符
_: 代表一个未知字符
举例:
1. 以x开头 x%
2. 以y结尾 %y
3. a开头b结尾 a%b
4. 第二个字符是x _x%
5. 包含x %x%
6. 第三个字符是x倒数第二个字符是y __x%y_
排序
order by 字段名
格式: order by 字段名 (默认升序 desc降序),字段名
分页查询
limit
- 格式: limit 跳过的条数,请求的条数(每页的条数)
- 公式:limit (页数-1)*条数,条数
别名
给查询的字段起一个别的名字
select 字段 as '名字' from 表名;
聚合查询
对查询的多条数据进行统计查询
平均值 最大值 最小值 求和 计数
select avg/min/max/sum/count(字段) from 表名 where 条件;
-
分组查询 group by xxx
-
各种关键字的顺序
-
select … from 表名 where …group by…having…
order by… limit …;