MySQL学习-数据库创建-数据库增删改查语句-事务-索引

本文介绍了SQL语言的基本概念和在MySQL中的应用,包括数据查询、数据管理、数据库操作如创建、查询、修改和删除,以及事务控制。此外,还涉及了表操作,如数据类型、约束、修改表结构,以及索引的创建和管理。
摘要由CSDN通过智能技术生成

MySQL学习

前言

SQL是结构化查询语言的缩写,用于管理关系数据库(RDBMS)中的数据。SQL语言由IBM公司的Donald Chamberlin和Raymond Boyce于20世纪70年代开发而来,是关系型数据库最常用的管理语言。

使用SQL语言可以实现关系型数据库中的数据处理、数据查询、数据管理以及数据安全等操作。SQL语言具有代码简洁易读的特点,也能够支持多种不同的查询操作,如联合查询、嵌套查询和排序查询等。

SQL语言的基础语法主要包括数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)和事务控制语言(TCL)等。在实际应用中,我们通常使用工具,如MySQL、Oracle和Microsoft SQL Server等,来进行SQL语言的操作。

总的来说,SQL语言在关系型数据库管理中起着至关重要的作用,是大量的数据管理工作不可或缺的一种工具。

  • 注意:

下面的SQL语句中 [ ]里的内容可看情况省略

1.DDL(数据库操作)

1.1 查询

1.1.1 查询所有数据库:
show databases;
1.1.2 查询当前数据库
select database();

1.2 使用

1.2.1 使用数据库
use 数据库名;

1.3 创建

1.3.1 创建数据库
create database 数据库名;

2.如果不存在才创建

create database if not exists 数据库名; 

1.4 删除

1.4.1 删除数据库
drop database 数据库名;

1.4.2 如果存在才删除

drop database if exists 数据库名;

2 DDL(表操作语言)

2.1 创建表

create table 表名(
       字段1 字段类型 [约束] [comment 字段1注释],
        ……
       字段1 字段类型 [约束] [comment 字段2注释]
) [comment 表注释]

2.2 约束

  • 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
  • 目的:保证数据库中数据的正确性、有效性和完整性。

在这里插入图片描述

2.3 数据类型

2.3.1 数值类型

在这里插入图片描述

2.3.2 字符串类型

在这里插入图片描述

2.3.3 日期类型

在这里插入图片描述

2.4 查询

2.4.1 查询当前数据库的所有表
show tables;
2.4.2 查询表结构
desc 表名;
2.4.3 查询建表语句
show create table 表名;

2.5 修改

2.5.1 添加字段
alter table 表名 add 字段名 类型(长度)[comment 注释] [约束];
2.5.2 修改字段类型
alter table 表名 modify 字段名 新数据类型(长度);
2.5.3 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释][约束];
2.5.4 删除字段
alter table 表名 drop column 字段名;
2.5.5 修改表名
rename table 表名 to 新表名;
2.5.6 删除表
drop table [if exists] 表名;

3 DML(数据操作语言)

3.1 insert语法

3.1.1 指定字段添加数据
inster into 表名 (字段1,字段2) values (值1,值2);
3.1.2 全部字段添加数据
insert into 表名 values (值1,值2,...);
3.1.3 批量添加数据(指定字段)
insert into 表名(字段名1,字段名2)values(值1,值2),(值1,值2);
3.1.4 批量添加数据(全部字段)
insert into 表名 values (值1,值2,....),(值1,值2,....)...;

3.2 delete语法

3.2.1 删除数据
delete from 表名 [where 条件]

3.3 update语法

3.3.1 修改数据
update 表名 字段1=值1,字段2=值2,……[where 条件]

4 DQL(数据查询语言)

4.1 DQL-基本查询

4.1.1 查询多个字段
selce 字段1,字段2,··· from 表名;
4.1.2 查询所有字段(通配符)
select * from 表名;
4.1.3 设置别名
select 字段1 as 别名1, 字段2 as 别名2,··· from 表名;
4.1.4 去除重复记录
select distinct 字段列表 from 表名;

4.2 DQL-条件查询

4.2.1 条件查询
select 字段列表 from 表名 where 条件;

在这里插入图片描述
在这里插入图片描述

4.3 DQL-聚合查询

4.3.1 聚合查询
select 聚合函数(字段) from 表名;

在这里插入图片描述

4.4 分组查询

4.4.1 分组查询
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]

eg1:根据性别分组,统计男性和女性员工的数量

select gender,count(*) from tb_emp group by gender;

eg2:先查询入职时间在‘2015-01-01’(包含)以前的员工,并对结果根据职位分组,获得员工数量大于等于2是的职位(分组后的条件要用having)

select job ,count() as 数量 from tb_emp where entrydate<=‘2015-01-01’
group by job having count(
) >=2;

4.4.2 流程控制语句

在这里插入图片描述
原数据:
在这里插入图片描述

eg1:if(条件,true,fasle)

select if(gender=1,'男','女') 性别, count(*) 数量 from 表名 group by gender; 

在这里插入图片描述

eg2:ifnull(字段,显示)

select name,ifnull(job,'未定义职业') 职业 from 表名;

在这里插入图片描述
eg3:case 字段,when 值1 then 显示1 when 值2 then 显示2 …else 显示 end

select name 姓名, case job when 1 then '班主任' when 2 then '讲师' when 3 then '学生' else '教官' end 职业 from 表名;

在这里插入图片描述

4.5 DQL-排序查询

4.5.1 条件查询
select 字段列表 from 表名 [where 条件列表] [group by 分组字段] order by 字段1 排序方式,字段2 排序方式 ;

排序方式

  • ASC 升序(默认)
  • DESC 降序

4.6 DQL-分页查询

4.6.1 分页查询
select 字段列表 from 表名 limit 起始索引,查询记录数;

5 多表查询

5.1 内连接查询 A∩B

5.1.1 隐式内连接
select 字段列表 from 表1,表2 where 条件...;
5.1.2 显式查询
select 字段列表 from 表1 [inner] join 表2 on 连接条件...;

5.2 外连接

5.2.1 左外连接 (A+A∩B)
select 字段列表 from 表1 left [outer] join 表2 on 连接条件;
5.2.2 右外连接 (B+A∩B)
select 字段列表 from 表1 right [outer] join 表2 on 连接条件...;

5.3 子查询

介绍:SQL语句中嵌套select语句,称为嵌套查询,又称子查询

select * from t1 where 字段 = (select 字段 from t2 ... );
select * from 表名 where (字段1,字段2) = (select 字段1,字段2 from 表名 [where 条件];

6 事务

6.1 概念

事务 是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作 要么同时成功,要么同时失败。

6.2 事务控制
  • 开始事务
 start transaction;  或  begin ;
  • 提交事务
commit;
  • 回滚事务
rollback;

7 索引

7.1 概念

索引是帮助数据库高效获取数据的数据结构。

7.2 语法

7.2.1 创建索引
create [unique] index 索引名 on 表名(字段名,...);
7.2.2 查看索引
show index from 表名;
7.2.3 删除索引
drop index 索引名 on 表名;
7.2.4 注意事项
  • 主键字段,在建表时,会自动创建主键索引。
  • 添加唯一约束时,数据库实际上会条件唯一索引。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

giao源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值