本文主要提供一些Sql语句简单操作的小实例,大家也可以当做是小练习题,亲自在命令行里面操作一下
练习一
1.进入数据库服务器
2.查看当前服务器下已存在的数据库
3.将服务器的字符集改为utf8,创建一个数据库 名字为test
4.查看建库语句
5.使用test这个数据库
6.查看一下当前使用的数据库
7.创建一个数据表,名字为stu(id(int(10)),name(varchar(10)),sex(char(10)),age(tinyint),classid(varchar(20)))
8.查看数据表结构
9.查看建表语句
10.往stu表中插入2条数据: (1,小明,男,20,101)和(2,小红,女,18,102)
PS:如果插入失败,先执行 set names gbk; 命令再插入
11.查找一条数据,条件是名字为小明
12.修改一条数据,将小红的年龄改为20
13.删除掉id为1的一条数据
14.删除stu表
15.删除数据库test
16.退出服务器
答案:
1.进入数据库服务器
mysql -uroot -p
输密码
2.查看当前服务器下已存在的数据库
show databases;
3.将服务器的字符集改为utf8,创建一个数据库 名字为test
set character_set_server=utf8;
create database test;
4.查看建库语句
show create database test;
5.使用test这个数据库
use test
6.查看一下当前使用的数据库
select database();
7.创建一个数据表,名字为stu(id(int(10)),name(varchar(10)),sex(char(10)),age(tinyint),classid(varchar(20)))
create table stu(
`id` int unsigned primary key auto_increment,
`name` varchar(10),
`sex` char(10),
`age` tinyint,
`classid` varchar(20)
);
8.查看数据表结构
desc stu;
9.查看建表语句
show create table stu
10.往stu表中插入2条数据: (1,小明,男,20,101)和(2,小红,女,18,102)
insert into stu values (null,"小明","男",20,"101"),(null,"小红","女",18,"102");
PS:如果插入失败,先执行 set names gbk; 命令再插入
11.查找一条数据,条件是名字为小明
select * from stu where name="小明";
12.修改一条数据,将小红的年龄改为20
update stu set age=20 where name="小红";
13.删除掉id为1的一条数据
delete from stu where id=1;
14.删除stu表
drop table stu;
15.删除数据库test
drop database test
16.退出服务器
q
练习二
导入下面的学生表 : 链接
1.修改小组中年龄最小的那个人的性别为 g
2.修改小组中年龄相同的两个人的爱好为 dabolang
3.查询出表中年龄最大的人的所有信息
4.查询出表中年龄最小的人的姓名和爱好的信息
5.查询出表中性别为女的学生的信息
6.删除数据中年龄大于30的人的信息
7.将该表的数据加表结构导出到本地一份
8.修改当前用户的密码
10.只导出当前表的结构,不导出数据
练习三
还是刚刚的数据表
搜索stu表中id<20的所有数据;
搜索stu表中id在20-40之间的数据;
搜索stu表中id除了20-40之间的数据,并且id小于50;
搜索stu表中id在1,3,5,7,9之中的数据;
搜索id%2=0的所有数据
搜索stu表中name它名字以5结尾的数据,并且id小于50的数据;
搜索stu表中id数据以2开头的数据,并且id小于30的数据;
搜索stu表中classid班级包含155的数据,并且id小于50的数据;
搜索stu表中id不在1,3,5,7,9之中的数据,并且id小于20;
搜索stu表中id在20-40之间的数据;
先查询出stu表中id在50之中的数据,并对这些数据按班级分组,且对每个班级的学生数量统计出来
接上一题,光有数量还不够,我得知道它所对应的班级,是哪个班
再接上一题,分组结束之后,将学生数大于5的显示出来
查询stu表中,id小于50的数据,按照年龄降序排序
显示最先的10条数据
从下标为10的数据开始,每页显示10条
查询年龄最大的一个学生(子查询)
select * from stu where age=(select max(age) from stu) limit 1;
多表联查和字段拼接出两个题
PS:查询语句的书写顺序
select 字段信息 from 表名 where 分组前条件 group by 字段信息 having 分组后条件 order by 排序字段 [asc|desc] limit 分页条件;
暂存