一、对数据库的操作
1.创建一个库
create database 库名
create database 库名 character set 编码
![](https://i-blog.csdnimg.cn/blog_migrate/824632c5a5aa06431e10347424610a4d.png)
创建带有编码的
![](https://i-blog.csdnimg.cn/blog_migrate/5199df6f8b027fb5cdbeb52ce2056ece.png)
查看编码:
![](https://i-blog.csdnimg.cn/blog_migrate/c7be6ef4bca164d6b5b944b504788209.png)
2.删除一个库
drop database 库名
![](https://i-blog.csdnimg.cn/blog_migrate/109d35bd37543910b2de5b47b1e1af1d.png)
3.使用库
use 库名
![](https://i-blog.csdnimg.cn/blog_migrate/f2453ec21bfc25cce551a03e62947106.png)
4.查看当前正在操作的库
![](https://i-blog.csdnimg.cn/blog_migrate/a674ab04fefac0d1929f3bb68b829240.png)
二、对数据库表的操作
1.创建一张表
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
字段名 类型(长度) [约束]
);
![](https://i-blog.csdnimg.cn/blog_migrate/8fc02d40ce5bb8aadf29b66af9b61294.png)
2.查看数据库表
创建完成后,我们可以查看数据库表
show tables;
![](https://i-blog.csdnimg.cn/blog_migrate/686d2326b7bb39787afac1a0545ba0da.png)
查看表的结构
desc 表名
![](https://i-blog.csdnimg.cn/blog_migrate/9a567d43d1404e640e7a3dc6e17ec03f.png)
3.删除一张表
drop table 表名
![](https://i-blog.csdnimg.cn/blog_migrate/4946d3a4383531d9741f9e5f1181b7bc.png)
4.修改表
4.1 添加一列
alter table 表名 add 字段名 类型(长度) [约束]
![](https://i-blog.csdnimg.cn/blog_migrate/974481a4f69adac2c043018f4e1f5311.png)
4.2 修改列的类型(长度、约束)
alter table 表名 modify 要修改的字段名 类型(长度) [约束]
![](https://i-blog.csdnimg.cn/blog_migrate/10930bb49975cfee1e90f786584e4301.png)
4.3 修改列的列名
alter table 表名 change 旧列名 新列名 类型(长度) [约束]
![](https://i-blog.csdnimg.cn/blog_migrate/a3bd8d1347e0490d18b741351ec0e7bd.png)
4.4 删除表的列
alter table 表名 drop 列名
![](https://i-blog.csdnimg.cn/blog_migrate/a07940f4bf732b4725164597b584ff15.png)
4.5 修改表名
rename table 表名 to 新表名
![](https://i-blog.csdnimg.cn/blog_migrate/909fe2d52db37f328d169e055fa023cf.png)
4.6 修改表的字符集
alter table 表名 character set 编码
![](https://i-blog.csdnimg.cn/blog_migrate/11c8cef9b12cd013cfdbf8055fc40867.png)
查看当前表的编码
![](https://i-blog.csdnimg.cn/blog_migrate/02ce657289a30bceb4e3ba92d31870ef.png)
三、对数据库表记录进行操作(修改)
1.插入记录
insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……)
![](https://i-blog.csdnimg.cn/blog_migrate/b65c70dce92f9c395162aec12751c107.png)
insert into 表名 values(值1,值2,值3……)
![](https://i-blog.csdnimg.cn/blog_migrate/8138003973153175c5d5f008a55ae892.png)
1.1 插入数据中文乱码问题解决办法
方式一:【不建议!】
直接修改数据库安装目录里面的my.ini文件的第57行
![](https://i-blog.csdnimg.cn/blog_migrate/de5fb6f262005ba4cf8b1704ca2ca64a.png)
方式二:
set names gbk;
![](https://i-blog.csdnimg.cn/blog_migrate/68a66cf4ff22a5fd2d58fec499384ec2.png)
2.修改表记录
2.1 不带条件的
2.2 带条件的
update 表名 set字段名=值, 字段名=值, 字段名=值…… where 条件
![](https://i-blog.csdnimg.cn/blog_migrate/1b10cf3e492be2f2928d237b08d9211a.png)
3.删除表记录
3.1 带条件的
delete from 表名 where 条件
![](https://i-blog.csdnimg.cn/blog_migrate/adb6b248ff0c1678c5b305b48502687c.png)
注意,删除后,uid不会重置!
3.2.不带条件的
先准备数据
insert into tbl_user values(null,’老王’,’666’);
删除操作
delete from 表名;
![](https://i-blog.csdnimg.cn/blog_migrate/b930debd75ad80fe3536a3a956ccf7c9.png)
3.3 面试题
说说delete与truncate的区别?
delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。
truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。
Delete操作演示:
![](https://i-blog.csdnimg.cn/blog_migrate/163f0c31252fb8198826880be5d0a0c8.png)
Truncate操作演示
![](https://i-blog.csdnimg.cn/blog_migrate/e34545af361c64de86256c3081715b9d.png)
注意:delete删除,uid不会重置!而使用truncate操作,uid会重置[因为它删除了表结构,然后再创建一张一模一样的表,所以再次插入数据的数据的时候从1开始。]
4.查询操作
语法:
select [distinct] *| 列名,列名 from 表名 [where条件]
4.1 简单查询
1.查询所有商品
select * from product;
![](https://i-blog.csdnimg.cn/blog_migrate/af1d59b3e47ed3c4093676a07aaed5ff.png)
2. 查询商品名和商品价格
select pname,price from product;
![](https://i-blog.csdnimg.cn/blog_migrate/71880b0a374d4ee3dc104a00608730fe.png)
3.查询所有商品信息使用表别名
select * from product as[可以省略] p;
![](https://i-blog.csdnimg.cn/blog_migrate/90d83835aa6464ee885ee3a91c55939f.png)
4.查询商品名,使用列别名
select pname as[可以省略] p from product
![](https://i-blog.csdnimg.cn/blog_migrate/531160514a22de77245735bda2a89fbf.png)
5.去掉重复值(按照价格)
select distinct(price) from product;
先准备数据:
insert into product values (null,'李士雪',38,null);
![](https://i-blog.csdnimg.cn/blog_migrate/b268ed5b57dd41927cfe33b82b632348.png)
6.将所有的商品的价格+10进行显示
select pname,price+10 from product;
![](https://i-blog.csdnimg.cn/blog_migrate/e3a206d7e1a38640f81778d0e387dc84.png)
4.2 条件查询
1.查询商品名称为"左慈"的商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/d33cc7b3ee77872b444a7d1bc533b18a.png)
2.查询价格>60元的所有商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/f2c2dddaa2c9b91689127053ae690c4a.png)
3.查询商品名称含有"士"字的商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/06bbe6da3e4fc2588d597b9025438195.png)
4.查询商品id在(3,6,9)范围内的所有商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/e3119aca53dc7a554a3e834d894896f6.png)
5.查询商品名称含有"士"字并且id为6的商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/02beb069446b50dc9d4f845e3774d1f5.png)
6.查询id为2或者6的商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/d894671dd1222c9624a27879cd834b7b.png)
4.3 排序
1.查询所有的商品,按价格进行排序(升序、降序)
![](https://i-blog.csdnimg.cn/blog_migrate/67743ed4e7622b274b92f18368222268.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cb429bfe6821330cf6816710ee2e8ada.png)
2.查询名称有"士"的商品信息并且按照价格降序排序
![](https://i-blog.csdnimg.cn/blog_migrate/a1574349e734a7c4d7dc9d0500c5c074.png)
4.4 聚合函数
1.获得所有商品的价格的总和
![](https://i-blog.csdnimg.cn/blog_migrate/1caaf677be41ab80d3037f5da8c9f159.png)
2.获得所有商品的平均价格
![](https://i-blog.csdnimg.cn/blog_migrate/d7db7df3529fc233addee0890f61b909.png)
3.获得所有商品的个数
![](https://i-blog.csdnimg.cn/blog_migrate/69a51eead9ade4e77ad338c84f606b8c.png)
4.5 分组操作
1.添加分类id (alter table product add cid varchar(32);)
2.初始化数据
update product set cid='1';
update product set cid='2' where pid in (5,6,7);
1.根据cid字段分组,分组后统计商品的个数。
![](https://i-blog.csdnimg.cn/blog_migrate/f512a09d81ecfb779df0b7df096b0601.png)
2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。
![](https://i-blog.csdnimg.cn/blog_migrate/6316eb8b914ca0ac4a5e67e3fc46310d.png)
1.创建一个库
create database 库名
create database 库名 character set 编码
![](https://i-blog.csdnimg.cn/blog_migrate/824632c5a5aa06431e10347424610a4d.png)
创建带有编码的
![](https://i-blog.csdnimg.cn/blog_migrate/5199df6f8b027fb5cdbeb52ce2056ece.png)
查看编码:
![](https://i-blog.csdnimg.cn/blog_migrate/c7be6ef4bca164d6b5b944b504788209.png)
2.删除一个库
drop database 库名
![](https://i-blog.csdnimg.cn/blog_migrate/109d35bd37543910b2de5b47b1e1af1d.png)
3.使用库
use 库名
![](https://i-blog.csdnimg.cn/blog_migrate/f2453ec21bfc25cce551a03e62947106.png)
4.查看当前正在操作的库
![](https://i-blog.csdnimg.cn/blog_migrate/a674ab04fefac0d1929f3bb68b829240.png)
二、对数据库表的操作
1.创建一张表
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
字段名 类型(长度) [约束]
);
![](https://i-blog.csdnimg.cn/blog_migrate/8fc02d40ce5bb8aadf29b66af9b61294.png)
2.查看数据库表
创建完成后,我们可以查看数据库表
show tables;
![](https://i-blog.csdnimg.cn/blog_migrate/686d2326b7bb39787afac1a0545ba0da.png)
查看表的结构
desc 表名
![](https://i-blog.csdnimg.cn/blog_migrate/9a567d43d1404e640e7a3dc6e17ec03f.png)
3.删除一张表
drop table 表名
![](https://i-blog.csdnimg.cn/blog_migrate/4946d3a4383531d9741f9e5f1181b7bc.png)
4.修改表
4.1 添加一列
alter table 表名 add 字段名 类型(长度) [约束]
![](https://i-blog.csdnimg.cn/blog_migrate/974481a4f69adac2c043018f4e1f5311.png)
4.2 修改列的类型(长度、约束)
alter table 表名 modify 要修改的字段名 类型(长度) [约束]
![](https://i-blog.csdnimg.cn/blog_migrate/10930bb49975cfee1e90f786584e4301.png)
4.3 修改列的列名
alter table 表名 change 旧列名 新列名 类型(长度) [约束]
![](https://i-blog.csdnimg.cn/blog_migrate/a3bd8d1347e0490d18b741351ec0e7bd.png)
4.4 删除表的列
alter table 表名 drop 列名
![](https://i-blog.csdnimg.cn/blog_migrate/a07940f4bf732b4725164597b584ff15.png)
4.5 修改表名
rename table 表名 to 新表名
![](https://i-blog.csdnimg.cn/blog_migrate/909fe2d52db37f328d169e055fa023cf.png)
4.6 修改表的字符集
alter table 表名 character set 编码
![](https://i-blog.csdnimg.cn/blog_migrate/11c8cef9b12cd013cfdbf8055fc40867.png)
查看当前表的编码
![](https://i-blog.csdnimg.cn/blog_migrate/02ce657289a30bceb4e3ba92d31870ef.png)
三、对数据库表记录进行操作(修改)
1.插入记录
insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……)
![](https://i-blog.csdnimg.cn/blog_migrate/b65c70dce92f9c395162aec12751c107.png)
insert into 表名 values(值1,值2,值3……)
![](https://i-blog.csdnimg.cn/blog_migrate/8138003973153175c5d5f008a55ae892.png)
1.1 插入数据中文乱码问题解决办法
方式一:【不建议!】
直接修改数据库安装目录里面的my.ini文件的第57行
![](https://i-blog.csdnimg.cn/blog_migrate/de5fb6f262005ba4cf8b1704ca2ca64a.png)
方式二:
set names gbk;
![](https://i-blog.csdnimg.cn/blog_migrate/68a66cf4ff22a5fd2d58fec499384ec2.png)
2.修改表记录
2.1 不带条件的
update 表名 set 字段名=值, 字段名=值, 字段名=值……
2.2 带条件的
update 表名 set字段名=值, 字段名=值, 字段名=值…… where 条件
![](https://i-blog.csdnimg.cn/blog_migrate/1b10cf3e492be2f2928d237b08d9211a.png)
3.删除表记录
3.1 带条件的
delete from 表名 where 条件
![](https://i-blog.csdnimg.cn/blog_migrate/adb6b248ff0c1678c5b305b48502687c.png)
注意,删除后,uid不会重置!
3.2.不带条件的
先准备数据
insert into tbl_user values(null,’老王’,’666’);
删除操作
delete from 表名;
![](https://i-blog.csdnimg.cn/blog_migrate/b930debd75ad80fe3536a3a956ccf7c9.png)
3.3 面试题
说说delete与truncate的区别?
delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。
truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。
Delete操作演示:
![](https://i-blog.csdnimg.cn/blog_migrate/163f0c31252fb8198826880be5d0a0c8.png)
Truncate操作演示
![](https://i-blog.csdnimg.cn/blog_migrate/e34545af361c64de86256c3081715b9d.png)
注意:delete删除,uid不会重置!而使用truncate操作,uid会重置[因为它删除了表结构,然后再创建一张一模一样的表,所以再次插入数据的数据的时候从1开始。]
4.查询操作
语法:
select [distinct] *| 列名,列名 from 表名 [where条件]
4.1 简单查询
1.查询所有商品
select * from product;
![](https://i-blog.csdnimg.cn/blog_migrate/af1d59b3e47ed3c4093676a07aaed5ff.png)
2. 查询商品名和商品价格
select pname,price from product;
![](https://i-blog.csdnimg.cn/blog_migrate/71880b0a374d4ee3dc104a00608730fe.png)
3.查询所有商品信息使用表别名
select * from product as[可以省略] p;
![](https://i-blog.csdnimg.cn/blog_migrate/90d83835aa6464ee885ee3a91c55939f.png)
4.查询商品名,使用列别名
select pname as[可以省略] p from product
![](https://i-blog.csdnimg.cn/blog_migrate/531160514a22de77245735bda2a89fbf.png)
5.去掉重复值(按照价格)
select distinct(price) from product;
先准备数据:
insert into product values (null,'李士雪',38,null);
![](https://i-blog.csdnimg.cn/blog_migrate/b268ed5b57dd41927cfe33b82b632348.png)
6.将所有的商品的价格+10进行显示
select pname,price+10 from product;
![](https://i-blog.csdnimg.cn/blog_migrate/e3a206d7e1a38640f81778d0e387dc84.png)
4.2 条件查询
1.查询商品名称为"左慈"的商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/d33cc7b3ee77872b444a7d1bc533b18a.png)
2.查询价格>60元的所有商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/f2c2dddaa2c9b91689127053ae690c4a.png)
3.查询商品名称含有"士"字的商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/06bbe6da3e4fc2588d597b9025438195.png)
4.查询商品id在(3,6,9)范围内的所有商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/e3119aca53dc7a554a3e834d894896f6.png)
5.查询商品名称含有"士"字并且id为6的商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/02beb069446b50dc9d4f845e3774d1f5.png)
6.查询id为2或者6的商品信息
![](https://i-blog.csdnimg.cn/blog_migrate/d894671dd1222c9624a27879cd834b7b.png)
4.3 排序
1.查询所有的商品,按价格进行排序(升序、降序)
![](https://i-blog.csdnimg.cn/blog_migrate/67743ed4e7622b274b92f18368222268.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cb429bfe6821330cf6816710ee2e8ada.png)
2.查询名称有"士"的商品信息并且按照价格降序排序
![](https://i-blog.csdnimg.cn/blog_migrate/a1574349e734a7c4d7dc9d0500c5c074.png)
4.4 聚合函数
1.获得所有商品的价格的总和
![](https://i-blog.csdnimg.cn/blog_migrate/1caaf677be41ab80d3037f5da8c9f159.png)
2.获得所有商品的平均价格
![](https://i-blog.csdnimg.cn/blog_migrate/d7db7df3529fc233addee0890f61b909.png)
3.获得所有商品的个数
![](https://i-blog.csdnimg.cn/blog_migrate/69a51eead9ade4e77ad338c84f606b8c.png)
4.5 分组操作
1.添加分类id (alter table product add cid varchar(32);)
2.初始化数据
update product set cid='1';
update product set cid='2' where pid in (5,6,7);
1.根据cid字段分组,分组后统计商品的个数。
![](https://i-blog.csdnimg.cn/blog_migrate/f512a09d81ecfb779df0b7df096b0601.png)
2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。
![](https://i-blog.csdnimg.cn/blog_migrate/6316eb8b914ca0ac4a5e67e3fc46310d.png)