SELECT * FROM `数据1`;
-- 1.新建一个 ”作业“ 数据库
-- CREATE DATABASE 作业;
-- 2. 数据1.txt 导入数据库
-- 把V3 字段转换为字符串
ALTER TABLE `数据1` MODIFY v3 VARCHAR (10);
-- 把v1 为 786.1 的 改为 790
UPDATE `数据1` SET v1 ='790' WHERE v1='786.1';
--
-- 3. 把 数据.xlsx 导入到数据库
-- 删除用户id大于 8 的记录
DELETE FROM 数据 WHERE 用户id>8;
-- 把用户id 为 3的 商品数加一倍
SELECT * FROM 数据 ;
SELECT 商品数*2 FROM 数据 WHERE 用户id ='3';
-- 新加一个毛利列
ALTER TABLE 数据 ADD 毛利 FLOAT;
SELECT * FROM 数据;
-- 计算毛利列的值
DESC 数据;
ALTER TABLE 数据 drop 总金额折扣;
ALTER TABLE 数据 MODIFY 总金额 FLOAT;
ALTER TABLE 数据 MODIFY 折扣 FLOAT;
DELETE FROM 数据 WHERE 日期 is NULL;
UPDATE 数据 set 毛利 = 总金额*折扣 ;
--
-- 4. 新建test 表
-- 字段为 学校 班级 地区 人数
-- 添加新记录
-- AAA 111 北京 18
-- AAA 115 天津
CREATE TABLE test (
学校 VARCHAR(10),
班级 VARCHAR(10)
地区 VARCHAR(10),
人数 int
);
INSERT INTO test(学校,班级,地区,人数) VALUES('AAA','111','北京',18),('AAA' , '115' , '天津',NULL);
DELETE FROM test WHERE 地区='北京';
-- 北京地区的 人数改为20,班级改为 118
UPDATE test set 人数=20,班级='118' WHERE 地区='北京';
-- 天津地区的 学校改为 南开
UPDATE test set 学校='南开' WHERE 地区='天津';
------------
--
-- #贷款表,客户隶属表
--
-- # 删除客户隶属表的辅助列
ALTER TABLE 客户隶属表 DROP 辅助列;
--
-- #大区 ,借款类型 无缝连接
SELECT DISTINCT(CONCAT(大区,借款类型) )FROM 贷款表;
--
-- #借款类型 所属销售 以 |线分割连接
SELECT DISTINCT(CONCAT( 借款类型,'|',所属销售)) FROM 贷款表;
--
-- #所属销售中 "文" 字所在的位置(通过三个函数查找)
SELECT 所属销售,LOCATE('文',所属销售),POSITION('文' in 所属销售),INSTR(所属销售,'文') FROM 贷款表;
--
-- #脱敏手机中 5的位置(客户隶属表)
SELECT 脱敏手机, LOCATE('5',脱敏手机) FROM 贷款表 ;
--
-- #借款类型的字符串长度,字节长度
SELECT 借款类型,char_LENGTH(借款类型) FROM 贷款表;
--
-- #精英A类 和 精英B类 都改为精英类
UPDATE 贷款表 set 借款类型='精英类' WHERE 借款类型='精英A类' or 借款类型='精英B类';
--
-- #统计个借款类型的人数,平均金额,最大金额,最小金额
SELECT 借款类型,COUNT(借款类型),AVG(金额),max(金额),min(金额) FROM 贷款表 GROUP BY 借款类型;
DESC 贷款表;
--
-- #统计个借款类型的人数 显示格式为
-- 公积金类 精英类 工薪类
-- 人数 人数 人数
SELECT sum(if( 借款类型= '公积金类', 1 ,0))as 公积金类 ,
sum(if( 借款类型= '精英类', 1 ,0))as 精英类 ,
sum(if( 借款类型= '工薪类', 1 ,0)) as 工薪类
FROM 贷款表 ;
-- #按大区统计平均金额,最大金额,最小金额
-- #按大区统计借款类型的人数 显示格式为
-- 公积金类 精英类 工薪类
-- 华西 人数 人数 人数
-- 华北 人数 人数 人数
-- .
-- .
SELECT 大区, sum(if( 借款类型= '公积金类', 1 ,0))as 公积金类 ,
sum(if( 借款类型= '精英类', 1 ,0))as 精英类 ,
sum(if( 借款类型= '工薪类', 1 ,0)) as 工薪类
FROM 贷款表 WHERE 大区 in('华西','华北' ) GROUP BY 大区;
-- # 列出每位销售的客户名(客户隶属表)
SELECT 所属销售,GROUP_CONCAT(DISTINCT 脱敏姓名)脱敏姓名 FROM 贷款表 GROUP BY 所属销售;
--
--
-- #总表
-- 去掉课程名称的 括号及其中内容
UPDATE 总表 set 课程名称=left(课程名称,LOCATE('(',课程名称)-1) WHERE 课程名称 LIKE "%(%" ;
SELECT * FROM 总表
-- 按开课单位统计课程名称数
SELECT 开课单位,COUNT(课程名称) as 课程数 FROM 总表 GROUP BY 开课单位;
-- 找出清华大学 或人民大学出版的图书
select * FROM 总表
select * FROM 总表 WHERE 出版社 in ('清华大学','中国人民大学出版社') ;
-- 保险学院没带保险字样的书籍 的占比
select sum(if (课程名称 not LIKE '%保险%' ,1,0))/count(开课单位) as 占比 FROM 总表 WHERE 开课单位='保险学院';
-- SELECT if (课程名称 LIKE '保险' ,课程名称,0) FROM 总表 WHERE 开课单位='保险学院'
-- 各开课单位开课数的占比
--
SELECT count(课程名称) FROM 总表;
SELECT 开课单位,COUNT(课程名称)/(SELECT count(课程名称) FROM 总表) as abc FROM 总表 GROUP BY 开课单位;
--
-- #业务明细表
-- 各地区各年的平均收入,最高收入,
SELECT * FROM 业务明细;
SELECT if le;
SELECT 城市,LEFT(结算日期,4) ,sum(收入)/count(收入) FROM 业务明细 GROUP BY LEFT(结算日期,4),城市;
-- 各年各用户代码的平均收入总收入,
SELECT 用户代码,LEFT(结算日期,4),sum(收入)/count(收入) as 平均收入,sum(收入) as 总收入 FROM 业务明细 GROUP BY 用户代码,LEFT(结算日期,4);
-- 各业务的总收入并排序
SELECT 业务代码, SUM(收入) FROM 业务明细 GROUP BY 业务代码 ORDER BY SUM(收入)DESC;
desc 业务明细
-- 各年个月的总收入,并按年升序,收入倒叙
SELECT LEFT(结算日期,4),mid(结算日期,6,2),SUM(收入) FROM 业务明细 GROUP BY LEFT(结算日期,4),mid(结算日期,6,2)
ORDER BY SUM(收入) DESC , LEFT(结算日期,4) ASc ;
-- LEFT(结算日期,4) ASc AND
-- 各地区各用户代码的总收入 并按地区升序,收入倒叙
SELECT 城市,用户代码,SUM(收入) FROM 业务明细 GROUP BY 城市,用户代码 ORDER BY 城市,SUM(收入) asc;
-- 各地区个业务代码的总收入
-- 显示格式为
-- 业务代码 CPRJ cpyj ...
-- 华西 总收入
SELECT DISTINCT 业务代码 FROM 业务明细;
SELECT 城市 as 业务代码,sum(if (业务代码='CPYJ',收入,0))as CPYJ,
sum(if (业务代码='CPRJ',收入,0))as CPRJ,
sum(if (业务代码='FWHL',收入,0))as FWHL,
sum(if (业务代码='FWPX',收入,0))as FWPX FROM 业务明细 GROUP BY 城市;
sql代码 day 3
猜你喜欢
转载自blog.csdn.net/Captain_DUDU/article/details/103416872
今日推荐
周排行