一、销售人员业绩表操作
已知"我爱你家"10月份销售人员业绩存放在selldb数据库的sell表中。
(1)使用sql语句创建selldb数据库,根据上表创建sell表.
CREATE DATABASE selldb;--创建selldb数据库
USE selldb;--选中selldb数据库
-- 创建sell表
CREATE TABLE sell(
id int(10) PRIMARY KEY AUTO_INCREMENT,
NAME varchar(15) NOT NULL,
sellnumbers int(10) NOT NULL,
sellmoney int(20) NOT NULL,
money int(10) NOT NULL
)
(2)使用sql语句完成以上表格中数据的插入
INSERT INTO sell (id,NAME,sellnumbers,sellmoney,money) VALUES(NULL,'郭凤芝',3,900000,8000);
INSERT INTO sell (id,NAME,sellnumbers,sellmoney,money) VALUES(NULL,'李清风',1,250000,5000);
INSERT INTO sell (id,NAME,sellnumbers,sellmoney,money) VALUES(NULL,'杨晓初',0,0,4000);
INSERT INTO sell (id,NAME,sellnumbers,sellmoney,money) VALUES(NULL,'霍币',5,1000000,6000);
INSERT INTO sell (id,NAME,sellnumbers,sellmoney,money) VALUES(NULL,'宋明',6,1200000,5000);
INSERT INTO sell (id,NAME,sellnumbers,sellmoney,money) VALUES(NULL,'杨洋',2,502000,7000);
(3)统计10月份"我爱你家"一共销售了多少套房源以及总销售额
--使用sum函数
SELECT SUM(sellnumbers),SUM(sellmoney) FROM sell;
(4)计算低于平均销售额的员工,输出姓名
SELECT NAME FROM sell WHERE sellmoney < (SELECT AVG(sellmoney) FROM sell);
(5)将销售额降序排列后前三名员工的工资上涨1000元
-- IN :查询某个范围内的数据.
-- order by :排序.(desc是降序,asc是升序)
-- limit num:从第一条开始取出num条记录.
UPDATE sell set money=money+1000 WHERE id IN (SELECT t.id FROM (SELECT * FROM sell ORDER BY sellmoney DESC LIMIT 3) AS t);
(6)删除销售额为0的员工
DELETE FROM sell WHERE sellmoney=0;
二、学生信息操作
姓名 | 年龄 | 性别 | 班级 | 分数 |
---|---|---|---|---|
张三丰 | 103 | 男 | ios毕业班 | 100 |
李峰 | 23 | 男 | ios基础班 | 90 |
张飞 | 36 | 男 | JavaEE基础班 | 40 |
田甜 | 23 | 女 | UI基础班 | 80 |
李根 | 40 | 男 | JavaEE就业班 | 9 |
朱迪 | 18 | 女 | JavaEE基础班 | 100 |
模拟数据备份,已知学生名单如上,将该文件中的内容写入到studb库stutb表中,该表结构如下
(1)创建studb数据库,按照表格内的格式创建stutb表
CREATE DATABASE studb;
CREATE TABLE stutb(
NAME VARCHAR(20) NOT NULL,
age INT(11),
sex CHAR,
department VARCHAR(50),
score DOUBLE
);
(2)对上述表格内的信息进行插入
INSERT INTO stutb (NAME,age,sex,department,score) VALUES ('张三丰',103,'男','ios毕业班',100);
INSERT INTO stutb (NAME,age,sex,department,score) VALUES ('李峰',23,'男','ios基础班',90);
INSERT INTO stutb (NAME,age,sex,department,score) VALUES ('张飞',36,'男','JavaEE班',40);
INSERT INTO stutb (NAME,age,sex,department,score) VALUES ('田甜',23,'女','UI基础班',80);
INSERT INTO stutb (NAME,age,sex,department,score) VALUES ('李根',40,'男','JavaEE就业班',9);
INSERT INTO stutb (NAME,age,sex,department,score) VALUES ('朱迪',103,'男','JavaEE基础班',100);
(3)将所有在读的男学员的所有信息按照成绩降序输出
SELECT * FROM (SELECT * FROM stutb WHERE sex='男') AS man ORDER BY man.score DESC;
(4)将李根的年龄改为20,班级改为javaEE基础班
UPDATE stutb SET age=20,department="JavaEE基础班" WHERE NAME="李根";
(5)删除低于javaEE基础班平均分的javaEE基础班学生(较难☆)
DELETE FROM stutb
WHERE score< (SELECT score FROM (SELECT avg(score) score
FROM stutb
WHERE department="javaEE基础班") ss) AND department="javaEE基础班";
三、院校学生信息表操作
假设院校有一个schooldb数据库,其中有一张student表,内容如下
id | name | sex | department | score |
---|---|---|---|---|
1 | 张三 | 女 | 体育系 | 9 |
2 | 李四 | 男 | 外语系 | 10 |
3 | 娜娜 | 女 | 中文系 | 6 |
4 | 凯蒂 | 男 | 外语系 | 7 |
5 | 肖鹿 | 男 | 表演系 | 1 |
6 | 菲菲 | 不详 | 外星系 | 0 |
由于录入信息的老师不细心导致数据库好多信息是错误的,运用sql将信息修改好,并且帮助老师统计一些数据。
(1)创建schooldb数据库,并按照以上格式创建student表
CREATE DATABASE schooldb;--创建schooldb数据库
USE schooldb;
CREATE TABLE student(-- 创建student表
id INT(11) PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(10),
sex VARCHAR(10),
department VARCHAR(10),
score double
)
(2)对以上表格中的数据进行插入
INSERT INTO student (id,NAME,sex,department,score) VALUES (NULL,'张三','女','体育系',9);
INSERT INTO student (id,NAME,sex,department,score) VALUES (NULL,'李四','男','外语系',10);
INSERT INTO student (id,NAME,sex,department,score) VALUES (NULL,'娜娜','女','中文系',6);
INSERT INTO student (id,NAME,sex,department,score) VALUES (NULL,'凯蒂','男','外语系',7);
INSERT INTO student (id,NAME,sex,department,score) VALUES (NULL,'肖鹿','男','表演系',1);
INSERT INTO student (id,NAME,sex,department,score) VALUES (NULL,'菲菲','不详','外星系',0);
(3)菲菲不是本校学生,删除该记录
DELETE FROM student WHERE NAME='菲菲';
(4)缺失一名学生记录,学生信息自己定义
INSERT INTO student (id,NAME,sex,department,score) VALUES (NULL,'冬雨','女','艺术系',100);
(5)按照系分组并统计每个系各有多少人
SELECT department,COUNT(department) FROM student GROUP BY department;
(6)按成绩降序输出学生姓名
SELECT NAME FROM student ORDER BY score DESC;
四、工资支出账单操作
CREATE TABLE zhangwu (
id INT PRIMARY KEY AUTO_INCREMENT, -- 账务ID
zname VARCHAR(200), -- 账务名称
zmoney DOUBLE -- 金额
);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (1,'吃饭支出',247);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (2,'工资收入',12345);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (3,'服装支出',1000);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (4,'吃饭支出',325);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (5,'股票收入',8000);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (6,'打麻将支出',8000);
INSERT INTO zhangwu(id,zname,zmoney) VALUES (7,NULL,5000);
(1)查询zname,zmoney的数据
SELECT zname,zmoney FROM zhangwu;
(2)查询所有列的数据
SELECT * FROM zhangwu;
(3)查询去掉重复记录的zname
SELECT DISTINCT(zname) FROM zhangwu;
(4)查询重新命名列,将zname重命名为name
SELECT zname AS NAME FROM zhangwu;
(5)查询数据中,直接进行数学计算,查询zmoney并+1000
SELECT zmoney+1000 FROM zhangwu;
(6)查询所有的吃饭支出
SELECT * FROM zhangwu WHERE(zname='吃饭支出');
(7)查询金额大于1000的数据
SELECT * FROM zhangwu WHERE(zmoney>1000);
(8)查询金额在2000到6000之间的数据
SELECT * FROM zhangwu WHERE (zmoney>2000 AND zmoney<6000);
(9)查询金额是1000,3500,5000其中一个的数据
SELECT * FROM zhangwu WHERE zmoney IN(1000,3500,5000);
(10)查询账务名字为五个字符的
--length:计算字段的长度,汉字==3个字符,字母/数字==1个字符
--char_length:不管汉字还是数字,字母都是一个字符
SELECT * FROM zhangwu WHERE CHAR_LENGTH(zname)=5;
(11)查询账务名,不能为空
SELECT *FROM zhangwu WHERE zname IS NOT NULL;
转载:https://blog.csdn.net/weixin_43691058/article/details/103896392