1.创建一个名称为mydb1的数据库。
Create database mydb1;
2.创建一个使用utf8字符集的mydb2数据库。
create database mydb2 charset utf8;
3.创建一个使用utf8字符集,并带校对规则的mydb3数据库
create database mydb3 charset utf8 collate utf8_bin;
4.查看当前数据库服务器中的所有数据库
show databases;
5.删除前面创建的mydb1数据库
drop database mydb1;
6.创建一个员工表employee
字段 |
属性 |
id |
整型 |
name |
字符型 |
gender |
字符型 |
birthday |
日期型 |
entry_dayte |
日期型 |
job |
字符型 |
salary |
小数型 |
resume |
大文本型 |
create table employee(
id int,
name varchar(20),
gender varchar(2),
birthday date,
entry_dayte date,
job varchar(20),
salary double,
resume longtext
);
7.修改表练习
1在上面员工表的基本上增加一个image列。
alter table employee add image longblob;
2修改job列,使其长度为60。
alter table employee modify job varchar(60);
3删除gender列。
alter table employee drop gender;
4表名改为emp。
rename table employee to emp;
5列名name修改为empname
alter table emp change name empname varchar(20);
8.使用insert语句向表中插入三个员工的信息。
要求:三个员工的名字分别为 张三、李四、王五。其他字段无要求
insert into emp(empname) values('张三'),('李四'),('王五');
9.在上面创建的employee表中修改表中的纪录。
要求:
将所有员工薪水修改为5000元。
update employee set salary = 5000;
(更新表的时候,不用加table,不用加table,不用加table啊啊啊啊啊)
将姓名为张三的员工薪水修改为3000元。
update employee set salary = 3000 where name = '张三';
将姓名为李四的员工薪水修改为4000元,job改为ccc。
update employee set salary = 4000,job = 'ccc' where name = '李四';
(set后面有多个条件需要设置的时候,中间用逗号隔开就行了,切记,切记!!!)
将王五的薪水在原有基础上增加1000元。
update employee set salary = salary + 1000 where name = '王五';
(int,double等数值类型加减乘除都可以,其他类型这么运算毫无意义)
10.删除表中名称为张三的记录。
delete from employee where name = '张三';
(删除表中的一行记录用的是delete from ......)
11.删除表中所有记录。
delete from employee;
12.创建考试表: 表名: exam
字段: id int 主键 name varchar math int chinese int english int |
create table exam(
id int,
name varchar(20),
math int,
chinese int,
english int
);
录入数据
id |
name |
math |
chinese |
english |
1 |
小毛 |
88 |
78 |
70 |
2 |
小邓 |
90 |
91 |
92 |
3 |
小江 |
65 |
66 |
98 |
4 |
小胡 |
88 |
77 |
66 |
insert into exam values(1,'小毛',88,78,70);
insert into exam values(2,'小邓',90,91,92);
insert into exam values(3,'小江',65,66,98);
insert into exam values(4,'小胡',88,77,66);
13.查询表中所有学生的信息。
select * from exam;
14.查询表中所有学生的姓名和对应的英语成绩。
select name,english from exam;
15.统计每个学生的总分。
select id,name,math+chinese+english total_score from exam;
16.查询姓名为小江的学生成绩
select name,math,chinese,english from exam where name = '小江';
#select * from exam where name = '小江';
17.查询英语成绩大于90分的同学
select name,english from exam where english > 90;
18.查询总分大于200分的所有同学
select name,math+chinese+english total_score from exam where math+chinese+english > 200;
(错误写法:
select name,math+chinese+english total_score from exam where total_score > 200;#由于先执行的是where中的语句,当时total_score还没有被创建,所以报错!!!)
19.查询英语分数在 80-90之间的同学。
select name,english from exam where english between 80 and 90;
(千万不要忘记写from exam,不然鬼知道你操作的是哪个表啊!!!)
20.查询数学分数为89,90,91的同学。
select name,math from exam where math in(89,90,91);
21.查询所有姓李的学生成绩。
select name,math,chinese,english from exam where name = '李%';
22.查询数学分>80,语文分>80的同学。
select name,math,chinese from exam where math > 80 and chinese > 80;
23.对总分排序按从高到低的顺序输出。
select id,name,math+chinese+english total_score from exam order by math+chinese+english desc;
(千万别忘了写from exam)
24.对学生成绩按照英语进行降序排序,英语相同学员按照数学降序。
select name,english,math from exam order by english desc,math desc;
25.统计一个班级共有多少学生?
select count(*) from exam;
26.统计数学成绩大于90的学生有多少个?
select count(*) from exam where math > 90;
27.统计总分大于220的人数有多少?
select count(*) from exam where math+chinese+english > 220;
28.统计一个班级数学总成绩?
select sum(math) from exam;
29.统计一个班级语文、英语、数学各科的总成绩
select sum(chinese) '语文总成绩',sum(english) '英语总成绩',sum(math) '数学总成绩' from exam;
30.统计一个班级语文、英语、数学的成绩总和
select sum(chinese+math+english) from exam;
#没有指定,就计算全部的
31.统计一个班级语文成绩平均分
select avg(ifnull(chinese,0)) '语文成绩' from exam;