mysql
1.数据库相关概念
名称 | 全称 | 简称 |
---|---|---|
数据库 | 存储数据的仓库,数据是有组织的进行存储 | DataBase(DB) |
数据库管理系统 | 操纵和管理数据库的大型软件 | Database Management System(DBMS) |
SQL | 操作关系数据库的编程语言,定义了一套操作关系数据库统一标准 | Structured Query Language(SQL) |
-
主流的关系型数据库管理系统
Oracle 、MySQl、SQL server、PostgreSQL
2.MySQL数据库
1.客户端链接
方式一:MySQL提供的客户端命令工具
方式二:系统自带的命令行工具执行指令
2.关系型数据库(DBMS)
概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库
特点:
1.使用表存储数据,格式统一,便于维护
2.使用SQL语言操作,标准统一,使用方便
3.数据模型
3.SQL
1.SQL通用语法
1.SQL语句可以单行或多行书写,以分号结尾
2.SQL语句可以使用空格/缩进来增强语句的可读性
3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
4.注释:
- 单行注释:-- 注释内容 或 # 注释内容(MySQL特有)
- 多行注释:/* 注释内容 */
2.SQL分类
分类 | 全称 | 说明 |
---|---|---|
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表,字段) |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
3.DDL
1.DDL-数据库操作
1.查询
查询所有数据库
SHOW DATABASES;
查询当前数据库
SELECT DATABASE();
2.创建
CREATE DATABASE[IF NOT NULL] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
3.删除
DROP DATABASE[IF EXISTS]数据库名;
4.使用
USE 数据库名;
2.DDL-表操作-查询
1.查询当前数据库所有表
SHOW TABLES;
2.查询表结构
DESC 表名;
3.查询指定表的见表语句
SHOW CREATE TABLE 表名;
3.DDL-表操作-创建
CREATE TABLE 表名{
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段2类型[COMMENT 字段2注释],
字段3 字段3类型[COMMENT 字段3注释],
.........
字段n 字段n类型[COMMENT 字段n注释]
}[COMMENT 表注释];
4.DDL-表操作-数据类型
数值类型、字符串类型、日期时间类型
5.DDL-表操作-修改
- 添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释] [约束];
- 修改字段
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
- 修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
- 删除字段
ALTER TABLE 表名 DROP 字段名;
- 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
6.DDL-表操作-删除
- 删除表
DROP TABLE[IF EXISTS] 表名;
- 删除指定表,并重新创建该表
TRUNCATE TABLE 表名;
4.DML
1.DML-介绍
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。
2.DML-添加数据
1.给指定字段添加数据
insert into 表名 (字段名1,字段名2,....) values (值1,值2,...);
2.给全部字段添加数据
insert into 表名 values (值1,值2,...);
3.批量添加数据
insert into 表名 (字段名1,字段名2,....) values (值1,值2,...),(值1,值2,....),(值1,值2,...);
insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...);
3.DML-修改数据
update 表名 set 字段名1=值1,字段名2=值2,...[where 条件];
4.DML-删除数据
delete from 表名 [where 条件];
5.DQL
1.DQL-介绍
DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库表的记录。
查询关键字:**[select]()**
2.DQL-语法
select
字段列表
from
表名列表
where
条件列表
group by
分组字段列表
having
分组后条件列表
order by
排序字段列表
limit
分页参数
3.DQL-基本查询
1.查询多个字段
select 字段1,字段2,字段3,.... from 表名;
select * from 表名;
2.设置别名
select 字段1[as 别名1],字段2[as 别名2],.... from 表名;
3.去除重复记录
select distinct 字段列表 from 表名;
4.DQL-条件查询
1.语法
select 字段列表 from 表名 where 条件列表;
2.条件
5.DQL-聚合函数
1.介绍
将一列数据作为一个整体,进行纵向计算
2.常见聚合函数
3.语法
select 聚合函数(字段列表)from 表名;
(所有的null值不参与聚合函数运算)
6.DQL-分组查询
1.语法
select 字段列表 from [where 条件] group by 分组字段名 [having 分组后过滤条件];
2.where和having区别
- 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之和对结果进行过滤。
- 判断条件不同:where不能对聚合函数进行判断,而having可以。
7.DQL-排序查询
1.语法
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
2.排序方式
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段来进行排序。
8.DQL-分页查询
语法
select 字段列表 from 表名 limit 起始索引,查询记录数;
9.DQL-执行顺序
select 4
字段列表
from 1
表名列表
where 2
条件列表
group by 3
分组字段列表
having
分组后条件列表
order by 5
排序字段列表
limit 6
分页参数
6.DCL
1.DCL-介绍
DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库访问权限。
2.DCL-管理用户
1.查询用户
use mysql;
select * from user;
2.创建用户
create user '用户名' @ '主机名' identified by '密码';
3.修改用户密码
alter user '用户名' @ '主机名' identified with mysql_native_password by '新密码';
4.删除用户
drop user '用户名' @ '主机名';
3.DCL-权限控制
MySQL中定义了很多种权限,但是常用的就以下几种:
1.查询权限
show grants for '用户名' @ '主机名';
2.授予权限
grant 权限列表 on 数据库名.表名 to '用户名' @ '主机名';
3.撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名' @ '主机名';
4.函数
函数:是指一段可以直接被另一段程序调用的程序或代码。
1.字符串函数
MySQL中内置了很多字符串函数,常用的几个如下:
select 函数(参数);
2.数值函数
常见的数值函数如下:
select 函数(参数);
3.日期函数
常见的日期函数如下:
select 函数(参数);
4.流程函数
流程控制函数在SQL语句中实现条件筛选,从而提高语句的效率
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)