MySQL基础训练题

有错请指导!
数据库操作sql练习
一、数据库的创建:
1、创建一个名称为mydb1的数据库

2、创建一个使用utf8字符集的mydb2数据库。

3、创建一个使用utf8字符集,并带比较规则的mydb3数据库。
CREATE DATABASE mydb3 CHARACTER SET utf8 COLLATE utf8_general_ci;
4、修改mydb2字符集为gbk;
ALTER DATABASE mydb1 CHARACTER SET gbk
5.删除数据库
DROP DATABASE mydb1
6.擦汗寻所有数据库
SHOW DATABASES
7.查看数据库mydb1的字符集
SHOW VARIABLES LIKE ‘collation_%’
8.创建一张员工表employee
字段 类型
id 整形
NAME 字符型
gender 字符型
birthday 日期型
entry_date 日期型
job 字符型
salary 小数型
RESUME 文本

CREATE TABLE employee(
id INTEGER AUTO_INCREMENT PRIMARY KEY,
name1 VARCHAR(32) NOT NULL,
gender VARCHAR(32) NOT NULL,
birthday DATETIME,
entry_date DATETIME,
job VARCHAR(32) NOT NULL,
salary FLOAT,
resume1 TEXT
)

表employee2
字段 类型
id 整形
NAME 字符型
gender 字符型
birthday 日期型
entry_date 日期型
job 字符型
salary 小数型
RESUME 文本
要求:把id 设置成主键,并且自动增长。name不允许为空。

CREATE TABLE employee2(
id INTEGER AUTO_INCREMENT PRIMARY KEY,
name1 VARCHAR(32) NOT NULL,
gender VARCHAR(32) NOT NULL,
birthday DATETIME,
entry_date DATETIME,
job VARCHAR(32) NOT NULL,
salary FLOAT,
resume1 TEXT
)

10.删除employee2表

DROP TABLE employee2

11.在上面员工表的基本上增加一个image列。

ALTER TABLE employee ADD image BLOB

12.修改job列,使其长度为60。

ALTER TABLE employee MODIFY job VARCHAR(60)

13.删除gender列。

ALTER TABLE employee DROP gender

14.表名改为user。

RENAME TABLE employee TO USER

15.修改表的字符集为utf8

ALTER TABLE USER CHARACTER SET utf8

16.列名name修改为username

ALTER TABLE USER CHANGE COLUMN name1 username VARCHAR(32)

17.查看数据库内的所有表

SHOW TABLES

18.查看employee的建表语句

SHOW CREATE TABLE USER

19.查看employee的表结构

DESC USER

20.1、向employee中插入三个员工信息,要求员工姓名分别是zs,ls,wangwu

INSERT INTO USER (username) VALUES('zs')
INSERT INTO USER (username) VALUES('ls');
INSERT INTO USER (username) VALUES('wangwu');
  1. 1、将所有员工薪水修改为5000元。

    2、将姓名为’zs’的员工薪水修改为3000元。

    3、将姓名为’ls’的员工薪水修改为4000元,job改为ccc。

    4、将wangwu的薪水在原有基础上增加1000元。

UPDATE USER SET salary=3000 WHERE username='zs';
UPDATE USER SET salary=4000,job='ccc' WHERE username='ls'; 
UPDATE USER SET salary=salary+1000 WHERE username='wangwu';
22.删除表中名称为’zs’的记录。
    DELETE FROM USER  WHERE username='za' 

23、删除表中所有记录。
DELETE FROM USER

CREATE TABLE exam(
  id INT PRIMARY KEY AUTO_INCREMENT,
  NAME VARCHAR(20) NOT NULL,
  chinese DOUBLE,
  math DOUBLE,
  english DOUBLE
 );
 INSERT INTO exam VALUES(NULL,'关羽',85,76,70);
 INSERT INTO exam VALUES(NULL,'张飞',70,75,70);
 INSERT INTO exam VALUES(NULL,'赵云',90,65,95);
 INSERT INTO exam VALUES(NULL,'刘备',97,50,50);
 INSERT INTO exam VALUES(NULL,'曹操',90,89,80);
 INSERT INTO exam VALUES(NULL,'司马懿',90,67,65);
 INSERT INTO exam VALUES(NULL,'司马懿',90,67,65);

