一、安装mysql
如图检测当前mysql版本为5.5.49,输入命令 mysql -u root -p
进入数据库。
二、操作数据库
-
创建并显示当前数据库
删除一个库
drop database 库名;-
创建带有编码的数据库并查看具体信息
使用库
use 库名;查看当前正在操作的库
select database();
三、操作数据库表
创建一张表
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
字段名 类型(长度) [约束]
);查看数据库表
创建完成后,我们可以查看数据库表
show tables;
查看表的结构
desc 表名;
删除一张表
drop table 表名;修改表
添加一列:
alter table 表名 add 字段名 类型(长度) [约束];
修改列的类型(长度、约束):
alter table 表名 modify 要修改的字段名 类型(长度) [约束];
修改列的列名:
alter table 表名 change 旧列名 新列名 类型(长度) [约束];
删除表的列:
alter table 表名 drop 列名;
修改表名:
rename table 表名 to 新表名;
修改表的字符集:
alter table 表名 character set 编码;
查看当前表的编码:
show create table 表名;
四、对数据库表记录进行操作(修改)
- 插入记录
方式1:
insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……)-
方式2:
insert into 表名 values(值1,值2,值3……)
注意:char的长度为2则只能存储两个字母 -
修改表记录
- 不带条件的:
update 表名 set 字段名=值, 字段名=值, 字段名=值…… -
带条件的
update 表名 set字段名=值, 字段名=值, 字段名=值…… where 条件
- 不带条件的:
注意:插入数据中文乱码问题解决办法
set names gbk;
- 删除表记录
- 带条件的
delete from 表名 where 条件
注意,删除后,uid不会重置! - 不带条件的(直接删除整张表)
delete from 表名;
- 带条件的
注意:delete与truncate的区别:
delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。
truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回,而且使用truncate操作,**uid会重置 **
五、查询操作
select [distinct] *| 列名,列名 from 表名 [where条件]
-
简单查询
- 查询所有商品
select * from product; - 查询商品名和商品价格
select pname,price from product; - 查询所有商品信息使用表别名(as可以省略)
select * from product as p; - 查询商品名,使用列别名
select pname as p from product - 去掉重复值(按照价格)
select distinct(price) from product; - 将所有的商品的价格+10进行显示
select pname,price+10 from product;
- 查询所有商品
-
条件查询
- 查询商品名称为某值的商品信息
select * from 表名 where 字段名='值' - 查询价格>60的所有商品信息
select * from 表名 where price>60; - 查询商品名称含有"xx字"的商品信息
select * from 表名 where pname like 'x字x'; - 查询商品id在(3,6,9)范围内的所有商品信息
select * from 表名 where pid like in(3,6,9);
- 查询商品名称为某值的商品信息
排序
查询所有的商品,按价格进行排序(升序/降序)
select * from product order by price asc/desc;聚合函数
获得所有商品的价格的总和
select sun(price) from product;获得所有商品的平均价格
select avg(price) from product;获得所有商品的个数
select count(price) from product;获得所有商品的平均价格
-
分组操作
- 添加分类id (alter table product add cid varchar(32);)
- 初始化数据
update product set cid='1';
update product set cid='2' where pid in (5,6,7);
1.根据cid字段分组,分组后统计商品的个数
2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。
注意:分组之后条件不能使用where要使用having