读者信息表
/*算术运算符 计算store列的数据*/
select store,store+1,store-1,store/2,store*2,store%2 from bookinfo;
/*查看读者信息表*/
select*from readerinfo;
/*读者的身份证号 姓名 电话 余额*/
select card_id ,name,tel,balance from readerinfo where balance-200<=0;
/*查看读者信息表中,余额大于200的读者信息*/
select * from readerinfo where balance>200;
/*查看读者信息表中,余额不等于300的读者信息*/
select * from readerinfo WHERE balance !=300;
select * from readerinfo WHERE balance <>300;
/*查看读者信息表中,年龄不为空的读者信息*/
select *from readerinfo where age is not null;
/*查看读者信息表中,余额在200-400之间的读者信息*/
select *from readerinfo WHERE balance between 200 and 400;
/*查看读者信息表中,查看 DD AA LL 的读者信息*/
select *from readerinfo where name in('DD','AA','LL');
/*查看读者信息表中,名字是两个字的 姓A的读者信息 like是模糊查询 可以看作 像。。。 _和%都是通配符*/
select *from readerinfo where name like 'A_';
select *from readerinfo where name like 'D%';
/*查看读者信息表中,查看手机号是564 开头的读者信息*/
select *from readerinfo where tel like '564%';
图书信息表
/*查询图书信息表 查询书的价格大于50并且库存小于5的图书 信息*/
select *from bookinfo where price>50 and store<5;
/*查询图书信息表 查询价格大于40或者 出版社为'你好' 的信息*/
select *FROM bookinfo WHERE price>40 or press = '你好';
/*查询图书信息表,查询书的价格不在40-50之间的图书信息*/
select *from bookinfo where price not between 30 and 50;
ceil :装天花板,装船内格子板;
floor :地面,地板; 楼层; 底部; 议员席;
/*获取整数的函数举例 */
select ceil(30.55);//进行四舍五入
select floor(30.55);//获取整数 不进行四舍五入
round :大约; 绕过,环绕; (表示位置)在…四周; 附近;
第三个:-1位后,是29.55四舍五入后=30
/*四舍五入*/
select round(30.55),round(30.55,1),round(30.55,0),round(30.55,-1),round(30.55,-2);
truncate :缩短;
第三个:截断 -1即 28中的8 不要后 =0 所以=20
/*截断函数*/
select truncate(28.55,1),truncate(28.55,0),truncate(28.55,-1);
/*取模函数*/
select mod(11,2);
-- 图书信息表 图书编号 书名 对价格四舍五入到整数位
select book_id,book_name,price,round(price) from bookinfo;
-- 查询图书编号为偶数的
select * from bookinfo where mod(book_id,2)=0;
concat :连接两个字符串
concat_ws :第一个参数作为字符串分割符 连接参数2和参数3字符串
-- 字符串连接 举例
select concat('今天是','一个','天气');
-- 字符串连接 有分割符
select concat_ws('-','mysql','sqlserver');
-- 查看图书信息表 将想要查看的数据 连接起来
select concat_ws('-',book_id,book_copy_id,book_name,author,price,store,email,press,pubdate)
from bookinfo;
lower :小写
upper :大写
-- 字母转化小写举例
select lower('JFFJKFKFKF');
-- 字母转化为大写
select upper('kjfjdhgjfdngj');
-- 将图书信息表中的姓名 作者 列改为小写显示
select book_name,lower(book_name),author,lower(author) from bookinfo;
length :长度
-- 求长度 求读者信息表 的身份证 号的长度
select card_id,length(card_id) from readerinfo;
left trim :删除左侧空格
right trim :删除右侧空格
trim : 删除左右两侧空格
-- 插入一个有空格的作者
insert into bookinfo(book_id,author) values(4,' MM ');
-- 删除空格 左空格
select ltrim(' OO W');
-- 删除空格 右空格
select rtrim(' OOW ')
-- 删除空格 左右空格 并计算字符串长度
select trim(' 123 '),length(' 123 ');
-- 删除图书信息表中的 作者列的 空格
select author,trim(author) from bookinfo;
substring :截取子字符串
-- 截取字符串 从左到右
select substring('hello world',1,5);//hello
-- 截取字符串 从右到左
select substring('hello world',-4,3);//orl
-- 截取图书信息表中的出版社
select press,substring(press,3,3) from bookinfo;
left :从左到右获取字符串个数
right :从右到左获取字符串个数
-- 获取指定的长度的字符串
select left('hello world',5),right('hello world',5),right('111111111111111111111',0);
replace :将参数1中的字符串 分出一部分作为参数2,将参数3的字符串替换参数2
-- 替换函数
select replace('123456789','123','sql');//sql456789
-- 替换图书信息表中的作者-》TMD
select author,replace(author,'MD','DD') from bookinfo;
format:格式化
-- 格式化 函数
select format(12333.2553,2),format(123.5,2),format(48348.98889,0);
-- 图书信息表 查询价格 整数
select price,format(price,0) from bookinfo;
curdate/current_date:当前的日期 年月日
-- 查询当前的日期
select curdate(),CURRENT_DATE(),curdate()+0;
curtime/current_time:当前的时间
-- 获取当前的系统时间
select curtime(),current_time(),curtime()+0;
new/sysdate:日期+时间
-- 获取系统时间和日期
select sysdate(),now();
date_add:日期加 interval 5 month :间隔5个月
-- 日期加法运算
select date_add('2022-10-10',INTERVAL 5 MONTH);
-- 日期加法运算
select date_add('2022-10-10',INTERVAL 5 day);
datediff :两个日期不同的间隔天数
select datediff('2022-12-31','2022-1-1');
date_format:日期格式
-- 演示各种日期格式
select date_format('2022-05-09','%Y-%m-%d'),
date_format('2022-05-09','%Y-%M-%d'),date_format('2022-05-09','%Y-%c-%e'),
date_format('2022-05-09','%y-%c-%e'),date_format('2022-05-09','%Y-%b-%e');
-- 身份证 52214685259788的用户 今天借了一本图书编号=0的图书 先插入这条数据
insert into borrowinfo values('20221010','52214685259788',curdate(),date_add(curdate(),interval 1 month),'否');
select *from borrowinfo;
-- 更新图书信息表的库存 查看图书编号=0的图书
select *from bookinfo where book_id =0;
update bookinfo set store =store-1 where book_id =0;
-- 更新读者信息表的余额 先插入这条数据
insert into readerinfo values('52214685259788','1','yourfather','女',33,'223333',1000.000);
-- 查询所借图书的价格
select price from bookinfo where book_id =0;
update readerinfo set balance = balance - 45.50*0.05 where card_id =52214685259788;
-- 查看余额
select balance from readerinfo where card_id =52214685259788;
-- 查看图书信息表 要求出版日期如:201103 这样的形式显示
select book_id,DATE_FORMAT(pubdate,'%Y%m') from bookinfo;
old_columnname as new_columnname
-- 求图书信息表 所有图书的平均价格
select avg(price) from bookinfo;
-- 所有图书的总价格
select sum(price) from bookinfo;
-- 最大库存
select max(store) from bookinfo;
-- 最小库存
select min(store) from bookinfo;
-- 求图书信息表有多少种图书
select count(book_name) from bookinfo;
-- 按类别book_copy_id进行分组 ,查询每种类别下有多少种book_id图书以及每种类别图书的store库存总和
select book_copy_id as '图书类别',count(book_id) as '图书种类',sum(store) as '库存总和'
from bookinfo group by book_copy_id;
【1】version :版本号
【2】connection_id :连接的id
【3】database/schema :数据库名
【4】user:登录的用户名
-- 查看 数据库的 版本号
select version();
-- 查看当前登录的用户
select user();
-- 当前连接的次数
select connection_id();
-- 当前连接的数据库名
select schema(),database();
【1】MD5:加密字符串
【2】password:加密
-- 加密数据表 中的列
select md5(name) from test;
-- 创建临时数据表
create table md5_tab(
username varchar(10),
password varchar(35)
);
-- 插入数据 以加密方式加密密码
alter table md5_tab change password pw varchar(30);
-- 插入两个用户
INSERT into md5_tab VALUES('ps',MD5('ps'));
INSERT into md5_tab VALUES('kali',MD5('kali'));
-- 查看数据
select *from md5_tab;
-- 查看指定的用户的名字和密码
select * from md5_tab where username = 'ps' or pw=MD5('ps');
使用password函数修改用户密码 密码存储在mysql数据库 表
set password = password('root');
-- 查看已经修改的密码
select User,authentication_string from user;
== mysql学习继续,下一章我们将学习mysql子查询,等我猿 :/==