24.1、查询表中所有学生的信息。

SELECT *FROM exam

2、查询表中所有学生的姓名和对应的英语成绩。

SELECT NAME,english FROM  exam

? 3、过滤表中重复数据。DISTINCT 粗劣的对数据进行重复查询

 SELECT DISTINCT NAME, chinese,math,english FROM exam

? 4、在所有学生分数上加10分特长分。

 UPDATE exam SET  chinese=chinese+10,math=math+10,english=english+10

5、统计每个学生的总分。

  SELECT chinese+math+english FROM exam 

6、使用别名表示学生分数。

 SELECT id '学生编号',NAME '学生姓名',chinese '语文',math '数学',english '英语' FROM exam

-----使用where子句
7、查询姓名为刘备的学生成绩

 SELECT * FROM exam WHERE NAME='刘备'

8、查询英语成绩大于90分的同学

SELECT * FROM exam WHERE english>90

9、查询总分大于200分的所有同学

SELECT * FROM exam WHERE (chinese+math+english)>200

10、查询英语分数在 80-90之间的同学。

 SELECT * FROM exam WHERE english BETWEEN 80 AND 90

11、查询数学分数为89,75,91的同学。

 SELECT * FROM exam WHERE math IN(89,75,91)

12、查询所有姓刘的学生成绩。

SELECT * FROM exam WHERE NAME LIKE '%刘%'

13、查询所有姓刘两个字的学生成绩。

SELECT * FROM exam WHERE NAME LIKE '%刘_%'

14、查询数学分>80并且语文分>80的同学。

SELECT * FROM exam WHERE math>80 AND chinese>80

15、查询数学分>80 或者 语文分>80的同学。

 SELECT * FROM exam WHERE math>80 AND chinese>80

------使用order BY 排序
16、对数学成绩排序后输出。

 SELECT* FROM exam  ORDER BY math

17、对总分排序按从高到低的顺序输出

 SELECT * FROM exam WHERE ORDER BY (chinese+math+english) DESC

18、对姓刘的学生成绩排序输出

 SELECT * FROM exam WHERE NAME LIKE '%刘%' ORDER BY math

------使用count(函数)
19、统计一个班级共有多少学生?

 SELECT COUNT(id) FROM exam

20、统计数学成绩大于或等于90的学生有多少个?

 SELECT COUNT(id) FROM exam WHERE math>=90

21、统计总分大于250的人数有多少?

 SELECT COUNT(id) FROM exam WHERE (chinese+math+english)>=250

-------使用sum函数
22、统计一个班级数学总成绩?

SELECT SUM(math) FROM exam

23、统计一个班级语文、英语、数学各科的总成绩

   SELECT SUM(math),SUM(chinese),SUM(english) FROM exam

24、统计一个班级语文、英语、数学的成绩总和

 SELECT SUM(math)+SUM(chinese)+SUM(english) FROM exam

25、统计一个班级语文成绩平均分

 SELECT AVG(chinese) FROM exam

--------使用avg函数
26、求一个班级数学平均分?

 SELECT AVG(math) FROM exam

27、求一个班级总分平均分

  SELECT AVG(chinese+math+english) FROM exam

-------使用max,min函数
28、求班级最高分和最低分(数值范围在统计中特别有用)

 SELECT MAX(chinese+math+english) FROM exam
 SELECT MIN(chinese+math+english) FROM exam
 
CREATE TABLE orders(
 id INT,
 product VARCHAR(20),
 price FLOAT
 );
INSERT INTO orders(id,product,price) VALUES(1,'电视',900);
 INSERT INTO orders(id,product,price) VALUES(2,'洗衣机',100);
 INSERT INTO orders(id,product,price) VALUES(3,'洗衣粉',90);
 INSERT INTO orders(id,product,price) VALUES(4,'桔子',9);
 INSERT INTO orders(id,product,price) VALUES(5,'洗衣粉',90);

29、查询购买了几类商品,并且每类总价大于100的商品

SELECT COUNT(product) FROM orders WHERE price>100
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值