MySQL-基础篇
2022/2/14 2:15:40
本文主要是介绍MySQL-基础篇,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
MySQL-基础篇
SQL分类
分类 | 全称 | 说明 |
---|---|---|
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表,字段) |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数库中表的记录 |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户,控制数据库的访问权限 |
1DDL
1.1DDL数据库操作
用来定义数据库对象
查询
查询所有数据库
show databases;
查询当前数据库
select database();
创建
create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
删除
drop database [if not exists] 数据库名;
使用
use 数据库名;
1.2 DDL表操作-查询
查询当前数据库所有表
show tables;
查询表结构
desc 表明;
查询指定表的建表语句
show create table 表名;
1.3DDL表操作-创建
CREATE table tb_user( id int comment '编号', name varchar(50) comment '姓名', age int comment '年龄', gender varchar(1) comment '性别' ) COMMENT '用户表';
1.3DDL表操作-数据类型
MySQL中的数据类型有很多,主要分为三类,数值类型,字符串类型,日期时间类型。
1.4DDL-表操作-修改
添加字段
alter table 表明 add 字段名 类型(长度) [comment 注释] [约束];
alter table emp add nickname varchar(50) comment "昵称"
修改数据类型
alter table 表明 modify 字段名 新数据类型(长度);
修改字段名和字段类型
alter table 表明 change 旧字段名 新字段名 类型(长度) [comment注释] [约束];
alter table emp change nickname username varchar(30) comment "昵称";
删除字段
alter table 表明 drop 字段名;
alter table emp drop username;
修改表名
alter table 表明 rename to 新表名;
alter table emp rename to employee;
删除表
drop table [if exists] 表明;
删除指定表,并重新创建该表
truncate table 表明;
注意:在删除表时,表中全部数据也会被删除。
2DML
DML用来对数据库中表的数据记录进行增删改查操作。
2.1DML-添加数据
1.给指定字段添加数据
insert into 表明(字段名1,字段名2,...)values(值1,值2,...);
INSERT into tb_user(id,name,age,gender) VALUES('1','zhangsan',18,'0');
2.给全部字段添加数据
insert into 表名 values(值1,值2,...);
insert into tb_user VALUES('2','lisi',19,'1');
3.批量添加数据
insert into 表名(字段名1,字段名2,...)values(值1,值2,...),(值1,值2,...);
INSERT into tb_user(id,name,age,gender) VALUES('3','wangwu',20,'0'),('4','zhaoliu',21,'0');
insert into 表名 values(值1,值2,...),(值1,值2,...);
insert into tb_user VALUES('5','tianqi',19,'1'),('6','zhaoba',19,'1');
注意:
插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
字符串和日期类型数据应该包含在引号中。
插入的数据大小,应该在字段的规定范围内。
2.2DML修改数据
update 表明 set 字段名1=值1,字段名2=值2,...[where 条件];
update tb_user set gender=0,age=20 where id=6;
注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
2.3DML删除数据
delete from 表明 [where 条件]
delete from tb_user where id=6;
注意:delete语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
delete语句不能删除某一个字段的值(可以使用update)
3DQL
数据查询语言,用来查询数据库中表的记录。
查询关键字:select
基本语法
select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数
基本查询
条件查询(where)
聚合函数(count,max,min,avg,sum)
分组查询(group by)
排序查询(order by)
分页查询(limit)
3.1DQL-基本查询
1,查询多个字段
select 字段1,字段2,字段3… from 表名;
SELECT id,name,age,gender from tb_user;
select * from 表明;
SELECT * from tb_user;
2.设置别名
select 字段1[as 别名1],字段2[as 别名2] ...from 表明;
SELECT id,name as '姓名',age as '年龄',gender as '性别' from tb_user;
3.去除重复记录
select DISTINCT 字段列表 from 表名;
SELECT DISTINCT name from tb_user;
注意:*号代表查询所有字段,在实际开发中尽量少用(不直观,影响效率)。
3.2DQL-条件查询
语法
select 字段列表 from where 条件列表;
条件
比较运算符 | 功能 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<>或 != | 不等于 |
BETWEEN …AND… | 在某个范围之内(含最小,最大值) |
IN(…) | 在in之后的列表中的值,多选一 |
LIKE 占位符 | 模糊匹配(_匹配单个字符,%匹配任意个字符) |
IS NULL | 是NULL |
AND 或 && | 并且(多个条件同时成立) |
OR 或 || | 或者(多个条件任意一个成立) |
NOT 或! | 非,不是 |
3.3DQL-聚合函数
介绍
将一列数据作为整体,进行纵向计算。
常见聚合函数
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
语法
select 聚合函数(字段列表) from 表明;
**注意:**null值不参与所有聚合函数运算。
3.4DQL-分组查询
语法
select 字段列表 from 表名[where 条件] group by 分组字段名 [having 分组后过滤条件]
SELECT id,name,age,gender from tb_user GROUP BY gender HAVING age>17;
where与having区别
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。
**注意:**执行顺序:where>聚合函数>having.
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
3.5SQL-排序查询
语法
select 字段列表 from 表名 order by 字段1 排序方式1,字段2,排序方式2;
SELECT id,name,age,gender from tb_user ORDER BY age DESC, gender ASC ;
排序方式:
ASC:升序(默认值)
DESC:降序
**注意:**如果是多个字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
3.6SQL-分页查询
语法
select 字段列表 from 表名 LIMIT 起始索引,查询记录数;
SELECT id,name,age,gender from tb_user LIMIT 2,2 ;
注意:
起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。
分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT.
如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10;
3.7按照要求完成如下DQL语句编写
1.查询年龄为20,21,22,23 岁的员工信息。
SELECT id,name,age,gender from tb_user where age in(20,21,22,23);
2.查询性别为"男",并且年龄在20-24岁(含)以内的性为为三个字的员工
SELECT id,name,age,gender from tb_user where name LIKE '___' and age >20 and age<40;
3.统计员工表中,年龄小于60岁,男性员工和女性员工的人数。
select gender,count(id) from tb_user where age <60 GROUP BY gender ;
4.查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按照入职时间降序排序
select name,age from employee where age <35 ORDER BY age asc,entrydate DESC
5.查询性别为男,且年龄在20-40岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄系统按入职时间升序排序。
SELECT * from employee where gender =1 ORDER BY age asc,entrydate asc LIMIT 5;
这篇关于MySQL-基础篇的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20MySQL集群部署教程:入门级详解
- 2024-11-20MySQL集群教程:入门与实践指南
- 2024-11-20部署MySQL集群教程:新手入门指南
- 2024-11-20MySQL读写分离教程:轻松入门
- 2024-11-20部署MySQL集群入门:一步一步搭建你的数据库集群
- 2024-11-19部署MySQL集群学习:入门教程
- 2024-11-19如何部署MySQL集群:新手入门教程
- 2024-11-19Mysql安装教程:新手必看的详细安装指南
- 2024-11-18Mysql安装入门:新手必读指南
- 2024-11-18MySQL事务MVCC原理入门详解