MySQL 从入门到跑路_01(实例实操)
MySQL 学习笔记_01(实例实操)
-
登录
mysql -u root -p
-
显示数据库
show databases;
-
新建一个数据库
create databases DemoOne;
-
show
一下
-
使用数据库
-
use DemoOne
DemoOne用做演示
-
-
添加表
-
比如我现在要做一个学生的数据库。应该会有<学生序号><学生学号><学生姓名><学生年龄><学生性别><学生电话号码>
-
create table student_info( id int NOT NULL, number bigint NOT NULL, name varchar(32) NOT NULL, age int NOT NULL, sex varchar(32) NOT NULL, phone bigint ) DEFAULT CHARSET=utf8;
-
-
查看表
-
需要在选择数据库后才能够查看选择的数据库中的表,如果不确定自己是否选择了数据库。用
select database();
来查看。 -
show tables;
-
如果要查看表的结构,可以用
desc [表名]
。 -
可以看见我上面的表中的数据age的数据格式出了问题,应该是int的因为现在还没有任何数据,可以删掉重建。
-
drop table student_info;
之后再新建一个即可。 -
修改的话可以用
alter table student_info modify age INT;
-
-
插入数据
-
--insert 的格式 insert into [表名] (字段1,字段2,字段3,....,字段n) values (值1,值2,值3,.....,值n) --插入一个数据 (值1,值2,值3,.....,值n) --如果需要插入多个数据,就这样 (值1,值2,值3,.....,值n) (值1,值2,值3,.....,值n); --不要忘记分号
-
随便插入一些数据
-
insert into student_info (id,number,name,age,sex,phone) values (1,12345601,"张一一",20,"男",10088), (2,12345602,"李二二",20,"女",10011), (3,12345603,"王三三",21,"男",10022), (4,12345604,"周思思",19,"女",10033), (5,13345609,"毛五五",21,"男",10055), (6,12345610,"陈六",19,"男",10023);
-
-
查看之前插入的数据
-
select ... from [表名]
-
比如
select * from student_info;
-
注意这里的
*
代表选择了所有字段。 -
如果要单选的话可以改,查看自己想要查看的数据。
-
select name from student_info;
-
如果说数据太多了还可以加上
limit
来查看前几个或者从哪开始查看下面的哪几个-
--limit 的用法 limit 4 -- 从0开始显示4个 (0,0+4=4] limit 2 3 --从2开始显示3个 (2,2+3=5]
-
-
-
-
筛选数据
-
筛选数据,可以用where来做。也可以将where,理解为if
-
比如,我要查看性别为女的学生信息
select * from student_info where sex="女";
-
我要查看性别为女并且年龄大于19岁的
select * from student_info where sex="女" and age > 19;
-
我要找出这几个学生当中姓毛的同学
select * from student_info where name like "毛%";
-
-
操作数据
-
排序
-
通过年龄大小升序来排列
select * from student_info order by age;
-
通过年龄大小降序来排列
select * from student_info order by age desc;
-
order by
默认是升序,在后面加上desc
就可以设置为降序。
-
-
找出学号在12345601和12345608之间的学生
select * from student_info where number between 12345601 and 12345608;
-
-
分组查询
-
分组查询是将数据先进行分组,然后再进行操作
-
--分组用的是group by select ... from ... group by ...
-
比如,我要不同性别的平均年龄
-
select sex,avg(age) from student_info group by sex;
-
那么如果我就是要查看女生的平均年龄,我不想查看男生的。
-
就需要使用到
having
-
select sex,avg(age) from student_info group by sex having sex="女";
-
select sex,avg(age) from student_info group by sex having sex="女";
-
having
的意思是:在已经分组的查询结果中,再进行一个过滤。
-
-