一、对数据库的操作
1、创建一个库
create database 库名
create database 库名 character set 编码
2、删除一个库
drop database 库名
3、使用库
use 库名
4、查看当前正在操作的库
select database();
5、显示所有的数据库
show databases;
6、查看数据库编码
show create database 库名;
二、对数据库表的操作
1、创建一张表
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
字段名 类型(长度) [约束]
);
2、查看数据库表
show tables;
3、查看表的结构
desc 表名;
4、删除一张表
drop table 表名;
5、修改表
a、添加一列:
alter table 表名 add 字段名 类型(长度) [约束];
b、修改列的类型(长度、约束)
alter table 表名 modify 要修改的字段名 类型(长度) [约束];
c、修改列的列名
alter table 表名 change 旧列名 新列名 类型(长度) [约束];
d、删除表的列
alter table 表名 drop 列名;
e、修改表名
rename table 表名 to 新表名;
f、修改表的字符集
alter table 表名 character set 编码;
g、查看表的编码
show create table 表名;
三、对数据库表记录进行操作(修改)
1、插入记录
insert into 表名(列名1,列名2, 列名3...) values (值1,值2,值3...);
insert into 表名 values(值1,值2,值3...);
c、插入数据中文乱码问题解决办法
方式一:【不建议】
直接修改数据库安装目录里面的my.ini文件的第57行
default-character-set=utf8
方式二:
set names gbk;
2、修改表的记录
a、不带条件的(它会将该列的所有记录都更改)
update 表名 set 字段名=值,字段名=值,字段名=值...;
b、带条件的
update 表名 set 字段名=值,字段名=值,字段名=值... where 条件;
3、删除表的记录
a、带条件的(删除后,id不会重置)
delete from 表名 where 条件;
b、不带条件的
delete from 表名;
c、delete 与truncate 的区别?
delete 删除的时候是一条一条的删除记录,它配合事物,可以将删除的数据找回;
truncate 删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。
delete操作演示:
Truncate操作演示:
注意:delete删除,id不会重置!而使用truncate操作,id会重置因为它删除了表结构,然后再创建一张一模一样的表,所以再次插入数据的数据的时候从1开始。
4、查询操作
select [distinct] * | 列名,列名 from 表名 [where 条件];
a、查询所有
select * from 表名;
b、查询特定字段名
select 列名,列名 from 表名;
c、使用别名查询所有
select * from 表名 as 别名;
select * from 表名 别名;
d、使用列别名查询表
select 列名 as 列别名 from 表名;
select 列名 列别名 from 表名;
e、查询某列信息去掉重复值
select distinct(列名) from 表名;
f、对整形数据的列进行加上特定值,并进行显示
select 列名+10 from 表名;
g、按照特定顺序进行显示,如价格按照(升序、降序)显示
select * from 表名 order by price asc;
select * from 表名 order by price desc;
h、显示某一字段包含特定字符串的数据
select * from 表名 where 列名 like ‘%特定字符串%’
i、聚合函数
(1)、获取所有的商品价格的总和
select sum(price) from 表名;
(2)、获取所有商品的平均价格
select avg(price) from 表名;
(3)、获取所有商品的个数
select count(*) from 表名;
j、分组操作
(1)、根据某一字段分组,分组后统计每组个数
select 列名,count(*) from 表名 group by 列名; //一般这两个列名为同一列名
(2)、根据某一字段分组,分组统计每组商品的平均价格,并且平均价格大于20。
select 列名,avg(price) from 表名 gruop by 列名 having avg(price)>20;
使用Limit关键字进行查询操作(查询第几页,每页显示数量)
select * from 表名 limit 6,3;
指要查询(第几页-1)乘以第二个参数),
即 (3-1)*3=6;
l、查询总结
select 一般在它后面的内容都是要查询的字段
from 要查询的表
where 查询条件
group by 分组
having 分组后带有条件只能使用having
order by 排序,它必须放在最后面,