mysql 版本:5.5.49
mysql安装见
https://blog.csdn.net/qq_36335126/article/details/103981212
本机连接数据库命令mysql -u user -p(即,连接的主机、用户名和使用的密码)root/admin
非本机连接数据库命令mysql -h host -u user -p(即,连接的主机、用户名和使用的密码)root/admin
一、 对数据库的操作
1. 创建一个库
create database 库名
create database 库名 character set 编码
创建带有编码的
查看编码:
2. 删除一个库
drop database 库名
3. 使用库
use 库名
4.查看当前正在操作的库
二、对数据库表的操作
1.创建一张表
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
字段名 类型(长度) [约束]
);
2.查看数据库表
创建完成后,我们可以查看数据库表
show tables;
查看表的结构
desc 表名
3.删除一张表
drop table 表名
4.修改表
4.1 添加一列
alter table 表名 add 字段名 类型(长度) [约束]
4.2 修改列的类型(长度、约束)
alter table 表名 modify 要修改的字段名 类型(长度) [约束]
4.3 修改列的列名
alter table 表名 change 旧列名 新列名 类型(长度) [约束]
4.4 删除表的列
alter table 表名 drop 列名
4.5 修改表名
rename table 表名 to 新表名
4.6 修改表的字符集
alter table 表名 character set 编码
查看当前表的编码
三、对数据库表记录进行操作(修改)
1.插入记录
insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……)
insert into 表名 values(值1,值2,值3……)
1.1 插入数据中文乱码问题解决办法
方式一:【不建议!】
直接修改数据库安装目录里面的my.ini文件的第57行
方式二:
set names gbk;
2.修改表记录
2.1 不带条件的
update 表名 set 字段名=值, 字段名=值, 字段名=值……
它会将该列的所有记录都更改
2.2 带条件的
update 表名 set字段名=值, 字段名=值, 字段名=值…… where 条件
3.删除表记录
3.1 带条件的
delete from 表名 where 条件
注意,删除后,uid不会重置!
3.2.不带条件的
先准备数据
insert into tbl_user values(null,’老王’,’666’);
删除操作
delete from 表名;
3.3 面试题
说说delete与truncate的区别?
delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。
truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。
Delete操作演示:
Truncate操作演示
注意:delete删除,uid不会重置!而使用truncate操作,uid会重置(因为它删除了表结构,然后再创建一张一模一样的表,所以再次插入数据的数据的时候从1开始。)
4.查询操作
语法:
select [distinct] *| 列名,列名 from 表名 [where条件]
4.1 简单查询
1.查询所有商品
select * from product;
2. 查询商品名和商品价格
select pname,price from product;
3.查询所有商品信息使用表别名
select * from product as p;
4.查询商品名,使用列别名
select pname as p from product
5.去掉重复值(按照价格)
select distinct(price) from product;
先准备数据:
insert into product values (null,‘李士雪’,38,null);
6.将所有的商品的价格+10进行显示
select pname,price+10 from product;
4.2 条件查询
1.查询商品名称为"左慈"的商品信息
2.查询价格>60元的所有商品信息
3.查询商品名称含有"士"字的商品信息
4.查询商品id在(3,6,9)范围内的所有商品信息
5.查询商品名称含有"士"字并且id为6的商品信息
6.查询id为2或者6的商品信息
4.3 排序
1.查询所有的商品,按价格进行排序(升序、降序)
2.查询名称有"士"的商品信息并且按照价格降序排序
4.4 聚合函数
1.获得所有商品的价格的总和
2.获得所有商品的平均价格
3.获得所有商品的个数
注意:聚合函数针对的是某一列数据的处理
行查询
SELECT 列1+ 列2 + 列3 …… + 列N AS Total FROM 表
SELECT sum(列1+ 列2 + 列3 …… + 列N) AS Total FROM 表
查询 列1, 列2 , 列3 …… ,列N的和的最大值那一行的所有值
SELECT 列1, 列2 , 列3 …… ,列N , 列1+ 列2 + 列3 …… + 列N AS Total FROM 表 WHERE Total = MAX(Total )
求单列最大的那一行数据
mybatis传参数值 parameter 为String类型 ,传值为列名,如列1
SELECT 列1, 列2 , 列3 …… ,列N FROM 表 WHERE ${parameter} = MAX(${parameter})
注意:用${}是因为这样可以把字符串拼接过来,而#{}传过来的值为‘parameter’
#{} 占位符
${} 拼接符
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字段分组,分组后统计商品的个数。
2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元。
4.6 分页操作
分页查询(limit 起始下标,每页显示的数据量):
#goods表中有7条数据记录,每页显示3条,总共可以分3页
#获取第一页数据
SELECT * FROM goods LIMIT 0,3;
#获取第二页数据
SELECT * FROM goods LIMIT 3,3;
#获取第三页的数据
SELECT * FROM goods LIMIT 6,3;
SELECT * FROM goods LIMIT (pageNo-1)*pageSize,pageSize;
4.7 查询总结
select 一般在的后面的内容都是要查询的字段
from 要查询到表
where
group by
having 分组后带有条件只能使用having
order by 它必须放到最后面