目录
数据库概述
SQL基础操作
SQL通用语法
数据类型
SQL语句的分类
DDL(数据库定义,表定义,字段定义)
数据库操作
表操作
DDL小结
DML(数据的增删改,数据操作语言)
DQL(查询)
DQL小节
数据库概述
数据库,顾名思义就是用来存储和管理数据的,我们平时所使用的各大软件平台的各种的信息其实都是从背后的数据库中取出来呈现在我们的眼前,供我们使用的,就比如:拼多多各种的商品信息:价格,口碑,回购率等等,这些都不是定死的,而是一个个的数据库中的数据,甚至你微信钱包中的余额,也仅仅只是数据库中存储的几个数字罢了;
那我们怎么使用和管理数据库呢?
一,我们可以使用图形化管理界面,操作起来更加的简单;
二,我们可以使用特定的语言对数据库进行操作管理;
数据分为很多种,不过综合考虑,我们大多数人使用的都是MYSQL数据库,而对于MYSQL有一门专门的语言叫做SQL语言来对MYSQL数据库进行操作;即便没有使用MYSQL语言也没有关系,因为SQL语言对于其他的各种数据库来说也是能用的,在其他数据库中使用相差不大;
SQL基础操作
SQL通用语法
1.SQL语句可以单行或多行书写,以分号结尾;
2.SQL语句可以使用空格和缩进来增强语句的可读性;
3.MYSQL数据库中的SQL语句对命令的大小写检查并不区分,但是建议尽量使用大写;
4.注释:
a.单行注释:--注释内容或者#注释内容(MYSQL特有的);
b.多行注释:/*内容*/;
数据类型
整形数据我们通常使用int,浮点型数据通常使用varchar和char,日期通常使用的是date;
SQL语句的分类
DDL(数据库定义,表定义,字段定义)
数据库操作
表操作
1.查询
2.创建
3.修改
对表字段进行操作的关键字为alter;固定格式为alter table 表明 +操作动词...
1>向表中添加字段
eg:现在有一张表(表名:emp)有以下字段,现在我向表中添加一个nickname字段 数据类型为varchar(10);
使用语句
alter table emp add nickname varchar(10);
结果:
2>更新字段名和数据类型
依旧以上面的表格为例,现在要将name改为ename,类型改为varchar(20);
使用语句:
alter table emp change name ename varchar(20);
3>删除字段
使用语句:
alter table emp drop nickname ;
结果:
4>修改表名
使用语句:
alter table emp rename to tmp;
5>删除指定表
DDL小结
DML(数据的增删改,数据操作语言)
DML英文的全称是Data manipulation Language(数据库操作语言),用来对数据库中的数据进行增删改操作;
关键字
添加数据:insert ;
修改数据:update;
删除数据:delete;
1>添加一行或多行数据
a.我现在向刚才的表中添加一行小羽的数据;
使用语句:
insert into tmp (id,ename,gender,address) values("06","小羽",'女',"深圳");
此语句中字段语句可以省略 (id,ename,gender,address);
结果:
2>修改数据
现在我把小羽以及她的性别更改为 小杨 性别为男 ;
使用语句:
update tmp set ename ="小杨",gender ='男' where id ='06';
结果:
3>删除数据
where +条件是确定行的;假如我们没有使用where 那个删除就是整个字段的所有数据;
现在我将 上表中id为02的小明的那一行的数据删除;
使用语句:
delete from tmp where id ='02';
结果:
DQL(查询)
DQL的英文全称是Data Quary Language(数据查询语言),数据查询语言,用来查询数据库中的表的记录;
在我们的网站中我们使用的最常用的功能就是查询操作;所以查询操作是十分重要的;
查询关键字为:select ;
这里是查询操作的所有列表;接下来我们依次来解决;
1>基本查询
由于有了前面很多的操作的基础,这里我就不做演示了;
注意:出现了新的关键字distinct ,其目的就是去重;
2>条件查询
3>聚合函数
聚合函数的括号内的内容是字段;注意:*表示的是表中所有字段;
4>分组查询
分组就是将字段中的数据按照种类分成多组,就比如 组中有男和女性别,分组后会将所有男的分到一张表中,将所有女的分到另外一张表中;
下面我将所刚才表中的男女进行分组;
错误语句(分组后打印组内的单个成员数据):
select id,ename,gender from tmp group by gender;
此语句中将男女分组了,分组后如果没有指定条件,那么gender只有一个男和一个女,但是我在打印表的时候并没有使用条件性别是男还是女,这就导致了以下结果;
因为每一组只有一行,所以名字是只打印一个组内第一个;
分组后通常是不可以在进行打印出组内每个成员的数据的,因为我们分组的目的就是统计,这时候我们的对象应该是组而不再是个人了;分组尝尝会与聚合函数一块使用,起作用就是为了统计;
正确语句:
select gender,count(*) from tmp where gender ='男'||gender='女' group by gender;
如果我们想在分组后在加上一个条件的话就要是用having;下面我时候用SQL语句展示男女人数大于2的数据表;
注意:having是分组后的条件,因为有的时候我们需要先分组才能进一步处理数据,就像上面的一样,我必须先分组才能根据性别找到人数多少;如果不分组的是无法达到目的的;
使用语句:
select gender,count(*) from tmp where gender ='男'||gender='女' group by gender having count(*)>2;
5>排序查询
注意:排序查询可以按照一个字段排序,也可以按照多个字段排序;如果按照多个字段排序,那就是先按照第一个字段排序,如果有相同的数据,相同的数据按照第二个字段再排序;
6>分页查询
关键字:limit;
limit之后需要跟两个参数;但是如果是从第一页开始查找的话,第一个参数0是可以省略的;
7>执行顺序