MYSQL练习题新手教程
- 格式:doc
- 大小:37.00 KB
- 文档页数:8
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数据库原理设计与应用练习题一、单选题(共31题,每题1分,共31分)1.下面关于MySQL安装目录描述错误的是()。
A、lib目录用于存储一系列的库文件B、include目录用于存放一些头文件C、bin目录用于存放一些课执行文件D、以上答案都不正确正确答案:D2.下面对“ORDER BY pno,level”描述正确的是()。
A、先按level全部升序后,再按pno升序B、先按level升序后,相同的level再按pno升序C、先按pno全部升序后,再按level升序D、先按pno升序后,相同的pno再按level升序正确答案:D3.VARCHAR(4)类型的字段存储'abcd'占用的字节数为()。
A、1B、3C、4D、5正确答案:D4.以下选项中,运算优先级别最低的是()。
A、逻辑运算符B、赋值运算符C、算术运算符D、位运算符正确答案:B5.以下不属于MySQL安装时自动创建的数据库是()。
A、sysB、mydbC、mysqlD、information_schema正确答案:B6.下列操作中,会隐式提交事务的是()。
A、SELECTB、UPDATEC、CREATE TABLED、DELETE正确答案:C7.下面对TINYINT(3)描述正确的是()。
A、3用于设置TINYINT的取值范围B、3用于设置取值范围所能表示的最大宽度C、插入数据的位数超过3时会报错D、以上答案都不正确正确答案:B8.以下()是查询语句select选项的默认值。
A、ALLB、DISTINCTC、DISTINCTROWD、以上答案都不正确正确答案:A9.下面关于“表1 LEFT JOIN 表2”的说法错误的是()。
A、连接结果中只会保留表2中符合连接条件的记录B、连接结果会保留所有表1中的所有记录C、LEFT JOIN 可用LEFT OUTER JOIN代替D、以上说法都不正确正确答案:D10.以下属于行子查询的是()。
mysql 数据库操作实践题MySQL 是一种流行的关系型数据库管理系统,广泛用于各种大小企业和应用程序中。
在这篇文章中,我们将解决一些 MySQL 数据库操作实践题。
题目一:创建数据库和表首先,让我们创建一个名为 `company` 的数据库,并在其中创建一个名为`employees` 的表。
这个表将存储公司员工的信息,包括雇员ID、姓名、职务和薪水。
```sqlCREATE DATABASE company;USE company;CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),title VARCHAR(50),salary DECIMAL(10, 2));```题目二:插入数据接下来,让我们向 `employees` 表中插入一些示例数据。
```sqlINSERT INTO employees (id, name, title, salary) VALUES(1, 'John Doe', 'Manager', 5000.00),(2, 'Jane Smith', 'Developer', 3500.00),(3, 'Mike Johnson', 'Salesperson', 3000.00),(4, 'Lisa Chen', 'Designer', 4000.00),(5, 'David Lee', 'Tester', 3200.00);```题目三:选择数据现在,我们来测试选择数据的语句。
下面的语句将选择所有职务为 'Developer' 的员工的姓名和薪水。
```sqlSELECT name, salary FROM employees WHERE title = 'Developer';```题目四:更新数据让我们假设 Lisa Chen 的薪水有所增加,我们需要更新她的薪水信息。
mysql存储过程练习题MySQL存储过程练习题MySQL是一种常用的关系型数据库管理系统,它提供了存储过程的功能,可以将一系列SQL语句封装为一个可重复使用的代码块。
存储过程可以提高数据库操作的效率,并且可以实现复杂的业务逻辑。
在本文中,我们将介绍一些MySQL存储过程的练习题,帮助读者巩固对存储过程的理解和应用。
1. 创建一个存储过程,查询指定学生的成绩信息。
```sqlDELIMITER //CREATE PROCEDURE get_student_score(IN student_id INT)BEGINSELECT * FROM scores WHERE student_id = student_id;END //DELIMITER ;```这个存储过程接收一个学生ID作为参数,然后查询该学生的成绩信息并返回结果。
2. 创建一个存储过程,计算指定学生的平均成绩。
```sqlDELIMITER //CREATE PROCEDURE get_student_average_score(IN student_id INT, OUT average_score DECIMAL(5,2))BEGINSELECT AVG(score) INTO average_score FROM scores WHERE student_id = student_id;END //DELIMITER ;```这个存储过程接收一个学生ID作为输入参数,并将平均成绩作为输出参数返回。
3. 创建一个存储过程,查询指定科目的成绩最高和最低的学生。
```sqlDELIMITER //CREATE PROCEDURE get_top_bottom_student(IN subject_id INT, OUTtop_student VARCHAR(50), OUT bottom_student VARCHAR(50))BEGINSELECT student_name INTO top_student FROM scores WHERE subject_id = subject_id ORDER BY score DESC LIMIT 1;SELECT student_name INTO bottom_student FROM scores WHERE subject_id= subject_id ORDER BY score ASC LIMIT 1;END //DELIMITER ;```这个存储过程接收一个科目ID作为输入参数,并将成绩最高和最低的学生姓名作为输出参数返回。
mysql测试题及答案MySQL测试题及答案一、选择题1. MySQL的默认端口号是什么?A. 22B. 3306C. 80D. 443答案:B2. 下列哪个SQL语句用于查询表中的所有记录?A. SELECT * FROM table_name WHERE condition;B. SELECT * FROM table_name;C. SELECT table_name.*;D. SELECT ALL FROM table_name;答案:B3. 在MySQL中,以下哪个命令用于创建新的数据库?A. CREATE DATABASE database_name;B. NEW DATABASE database_name;C. START DATABASE database_name;D. INIT DATABASE database_name;答案:A二、填空题4. 在MySQL中,使用____语句可以删除一个表。
答案:DROP TABLE5. 要查看当前MySQL服务器上所有数据库的名称,可以使用____命令。
答案:SHOW DATABASES;6. 以下SQL语句的作用是____:SELECT column1, column2 FROMtable_name WHERE column1 = value1 ORDER BY column2 DESC LIMIT 1;答案:查询表table_name中column1等于value1的记录,并按column2降序排列,返回第一条记录。
三、简答题7. 请简述主键(Primary Key)和外键(Foreign Key)的区别。
答案:主键是表中用于唯一标识每条记录的字段,一个表只能有一个主键,并且主键的值不能为NULL。
外键是表中用于与另一个表的主键建立链接的字段,用于维护两个表之间的数据一致性,一个表可以有多个外键。
8. 解释什么是事务(Transaction)以及它的特性。
mysql试题及答案一、选择题(每题2分,共20分)1. MySQL数据库默认的端口号是多少?A. 21B. 22C. 3306D. 80答案:C2. 在MySQL中,以下哪个命令用于创建数据库?A. CREATE DATABASEB. CREATE TABLEC. CREATE USERD. CREATE INDEX答案:A3. 如何在MySQL中选择所有的行和列?A. SELECT * FROM table_name;B. SELECT ALL FROM table_name;C. SELECT ALL table_name;D. SELECT table_name;答案:A4. 下列哪个选项不是MySQL的数据类型?A. INTB. DATEC. FLOATD. STRING答案:D5. 在MySQL中,如何删除一个数据库?A. DROP DATABASE database_name;B. DELETE DATABASE database_name;C. REMOVE DATABASE database_name;D. REMOVE database_name;答案:A6. 如何在MySQL中为一个表添加一个新列?A. ADD COLUMN column_name datatype;B. CREATE COLUMN column_name datatype;C. INSERT COLUMN column_name datatype;D. ADD NEW COLUMN column_name datatype;答案:A7. 在MySQL中,以下哪个命令用于删除表中的行?A. DELETE FROM table_name;B. REMOVE FROM table_name;C. DROP FROM table_name;D. REMOVE table_name;答案:A8. 如何在MySQL中更新表中的记录?A. UPDATE table_name SET column1=value1, column2=value2 WHERE condition;B. CHANGE table_name SET column1=value1, column2=value2 WHERE condition;C. MODIFY table_name SET column1=value1, column2=value2 WHERE condition;D. ALTER table_name SET column1=value1, column2=value2WHERE condition;答案:A9. MySQL中的事务是什么?A. 一系列原子性的SQL操作B. 单个SQL语句C. 一组数据D. 一个数据库答案:A10. 如何在MySQL中查看当前数据库的版本?A. SELECT VERSION();B. SHOW VERSION;C. VERSION();D. SHOW DATABASE VERSION;答案:A二、填空题(每题2分,共20分)1. MySQL的默认用户是________。
mysql练习题50道1. 编写一个MySQL查询,用于查找表中的所有数据。
```SELECT * FROM 表名;```2. 编写一个MySQL查询,用于查找表中的所有数据,并按照某一列的升序排列。
```SELECT * FROM 表名 ORDER BY 列名 ASC;```3. 编写一个MySQL查询,用于查找表中的所有数据,并按照某一列的降序排列。
```SELECT * FROM 表名 ORDER BY 列名 DESC;```4. 编写一个MySQL查询,用于查找表中某一列的数据,并去除重复项。
```SELECT DISTINCT 列名 FROM 表名;```5. 编写一个MySQL查询,用于查找表中满足某个条件的数据。
```SELECT * FROM 表名 WHERE 条件;```6. 编写一个MySQL查询,用于查找表中满足多个条件的数据。
```SELECT * FROM 表名 WHERE 条件1 AND 条件2;```7. 编写一个MySQL查询,用于查找表中满足某个条件或另一个条件的数据。
```SELECT * FROM 表名 WHERE 条件1 OR 条件2;```8. 编写一个MySQL查询,用于计算表中某一列的总和。
```SELECT SUM(列名) FROM 表名;```9. 编写一个MySQL查询,用于计算表中某一列的平均值。
```SELECT AVG(列名) FROM 表名;```10. 编写一个MySQL查询,用于计算表中某一列的最大值。
```SELECT MAX(列名) FROM 表名;```11. 编写一个MySQL查询,用于计算表中某一列的最小值。
```SELECT MIN(列名) FROM 表名;```12. 编写一个MySQL查询,用于统计表中某一列的行数。
```SELECT COUNT(列名) FROM 表名;```13. 编写一个MySQL查询,用于在查询结果中限制返回的行数。
…Iampl34(数据库名)-MySQL数据库小型关系型数据库开源数据库--SQL命令不仅仅适用于MySQL数据库,适用于所有的支持SQL命令的数据库… 进入mysql的方式直接mysql冋车,以匿名的方式进入到数据库,只能看到允许游客看到的数据库™ mysql -h(mysql主机)localhost(本机)・u(用户)root(超级管理员)-p(密码)回车C:\Users\Administrator>mysql -h localhost -u root -pEnter password: ―输入密码--show databases显示当前服务器下所有的数据库mysql> show databases;…显示:| Database |+ -------------------- +| in format! on_ schema |I mysql I| performsnce_schema |I sys I| ultrax |+ -------------------- +5 rows in set (0.00 sec)mysql>-上下键可以调用历史记录命令-每一行命令要以分号结束--create!创建)database(数据库)Iampl34(数据库名)mysql> create database Iampl34;…显示:Query OK, 1 row affected (0.00 sec)mysql>--删除数据库drop database数据库名mysql> drop database Iampl34;…显示:Query OK, 0 rows affected (0.08 sec)mysql>…设置字符集的目的就是为了防止数据库存储屮文时乱码-创建数据库如果Iampl34不存在,同时设置默认的字符集为utf8(没有・) mysql> create database if not exists Iampl34 default charset=utf8;…显示:Query OK, 1 row affected (0.00 sec)mysql>…删除数据库如果存在Iampl34mysql> drop database if exists Iampl34;™显示:Query OK, 0 rows affected (0.00 sec)mysql>—选择数据库Imapl34mysql> use Iampl34…显不:Database changedmysql>***************************■…创建表mysql> create table stu(—-id 字段名int 字段属性not null 不为空autojncrement 自增primary key 主 键(唯一、不能为空)-> id int not null auto _in creme nt primary key,-> name varchar(20) unique, ・-varchar(长度)字符串类型・> sex tinyint default 3,— tinyint 较小的整型 unique 唯一 default 3 设置默认值 为3 (该位置没有写入数据吋默认添加3)・> age tinyint ・>)engine = myisam default charset=utf8; 一一 engine 数据表"勺弓I 擎 default charset=utf8 设置默认字符集…显示:Query OK, 0 rows affected (0.14 sec)mysql>―show create table 数据表名 显示创建表的语句\G 把数据立起来显示mysql> show create table stu\G…显示:]row ***************************Table: stuCreate Table: CREATE TABLE 'stu' ('id' int(ll) NOT NULL AUTOJNCREMENT'name' varchar(20) DEFAULT NULL,'sex' tinyint ⑷ DEFAULT *3','age' tinyint ⑷ DEFAULT NULL,PRIMARY KEY ('id'),UNIQUE KEY 'name' ('name'))ENGINE 二MylSAM DEFAULT CHARSET=utf8'1 row in set (0.00 sec) mysql>-查看表结构 mysql> desc stu;™显示:mysql>…对于id 是主键、自增,不要管他!! !一-增insert 插入-插入一条数据insert into 表名(字段名1,字段名2……)value (字段1的值,字段2的 值……); mysql> insert into stu (name,sex,age ) value ('李大锤',2,18);I —I…Mk/Ix :Query OK, 1 row affected (0.02 sec)mysql>—查询stu 表的所有的数据select 查 mysql> select * from stu;I id | name| sex | age | 18 | mysql>--直插入了 name,age 两个字段,sex 字段使用默认值3 mysql> insert into stu(name,age ) value 。
mysql数据库学习(实训练习)1、在数据库中新建⼀张 product表:包括字段p_id(int)、p_Name(varchar)、price(double)、num(int)、company(varchar)、address(varchar)create table product(p_id int not null primary key auto_increment,p_Name varchar(4),price double(6,2),num int,company varchar(10),address varchar(10));2、新增⼏条产品记录:电视机、冰箱、服装、⼿机;(按照下⾯的数据插⼊)insert into product(`p_Name`,`price`,`num`,`company`,`address`)values("电视",1000.00,800,"长虹","成都"),("电视",1000.00,1000,"海尔","成都"),("冰箱",1800.00,300,"长虹","北京"),("冰箱",3500.00,500,"海尔","重庆"),("服装",280.00,1000,"雅⼽尔","成都"),("服装",1200.00,200,"雅⼽尔","北京"),("⼿机",2500.00,200,"华为","深圳"),("⼿机",200.00,1200,"",""),("⼿机",204.00,1500,"","");("⼿机",202.00,1000,"","");3、将所有电视机的数量修改为1000台,将所有⼿机的价格修改为2500元;-- 修改所有numupdate product set num = 1000;update product set num = 1000 where p_Name = "电视" ;update product set price = 2500 where p_Name = "⼿机" ;4、删除⼿机价格介于1000元和2000元之间的记录;delete from product where price between 1000.00 and 2500.00;5、查询出所有价格⼤于200元的服装或价格⼩于5000元的冰箱;select * from product where p_Name ="服装" or p_Name = "冰箱" and (200 > price < 5000) ;select * from product where p_Name='冰箱' and price<=5000 or p_Name="服装" and price>=200;例如:1 电视 1000.00 800 长虹成都2 电视 1000.00 1000 海尔成都3 冰箱 1800.00 300 长虹北京4 冰箱 3500.00 500 海尔重庆5 服装 280.00 1000 雅⼽尔成都6 服装 1200.00 200 雅⼽尔北京7 ⼿机 2500.00 200 华为深圳8 ⼿机 200.00 12009 ⼿机 204.00 150010 ⼿机 202.00 10001、新建⼀张表Student表,包括字段:s_id(学⽣id,整型,主键),s_number(学号,整型),s_name(姓名,字符型),s_age(年龄,整型),s_tel(电话,字符型),s_address(地址,字符型),s_score(成绩,浮点型),其中,s_id(学⽣ID)为主键;create table Student(s_id int not null primary key auto_increment,s_number int,s_name varchar(10),s_age int,s_tel varchar(11),s_address varchar(20),s_score double(6,2));2、插⼊10条记录,显⽰不同的学⽣记录,以s_id进⾏区分;insert into Student(`s_number`,`s_name`,`s_age`,`s_tel`,`s_address`,`s_score`)values(19301041,"⼩⼀",18,"134********","四川成都",89),(19301042,"⼩⼆",19,"134********","四川成都",80),(19301043,"⼩三",20,"134********","四川成都",62),(19301044,"⼩四",21,"134********","四川成都",77),(19301045,"⼩五",22,"134********","四川成都",98),(19301046,"⼩六",23,"134********","四川成都",38),(19301047,"⼩七",17,"134********","四川成都",79);3、查询出student表中分数⼤于80分或分数⼩于60分的学⽣;select * from Student where s_score>80 or s_score<60;4、查询出年龄在18岁以上的学⽣,并按照s_score的降序,s_number的升序进⾏排序;select * from Student where s_age>18 order by s_score desc, s_number asc;5、查询出年龄介于25岁⾄35岁之间的学⽣记录;select * from Student where s_age between 25 and 35;6、将表中所有年龄⼤于18岁的学⽣的地址修改为"成都",电话修改为"135***";update Student set s_address="成都",s_tel="135***" where s_age > 18;。
mysql数据库实操题MySQL数据库实操题通常涉及到数据库的创建、表的设计、数据的插入、查询和更新等方面。
以下是一个MySQL数据库实操题的示例:题目:假设你是一个图书馆管理员,需要创建一个数据库来管理图书馆的图书信息。
请按照以下要求完成数据库的设计和操作:1. 创建一个名为"library"的数据库。
2. 在该数据库中创建一个名为"books"的表,包含以下字段:book_id,图书编号,为整数类型,主键。
title,图书标题,为字符串类型。
author,图书作者,为字符串类型。
publication_year,图书出版年份,为整数类型。
quantity,图书数量,为整数类型。
3. 向"books"表中插入以下数据:book_id: 1, title: "Harry Potter and the Philosopher's Stone", author: "J.K. Rowling",publication_year: 1997, quantity: 5。
book_id: 2, title: "To Kill a Mockingbird", author: "Harper Lee", publication_year: 1960, quantity: 3。
book_id: 3, title: "1984", author: "George Orwell", publication_year: 1949, quantity: 2。
4. 查询"books"表中所有图书的信息。
5. 查询"books"表中所有作者为"J.K. Rowling"的图书信息。
sql: structured query language(结构化查询语言)用户名和密码:root创建一个名称为mydb1的数据库。
create database mydb1;查看所有数据库show databases;创建一个使用utf-8字符集的mydb2数据库。
create database mydb2 character set utf8;创建一个使用utf-8字符集,并带校对规则的mydb3数据库。
create database mydb3 character set utf8 collate utf8_general_ci;显示库的创建信息show create database mydb3;删除前面创建的mydb1数据库drop database mydb1;查看服务器中的数据库,并把其中某一个库的字符集修改为gb2312;alter database mydb2 character set gb2312;show create database mydb2;备份库1、准备库的数据create database mydb1;use mydb1;create table test(id int);insert into test(id) values(1);select * from test;2、备份库2.1 退出mysql客户端:quit2.2 在windows命令行窗口中下执行:mysqldump -uroot -p mydb1>c:\test.sql3、删除库:drop database mydb1;4、恢复库(1):4.1 创建库:create database mydb1;4.2 source c:\test.sql (通过执行脚本文件实现)5、恢复库(2):mysql -uroot -p mydb1<c:\test.sql (window命令)创建一个员工表use mydb1; 进入库create table employee(id int,name varchar(20),gender varchar(4),birthday date,entry_date date,job varchar(40),salary double,resume text)character set utf8 collate utf8_general_ci;查看库中所有表show tables;查看表的创建细节show create table employee;查看表的结构desc employee;在上面员工表的基本上增加一个image列。
alter table employee add image blob;修改job列,使其长度为60。
alter table employee modify job varchar(60);删除sex列。
alter table employee drop gender;表名改为user。
rename table employee to user;修改表的字符集为utf-8alter table user character set gb2312;show create table user;列名name修改为usernamealter table user change column name username varchar(20);使用insert语句向表中插入一个员工的信息。
insert into employee(id,username,birthday,entry_date,job,salary,resume) values(1,'aaa','1980-09-09','1980-09-09','bbb',1000,'bbbbbbbb');查看插入的数据select * from employee;使用insert语句向表中插入一个员工的信息。
insert into employee(id,username,birthday,entry_date,job,salary,resume) values(2,'小李子','1980-09-09','1980-09-09','bbb',1000,'bbbbbbbb');插入失败后的解决方案show variables like 'chara%';set character_set_client=gb2312;显示失败后的解决方案set character_set_results=gb2312;将所有员工薪水修改为5000元。
update employee set salary=5000;将姓名为’aaa’的员工薪水修改为3000元。
update employee set salary=3000 where username='aaa';将姓名为’aaa’的员工薪水修改为4000元,job改为cccupdate employee set salary=4000,job='ccc' where username='aaa';将aaa的薪水在原有基础上增加1000元。
update employee set salary=salary+1000 where username='aaa';删除表中名称为’zs’的记录。
delete from employee where username='小李子';删除表中所有记录。
delete from employee;使用truncate删除表中记录。
truncate table employee;查询表中所有学生的信息。
select id,name,chinese,english,math from student;select * from student;查询表中所有学生的姓名和对应的英语成绩。
select name,english from student;过滤表中重复数据。
select distinct english from student;在所有学生的英语分数上加10分特长分。
select name,english+10 from student;统计每个学生的总分。
select name,(english+chinese+math) from student;使用别名表示学生分数。
select name as 姓名,(english+chinese+math) as 总分 from student; select name 姓名,(english+chinese+math) 总分 from student;查询姓名为王五的学生成绩select * from student where name='王五';查询英语成绩大于90分的同学select * from student where english>90;查询总分大于200分的所有同学select * from student where (english+chinese+math)>200;查询英语分数在 80-90之间的同学。
select * from student where english>80 and english<90;select * from student where english between 80 and 90;查询数学分数为89,90,91的同学。
select * from student where math=80 or math=90 or math=91; select * from student where math in(80,90,91);查询所有姓李的学生成绩。
select * from student where name like '李%';对数学成绩排序后输出。
select name,math from student order by math;对总分排序后输出,然后再按从高到低的顺序输出select name from student order by (math+english+chinese) desc;对姓李的学生成绩排序输出select name 姓名,(math+english+chinese) 总分 from student where name like '李%' order by (math+english+chinese) desc;统计一个班级共有多少学生?select count(*) from student;select count(name) from student;统计数学成绩大于90的学生有多少个?select count(*) from student where math>90;统计总分大于250的人数有多少?select count(*) from student where (math+english+chinese)>250;统计一个班级数学总成绩?select sum(math) from student;统计一个班级语文、英语、数学各科的总成绩select sum(math),sum(chinese),sum(english) from student;统计一个班级语文、英语、数学的成绩总和select sum(chinese+math+english) from student;统计一个班级语文成绩平均分select sum(chinese)/count(chinese) from student;求一个班级数学平均分?select avg(math) from student;求一个班级总分平均分select avg(chinese+english+math) from student;求班级最高分和最低分select max(chinese+english+math),min(chinese+english+math) from student;对订单表中商品归类后,显示每一类商品的总价select product from orders group by product;select product,sum(price) from orders group by product;查询购买了几类商品,并且每类总价大于100的商品select product from orders group by product having sum(price)>100;定义带有主键约束的表create table test1(id int primary key,name varchar(20),password varchar(20));定义一个主键自动增长的表create table test2(id int primary key auto_increment,name varchar(20),password varchar(20));create table test3(id int primary key auto_increment,name varchar(20) unique);create table test4(id int primary key auto_increment,name varchar(20) unique not null);//什么是外键约束create table husband(id int primary key,name varchar(20));create table wife(id int primary key,name varchar(20),husband_id int,constraint husband_id_FK foreign key(husband_id) references husband(id)//一对多或多对一create table department()create table employee()//多对多create table teacher(id int primary key,name varchar(20),salary double);create table student(id int primary key,name varchar(20));create table teacher_student(teacher_id int,student_id int,primary key(teacher_id,student_id),constraint teacher_id_FK foreign key(teacher_id) references teacher(id), constraint student_id_FK foreign key(student_id) references student(id) );//一对一create table personid int primary key,name varchar(20));create table idcard(id int primary key,address varchar(40),constraint id_FK foreign key(id) references person(id) );。