重拾MySQL之概述和SQL语言

1. 数据库概述

在这里插入图片描述

1.1 SQL

SQL的全程是 Structured Query Language,用来完成和数据库的通信,SQL是一套标准,不只限于操作MySQL,绝大部分关系性数据库都可以使用SQL进行操作。

1.2 数据库

数据库通常是一组或者一个文件,保存了一些符合特定规格的数据,称为Database,简称DB;

1.3 数据库管理系统

数据库管理系统:DataBaseMangement,简称DBMS,用来专门管理数据库中数据的。

1.4 关系型数据库(RDBMS)

建立在关系模型的基础上,由多张互相链接的二维表组成的数据库。

如图中:员工表通过dept_id字段和部门表中的id字段相关联。
在这里插入图片描述
优点:

  1. 使用表存储数据,格式统一,便于维护;
  2. 使用SQL语言操作,标准统一,使用方便。

1.5 数据模型

服务端通过DBMS来操作数据库。

在这里插入图片描述

1.6 MySQL 数据类型

1.6.1 数值型

图片来源:菜鸟教程

1.6.2 日期和时间类型

图片来源:菜鸟教程

1.6.3 字符串类型

图片来源:菜鸟教程

2. SQL

SQL语法:

  1. 可以多行和单行,以分号;结尾;
  2. 对空格和缩行没有特殊要求;
  3. 不区分大小写;
  4. 注释:
    ①单行注释:--#
    ②多行注释:/* */

声明 :下方代码中的 [ ] 指的是自己传入的名称,在真正写代码时不需要写。

2.1 DDL

Data Definition Language 数据定义语言,用来定义数据库对象。

  1. show databases;:查询所有数据库;
  2. select database():查看当前数据库;
  3. create database db_name :创建数据库;
  4. drop database db_name:删除数据库;
  5. use db_name:使用数据库;
  6. alter table [表名] add [字段名称] [类型(长度)]:添加字段;
  7. alter table [表名] change [旧字段名称] [新名称] [类型(长度)]:修改字段;
  8. alter table [表名] drop [字段名]:删除字段;
  9. alter table [表名] rename to [新名]:修改表名;
  10. drop table [表名]:删除表;
  11. truncate table [表名]:删除表之后再重新创建。

2.2 DML

Data Manipulaiton Language 数据操作语言,用来对数据表中的数据进行增删改。

2.2.1 插入数据
  1. 给指定字段添加数据
insert into [表名] (字段1,字段2,字段3...) values (1,值2,值3...);
  1. 给全部字段添加数据
insert into [表名] into (1,2,3...);
  1. 批量添加数据
insert into [表名] (字段1,字段2,字段3...) values (1,值2,值3...) ,(1,值2,值3...),(1,值2,值3...);
insert into [表名] into (1,2,3...),(1,2,3...),(1,2,3...);
2.2.2 更新数据

一般在最后使用where关键字来指定要修改的行,不指定就修改全部数据。

update [表名称] set 字段1 =1, 字段2 =2 ... 
2.2.3 删除数据

一般在最后使用where关键字来指定要删除的行,不指定就删除全部数据。

delete from [表名] 

2.3 DQL

Data Query Language 数据查询语言,用来查询数据库中表的记录。

2.3.1 基本语法
select [字段1,字段2,字段3...] from [表名]
  1. 查询全部字段
select * from [表名]
  1. 设置别名
select [字段1] as [别名1] ... from [表名]
  1. 去重记录
select distinct [字段] from [表名]
2.3.2 条件查询
select [字段1,字段2,字段3...] from [表名] where [条件1,条件2...];

常见条件:
在这里插入图片描述

2.3.3 聚合函数

将一列数据作为一个整体,进行纵向计算。

常见聚合函数:

  1. count() 统计数量;
  2. max():最大值;
  3. min():最小值;
  4. avg():平均值;
  5. sum():求和。

用法:

select [集合函数(字段)] from [表名];
2.3.4 分组查询
select [字段1,字段2,字段3...] from [表名] group by [分组字段名] having [分组过滤条件];

havingwhere的区别:

  1. 执行时机不同where是分组之前进行过滤,不满足where的条件,不参与分组;having是分组之后对结果进行过滤;
  2. 判断条件不同where不能对聚合函数进行判断,having可以。
  3. 执行顺序where - 聚合函数 - having
2.3.5 排序查询
select [字段1,字段2,字段3...] from [表名] order by [字段1] [排序方式1], [字段2] [排序方式2] ... ;

排序关键字:

  1. ASC:升序(默认);
  2. DESC:降序。

多字段排序时,只有第一个字段值相同才会根据第二个字段排序。

2.3.6 分页查询
select [字段1,字段2,字段3...] from [表名] limit [起始索引],[查询记录数] ;
  1. 起始索引从0开始,为0可以省略;
    例如:查询前 10 条记录;
select * from tb_name limit 10;
  1. 查询其它页时:起始索引 = (页码 - 1) * 分页数量,可以简单的理解为从第 n条数据(不包含)开始查询 m 条(包含)。
    例如:查询第三页的 10 条数据:
select * from tb_name limit 20,10;
2.3.6 执行顺序

在这里插入图片描述

2.4 DCL

Data Control Language 数据控制语言,用来创建用户、控制数据库的访问权限。

2.4.1 用户管理
  1. 查询用户:
use mysql;
select * from user;
  1. 创建用户:
    主机名:在哪台主机可以访问数据库%代表全部主机。
create user '用户名'@'主机名' identified by '密码';
  1. 修改用户密码
alter user 用户名'@'主机名' identified with mysql_native_password by '密码';
  1. 删除用户
drop user '用户名'@'主机名';
2.4.2 权限控制

使用all可以表示全部权限,使用*可以表示全部的数据库或表。

常见权限:
在这里插入图片描述

  1. 查询权限:
show grants for '用户名'@'主机名';
  1. 授予权限:
grant [权限1,权限2...] on [数据库名].[表名] to '用户名'@'主机名';
  1. 撤销权限:
revoke [权限1,权限2...] on [数据库名].[表名] from '用户名'@'主机名';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值