mysql练习作业题
- 格式:docx
- 大小:20.79 KB
- 文档页数:5
mysql基本练习题MySQL是一种流行的开源关系型数据库管理系统,广泛应用于各种Web应用程序和数据分析任务中。
为了熟悉和掌握MySQL的使用,下面将介绍一些基本的MySQL练习题。
通过这些题目的实践,你将能够加深对MySQL数据库操作的理解和技能。
练习题一:创建数据库和表格1. 创建一个名为"学生管理"的数据库。
2. 在"学生管理"数据库中创建一个名为"学生信息"的表格,包含以下列:- 学号:学生的唯一标识符,为整数型。
- 姓名:学生的姓名,为字符串型。
- 性别:学生的性别,为字符串型。
- 年龄:学生的年龄,为整数型。
- 分数:学生的考试成绩,为浮点数型。
练习题二:插入数据1. 向"学生信息"表格中插入若干学生数据,包括学号、姓名、性别、年龄和分数。
练习题三:查询数据1. 查询"学生信息"表格中的所有学生数据。
2. 查询成绩大于80分的学生数据。
3. 查询性别为女性且年龄小于20岁的学生数据。
练习题四:更新数据1. 将学号为1001的学生的年龄更新为20岁。
2. 将姓名为"张三"的学生的分数更新为90分。
练习题五:删除数据1. 删除学号为1002的学生数据。
2. 删除所有分数小于60分的学生数据。
练习题六:排序和限制1. 按照分数降序排列所有学生数据。
2. 查询前5个成绩最高的学生数据。
练习题七:聚合查询1. 查询学生总数。
2. 查询平均分最高的学生数据。
3. 查询每个性别的学生数量。
练习题八:连接表查询1. 创建一个名为"科目信息"的表格,包含以下列:- 科目ID:科目的唯一标识符,为整数型。
- 科目名称:科目的名称,为字符串型。
- 学生学号:参加该科目的学生学号,外键关联到"学生信息"表格的学号列。
2. 向"科目信息"表格中插入若干科目数据,包括科目ID、科目名称和学生学号。
mysql练习题(打印版)# MySQL练习题## 1. 基本数据操作题目:创建一个名为`students`的表,包含`id`(主键,自增),`name`(姓名),`age`(年龄),`grade`(年级)四个字段。
```sqlCREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),age INT,grade VARCHAR(10));```题目:向`students`表中插入三个学生记录,姓名分别为“张三”,“李四”,“王五”,年龄分别为18,19,20,年级均为“大一”。
```sqlINSERT INTO students (name, age, grade) VALUES('张三', 18, '大一'),('李四', 19, '大一'),('王五', 20, '大一');```题目:查询`students`表中所有学生的姓名和年龄。
```sqlSELECT name, age FROM students;```题目:更新`students`表中名为“张三”的学生的年级为“大二”。
```sqlUPDATE students SET grade = '大二' WHERE name = '张三';```题目:删除`students`表中年龄为19的学生记录。
```sqlDELETE FROM students WHERE age = 19;```## 2. 高级查询题目:查询`students`表中年龄大于18岁的所有学生信息。
```sqlSELECT * FROM students WHERE age > 18;```题目:查询`students`表中年级为“大一”的学生的平均年龄。
mysql练习题答案MySQL练习题是一种常见的测试数据库技能的方式。
通过解答这些问题,我们可以加深对MySQL数据库的理解,并提升我们的SQL查询和管理能力。
以下是一组MySQL练习题的答案,希望能对大家的学习有所帮助。
题目一:查询employees表中所有员工的信息。
答案一:SELECT * FROM employees;题目二:查询employees表中员工总数。
答案二:SELECT COUNT(*) FROM employees;题目三:查询employees表中员工的最高工资和最低工资。
答案三:SELECT MAX(salary), MIN(salary) FROM employees;题目四:查询employees表中工资高于10000的员工的姓名和工资。
答案四:SELECT first_name, salary FROM employees WHERE salary > 10000;题目五:查询employees表中入职时间在2001年至2005年之间的员工的姓名和入职时间。
答案五:SELECT first_name, hire_date FROM employees WHERE hire_date BETWEEN '2001-01-01' AND '2005-12-31';题目六:查询departments表中每个部门的员工数量。
答案六:SELECT department_name, COUNT(*) FROM departments INNER JOIN employees ON departments.department_id =employees.department_id GROUP BY department_name;题目七:查询employees表中的员工,并按照工资从高到低排序。
答案七:SELECT * FROM employees ORDER BY salary DESC;题目八:查询employees表中工资排名前5的员工的姓名和工资。
mysql综合练习题MySQL是一种广泛应用的关系型数据库管理系统,被广泛用于各种规模的应用程序开发中。
通过练习MySQL综合题,可以帮助我们加深对MySQL数据库设计和查询语言的理解。
本文将提供一些MySQL 综合练习题,供读者进行学习和实践。
练习一:创建数据库和表1. 创建一个名为"company"的数据库。
2. 在"company"数据库中创建一个名为"employees"的表,包含以下字段:员工ID、姓名、年龄、性别、职位、工资。
练习二:插入数据1. 向"employees"表中插入5条员工记录,包括员工ID、姓名、年龄、性别、职位、工资。
练习三:查询数据1. 查询工资大于5000的员工记录,并按照工资从高到低排序。
2. 查询性别为男性且薪资在4000到8000之间的员工记录,按年龄从低到高排序。
练习四:更新数据1. 将员工姓名为"张三"的薪资增加10%。
2. 将工资低于4000的员工职位更新为"实习生"。
练习五:删除数据1. 删除工资超过10000的员工记录。
练习六:多表联合查询1. 创建一个名为"departments"的表,包含以下字段:部门ID、部门名称。
2. 将"employees"表和"departments"表根据部门ID进行内连接,并查询部门名称和员工姓名。
练习七:数据统计与分组查询1. 查询每个部门的平均工资和最高工资。
2. 统计年龄在20到30岁之间的员工数量,并按照年龄段进行分组。
练习八:表连接与子查询1. 查询每个部门的员工平均年龄。
2. 查询薪资高于所有实习生的员工记录。
练习九:数据备份与恢复1. 备份"company"数据库的数据到文件中。
2. 恢复备份文件中的数据。
mysql上机练习题MySQL是一种常用的关系型数据库管理系统,广泛应用于开发和管理各种数据库。
本文将为大家提供一些MySQL上机练习题,以帮助读者巩固和提升自己的MySQL技能。
题目一:创建数据库和数据表在MySQL中创建一个名为"student"的数据库,并在该数据库中创建一个名为"score"的数据表。
数据表包括以下字段:字段名数据类型备注id int 学号name varchar 姓名chinese int 语文成绩math int 数学成绩english int 英语成绩题目二:插入数据向上述的"score"数据表中插入以下数据:学号姓名语文成绩数学成绩英语成绩1 小明 90 85 922 小红 78 92 883 小亮 85 90 95题目三:查询数据从"score"数据表中查询所有学生的姓名和数学成绩。
题目四:更新数据将学号为2的学生英语成绩修改为90。
题目五:删除数据从"score"数据表中删除学号为3的学生。
题目六:查询统计数据查询"score"数据表中语文成绩大于等于90分的学生数量。
题目七:排序数据按照数学成绩从高到低的顺序,查询"score"数据表中的所有学生信息。
题目八:连接查询创建一个名为"course"的数据表,包括以下字段:字段名数据类型备注id int 课程编号name varchar 课程名称将下列数据插入到"course"数据表中:课程编号课程名称1 语文2 数学3 英语通过连接查询,查询"score"数据表中各个学生的姓名、课程名称和成绩。
题目九:使用函数查询"score"数据表中各个学生的总成绩,按照总成绩从高到低排序。
题目十:使用子查询查询"score"数据表中成绩最高的学生姓名和各科成绩。
mysql数据库练习题(含答案)创建数据库1 DROP DATABASE IF EXISTS test1; #如果存在test1数据库删除test1数据库2 CREATE DATABASE test1; #创建test1数据库3 USE test1; #切换的test1数据库⾥创建部门表1 DROP IF EXISTS TABLE DEPT; #如果存在dept数据表,删除dept数据表.2 CREATE TABLE DEPT(3 DEPTNO int PRIMARY KEY, #部门编号4 DNAME VARCHAR(14) , #部门名称5 LOC VARCHAR(13) #部门地址6 ) ;向部门表插⼊数据1 INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');2 INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');3 INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');4 INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');创建员⼯表1 DROP IF EXISTS TABLE EMP; #如果存在emp数据表,删除emp数据表.2 CREATE TABLE EMP(3 EMPNO int PRIMARY KEY, #员⼯编号4 ENAME VARCHAR(10), #员⼯姓名5 JOB VARCHAR(9), #员⼯⼯作6 MGR int, #员⼯直属领导编号7 HIREDATE DATE, #⼊职时间8 SAL double, #⼯资9 COMM double, #奖⾦10 DEPTNO int #对应dept表的外键11 );添加部门和员⼯之间的主外键关系1 ALTER TABLE EMP ADD CONSTRAINT FOREIGN KEY EMP(DEPTNO) REFERENCES DEPT (DEPTNO); #加主键约束1.主键约束:要对⼀个列加主键约束的话,这列就必须要满⾜的条件就是分空因为主键约束:就是对⼀个列进⾏了约束,约束为(⾮空、不重复)以下是代码要对⼀个列加主键,列名为id,表名为emp格式为:alter table 表格名称 add constraint 约束名称增加的约束类型(列名)添加部门和员⼯1 INSERT INTO EMP VALUES(7369,'SMITH','CLERK',7902,"1980-12-17",800,NULL,20);2 INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30); 3 INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30); 4 INSERT INTO EMPVALUES(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20); 5 INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30); 6 INSERT INTO EMP VALUES(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30); 7 INSERT INTO EMP VALUES(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10); 8 INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566,'1987-07-03',3000,NULL,20); 9 INSERT INTO EMPVALUES(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10); 10 INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30); 11 INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7788,'1987-07-13',1100,NULL,20); 12 INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30); 13 INSERT INTO EMP VALUES(7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20); 14 INSERT INTO EMPVALUES(7934,'MILLER','CLERK',7782,'1981-01-23',1300,NULL,10);创建⼯资等级表1 DROP IF EXISTS TABLE SALGRADE; #如果存在salgrade数据表,删除salgrare数据表.2 CREATE TABLE SALGRADE(3 GRADE int, #等级4 LOSAL double, #最低⼯资5 HISAL double ); #最⾼⼯资6 INSERT INTO SALGRADE VALUES (1,700,1200);7 INSERT INTO SALGRADE VALUES (2,1201,1400);8 INSERT INTO SALGRADE VALUES (3,1401,2000);9 INSERT INTO SALGRADE VALUES (4,2001,3000); 10 INSERT INTO SALGRADE VALUES (5,3001,9999);单表查询题⽬及答案1 #1、查找部门30中员⼯的详细信息。
mysql表格练习题MySQL是一种常用的关系型数据库管理系统,被广泛应用于各个领域。
为了能够熟练掌握MySQL的表格操作,下面将为大家提供一些MySQL表格练习题。
通过完成这些练习,您将加深对MySQL表格的理解,并提升自己的操作能力。
题目一:创建表格请创建一个名为“学生信息”的表格,包含以下字段:1. 学生ID(ID):整数类型,主键。
2. 学生姓名(Name):字符串类型。
3. 学生年龄(Age):整数类型。
4. 学生性别(Gender):字符串类型。
请使用合适的SQL语句创建此表格。
题目二:插入数据请向“学生信息”表格中插入以下数据:1. ID:101,Name:张三,Age:20,Gender:男2. ID:102,Name:李四,Age:22,Gender:男3. ID:103,Name:王五,Age:21,Gender:女请使用合适的SQL语句完成数据的插入。
题目三:查询数据请编写SQL语句查询“学生信息”表格中的所有数据,并按照学生ID进行升序排序。
题目四:更新数据请编写SQL语句将“学生信息”表格中ID为101的学生姓名改为“赵六”。
题目五:删除数据请编写SQL语句删除“学生信息”表格中ID为103的学生数据。
题目六:表格关联除了学生信息表格之外,还有一个名为“课程信息”的表格,包含以下字段:1. 课程ID(ID):整数类型,主键。
2. 课程名称(Name):字符串类型。
3. 学分(Credit):整数类型。
请编写SQL语句查询所有选修了ID为101的学生的课程信息。
题目七:表格联合请编写SQL语句将“学生信息”表格和“课程信息”表格联合查询,查询每个学生所选修的课程信息。
以上为MySQL表格练习题,通过完成这些练习,您将进一步巩固和提升自己的MySQL表格操作能力。
希望您能够充分利用这些练习,不断加深对MySQL的理解和掌握,提高自己的数据库管理能力。
Mysql题目
一、选择题(每题2分,共20分)
1、支持主外键,索引及事务的存储引擎为是(B)
A.MYISAM
B.INNODB
C.MEMORY
D.CHARACTER
2、
创建用户的命令是(B)
A.join user
B.create user
C.create root
D.mysql user
3、
有订单表orders,包含用户信息userid,产品信息productid,以下()语句能够返回至
少被订购过两回的productid?(D)
A.select productid from orders where count(productid)>1
B.select productid from orders where max(productid)>1
C.select productid from orders where having count(productid)>1 group by
productid
D.select productid from orders group by productid having count(productid)>1
4、mysql中,备份数据库的命令是(A)
A.mysqldump
B.mysql
C.backup
D.copy
5、删除用户的命令是( A)
A.drop user
B.delete user
C.drop root
D.truncate user
6、给名字是zhangsan的用户分配对数据库studb中的stuinfo表的查询和插入数据权限的
语句是(B)
A.grant select,insert on studb.stuinfo for‘zhangsan’@’localhost’
B.grant select,insertonstudb.stuinfo to‘zhangsan’@’localhost’
C.grant‘zhangsan’@’localhost’to select,insert for studb.stuinfo
D.grant‘zhangsan’@’localhost’to studb.stuinfo on select,insert
7、从学生(STUDENT)表中的姓名(NAME)字段查找姓“张”的学生可以使用如下代码:
select * from student where。 (C)
A.NAME=’张*’
B.NAME=‘%张%’
C.NAME LIKE ‘张%’
D.NAME LIKE ‘张*’
8、要快速完全清空一个表,可以使用如下语句:(A)
A. TRUNCATE TABLE
B. DELETE TABLE
C. DROP TABLE
D. CLEAR TABLE
9、改表记录的语句关键字是:(B)
A delete
B update
C insert
D select
10、修改操作的语句 update student set s_name =N’王军’ 该代码执行后的结果
是: (C)
A 只把姓名叫王军的记录进行更新
B 只把字段名s_name 改成 N’王军’
C 表中的所有人姓名都更新为王军
D 更新语句不完整,不能执行
选择题:1-5 BBDAA 6-10 BCABC
二、填空题(每题4分,共20分)
1、
显示mysql中所有db用___show_databases_____命令?
2、显示某个数据库中所有表用__show tables_______命令?
3、
用___GRTANT____命令给MYSQL 授外部权限?
4、
mysql中的通配符是___%和___?
5、当尝试进入mysql时,提示“ERROR 1045 (28000): Access denied for user
'root'@'localhost' (using password: NO)”时,是__没输入密码________原因?
三、简答题(每题10分,共30分)
1、
mysql加入服务后,如何启动MYSQL及关闭?
答:Mysql启动:service mysql start
Mysql关闭:service mysql stop
2、
请在MYSQL中新增一个用户test, 并只接受来自172.16.3.50的访问,密码为:123456 ,
且只对 testdb1有所有权限,其它DB无任何权限。
答:GRANT all privileges on testdb1.* to test@’172.16.3.50’ identified by ‘123456’
3、查看数据库nc下的表ncuserlog的表结构,查询前10条记录,按字段stime降序排序
答:Select top 10* from ncuserlog order by stime desc;
四、SQL编程(每题15分,共30分)
1、学生表:Student 学生表 (sno学号,sname姓名,sex性别,age年龄,dep组织部门)
Course 课程表 (cno编号,cname课程名称)
Sc 选课表 (sno学号,cno课程编号,score成绩)
表结构如下:
(1).写一个SQL语句,查询选修了’计算机原理’的学生总数
(2).写一个SQL语句,查询’张三’同学选修了的课程名字
(3).写一个SQL语句,查询选修了3门课程的学生学号、姓名和年龄
答:(1)select count(sno) from sc
where cno = (select cno from course where cname = '计算机原理')
(2) select cname from course
where cno in (select cno from sc ,Student t
where s.sno=sc.sno and s.sname=’张三’)
(3) select s.sno,s.sname,s.age from Student s,sc
where s.sno =sc.sno
group by s.sno,s.sname
having count(sc.cno)=3;
2、SQL语句优化
原SQL语句:
SELECTID,WAYBILL_NO,EXP_TYPE,PKG_QTY,EXPRESS_CONTENT_CODE,EFFECTIVE_TYPE_CODE
FROM T_EXP_OP WHERE ORDERID NOT IN(SELECTORDERID FROM T_EXP_OP WHERE
AUX_OP_CODE IN ('NEW','UPDATE','DELETE') AND((OP_CODE IN (176, 162, 171, 131, 136)AND
EXP_TYPE IN ('10', '20', '30')) OR(OP_CODE IN (191, 121)AND EXP_TYPE IN ('10', '20')) OR
(OP_CODE IN (181,111)AND EXP_TYPE = '10'))) LIMIT 10;
条件:
T_EXP_OP表主键为BIGINT类型的ID字段,存储引擎为InnoDB,无其他索引
答:
SELECT ID, WAYBILL_NO, EXP_TYPE, PKG_QTY,EXPRESS_CONTENT_CODE, EFFECTI
VE_TYPE_CODE
FROM T_EXP_OP
WHERE
AUX_OP_CODENOT IN (‘NEW’, ‘UPDATE’, ‘DELETE’)
AND(OP_CODE NOT IN (176, 162, 171, 131, 136, 191, 121, 181,111)
ANDEXP_TYPE NOT IN(‘10’, ‘20’, ‘30’))
LIMIT 10 ;