SQL进阶(2)——SQL语句类型 增删改查CRUD 事务初步 表关联关系 视图 +索引

目录

  • 引出
  • SQL语句类型
    • 1.DML数据操纵语言(重点)
    • 2.DQL数据查询语言(重点)
    • 3.DDL(Data Definition Language了解)
    • 4.DCL(Data Control Language了解)
    • 5.TCL 事务控制语言
  • 运算符和其他函数
    • 1.运算符
    • 2.其它函数
    • 增删改查CRUD
  • 视图
  • 索引
  • 事务
    • 1.原子性
    • 2.一致性
    • 3.隔离性
    • 4.持久性
  • 数据库表的关联关系
    • 1.一对一:(学生—身份证)
    • 2.一对多:(辅导员—学生)
    • 3.多对多:(学生—社团)
  • 总结

引出

1.SQL语句的类型,数据操作语句,数据查询语句;
2.MySQL的运算符,常用函数,增删改查CRUD语法;
3.数据操作的事务:原子性,一致性,隔离性,持久性;
4.数据库表关联关系,一对一,一对多,多对多;
5.视图,索引;


SQL语句类型

SQL程序语言有四种类型,对数据库的基本操作都属于这四类,它们分别为;数据定义语言(DDL)、数据查询语言(DQL)、数据操纵语言(DML)、数据控制语言(DCL)

1.DML数据操纵语言(重点)

对数据库表中的记录进行改变的sql语句

数据操纵语言全程是Data Manipulation Language,主要是进行插入元组、删除元组、修改元组的操作。主要有insert、update、delete语法组成。

添加:insert into 表名 (字段名…,…) values(值…,)

删除:delete from 表名 where …

修改:update 表名 set 字段名=值,字段名=值 where …

2.DQL数据查询语言(重点)

对数据库表中的记录进行查询的sql语句

数据查询语言全称是Data Query Language,所以是用来进行数据库中数据的查询的,即最常用的select语句

查询:select 字段名…,… from 表名 where …

3.DDL(Data Definition Language了解)

修改数据库结构的语句

DDL全称是Data Definition Language,即数据定义语言,定义语言就是定义关系模式、删除关系、修改关系模式以及创建数据库中的各种对象,比如表、聚簇、索引、视图、函数、存储过程和触发器等等。

数据定义语言是由SQL语言集中负责数据结构定义与数据库对象定义的语言,并且由CREATE、ALTER、DROP和TRUNCATE四个语法组成。比如:

4.DCL(Data Control Language了解)

修改数据库用户信息或者授权

数据控制语言:Data Control Language。用来授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,能够对数据库进行监视。

比如常见的授权、取消授权、回滚、提交等等操作。

5.TCL 事务控制语言

事务处理语句

TCL,事务控制语言。通过一组逻辑操作单元(一组DML——sql语句),将数据从一种状态切换到另外一种状态,即要么全部成功,要么全部失败。

(ACID)

  • 原子性(atomicity):要么都执行,要么都回滚
  • 一致性(consistency):保证数据的状态操作前和操作后保持一致
  • 隔离性(lsolation):多个事务同时操作相同数据库的同一个数据时,一个事务的执行不受另外一个事务的干扰
  • 持久性(durability):一个事务一旦提交,则数据将持久化到本地,除非其他事务对其进行修改

运算符和其他函数

1.运算符

=、>、<、>=、<=、!=

like ‘%_’(重点)

between…and…

and

or

not

in(1,2,3)

is null

is not null

2.其它函数

去重:select distinct 字段 from 表名

select distinct job from emp

排序:select … from 表名 order by 字段(默认升序 asc,降序 desc)(重点)

select * from emp order by score desc,sal

取范围:select … from 表名 limit (传一个参数:取的记录数,从第一条记录开始取;传两个参数:开始的位置0,取的记录数)(重点)

第一个数字:开始的位置(从0开始)

第二个数字:取的记录数

select * from emp order by score desc limit 1,3

最大值:max(字段)

最小值:min(字段)

平均值:avg(字段)

求和:sum(字段)

取记录数:count(1)

select count(1) from emp where empNum like 'N%'

分组:select…from 表名 where 字段… group by 字段 having count(1)…(having表示对分组后的数据进行查询,where表示对分组前的数据进行查询)

select max(score),max(sal),dept from emp group by dept

增删改查CRUD

添加:insert into 表名 (字段名…,…) values(值…,)

删除:delete from 表名 where …

修改:update 表名 set 字段名=值,字段名=值 where …

查询:select 字段名…,… from 表名 where …

模糊查询:select 字段名…,… from 表名 where 字段 like ‘%_’

排序:select … from 表名 order by 字段(默认升序 asc,降序 desc)

取范围:select … from 表名 limit (传一个参数:取的记录数,从第一条记录开始取;传两个参数:开始的位置0,取的记录数)

左联:以左边的表为基准,通过on的关联条件,查询右边的表来补充数据,如果查询不到,补充上null

select * from dept left join emp on emp.dept_id = dept.id

视图

将select语句进行保存

使用的时候当作表来用

原理:子查询

索引

作用:提高查询效率,通过建立索引的字段去查询

提高效率、牺牲空间

数据结构B+树

事务

1.原子性

事务中所有执行的sql合并成一个执行单元

undolog日志:update emp set age=17 where id=20

执行:update emp set age=18 where id=20

2.一致性

添加事务和不添加事务数据保持一致

3.隔离性

隔离级别:

1)读未提交:READ UNCOMMITTED,会产生脏读

2)读已提交:READ COMMITTED,会产生不可重复读

3)可重复读:REPEATABLE READ,会产生幻读(默认事务隔离级别)

4)串行化:SERIALIZABLE,效率低

4.持久性

持久化到数据库

数据库表的关联关系

1.一对一:(学生—身份证)

​ 直接将第二张表的字段添加进第一张表中

2.一对多:(辅导员—学生)

一:辅导员
多:学生(外键字段)

新建一张表,用来记录第二张表的信息,然后在第一张表中添加一个外键字段,关联到第二张表的主键

3.多对多:(学生—社团)

​ 新建一张表,用来记录第二张表的信息,然后再建立第三张关联表,里面添加第一张表和第二张表的主键作为字段


总结

1.SQL语句的类型,数据操作语句,数据查询语句;
2.MySQL的运算符,常用函数,增删改查CRUD语法;
3.数据操作的事务:原子性,一致性,隔离性,持久性;
4.数据库表关联关系,一对一,一对多,多对多;
5.视图,索引;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21851.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt实现画板绘制椭圆

Qt在窗体中绘图在paintEvent函数中进行,使用QPainter类进行窗体绘制 如果只是简单的在paintevent中向画布绘制椭圆,由于实时绘制的许多个椭圆重合在一起,就会出现下面的情况 你可以在每次绘制椭圆之前调用清空画布 myPix->fill(Qt::white);但是又会出现下面的情况,无法…

UE使用UnLua(一)

一、概述 Unlua是个功能丰富的插件&#xff0c;可以在UE中进行蓝图绑定&#xff0c;在Lua中进行逻辑开发&#xff0c;使用Lua热更新的特性&#xff0c;可以快速开发迭代表层逻辑 二、UnLua环境 首先下载UnLua的插件包&#xff0c;点击下载&#xff0c;不会吧不会吧还有人打不…

计算机网络-运输层

目录 一、运输层概述 二、运输层端口号、复用和分用的概念 &#xff08;一&#xff09;端口号 &#xff08;二&#xff09;发送方的复用和接收方的分用 &#xff08;三&#xff09;TCP/IP体系的应用层常用协议所使用的运输层熟知端口号 三、UDP和TCP的区别 四、TCP的流量…

DAY46:动态规划(八)01背包应用2:一和零(二维容量01背包)

文章目录 474.一和零思路为什么不是多重背包而是01背包与之前01背包问题的区别 DP数组的含义递推公式&#xff08;也是求最大值&#xff09;初始化遍历顺序完整版总结 474.一和零 本题属于 装满背包最多能有多少个物品 类型本题是容量有两个维度的背包&#xff0c;背包容量是m…

奥特曼与钢铁侠【InsCode Stable Diffusion美图活动一期】

文章目录 简介图片生成步骤更多体验方式 简介 InsCode 是一个一站式的软件开发服务平台&#xff0c;从开发-部署-运维-运营&#xff0c;都可以在 InsCode 轻松完成。 InsCode 的 Ins 是 Inspiration&#xff0c;意思是创作、寻找有灵感的代码。 Stable Diffusion是文图生成模型…

手机快充协议

高通:QC2.0、QC3.0、QC3.5、QC4.0、QC5.0、 FCP、SCP、AFC、SFCP、 MTKPE1.1/PE2.0/PE3.0、TYPEC、PD2.0、PD3.0/3.1、VOOC 支持 PD3.0/PD2.0 支持 QC3.0/QC2.0 支持 AFC 支持 FCP 支持 PE2.0/PE1.1 联发科的PE&#xff08;Pump Express&#xff09;/PE 支持 SFCP 在PP…

narak靶机详解

narak靶机复盘 首先对靶机进行扫描&#xff0c;找到靶机的真实ip地址。 然后dirb进行目录扫描&#xff0c;扫描到一个目录&#xff0c;我们打开发现是一个登陆界面。 并没有用户名和密码&#xff0c;我们就用cewl扫描这个网站&#xff0c;扫出一个字典&#xff0c;用来暴力破…

【微信小程序创作之路】- 小程序窗口整体配置(导航栏、标题)

【微信小程序创作之路】- 小程序窗口导航栏配置 第五章 微信小程序窗口导航栏配置 文章目录 【微信小程序创作之路】- 小程序窗口导航栏配置前言一、入口文件的配置二、页面配置三、全局默认窗口配置1.navigationBarTitleText&#xff1a;导航栏标题文字2.navigationBarBackgr…

Unity 限制范围-限制在4分之一圆柱形范围内活动

在我的游戏中&#xff0c;玩家的两只手操控中&#xff0c;不想让他们的手围着自己在一个圆形范围内随便乱跑&#xff0c;左手只想让他在左上角&#xff0c;右手在右上角范围活动。所以我制作这样一个算法来实现。 首先用Dot函数划分出4个区域&#xff0c;然后根据区域计算修正…

分配操作菜单

目录 概述介绍数据库后端前端效果展示 概述 在写后台管理系统时, 我们可以根据不同的登录人,给予不同的功能菜单 如 :给楼栋管理员登录时分配(楼栋管理,宿舍管理) 所以在数据库就要创建: 1.登录人与角色表, 2再给角色表分配操作菜单 登录时查询对应的操作菜单,将数据响应给前端…

记一次rabbitmq消息发送成功,消费丢失问题

记一次rabbitmq消息发送成功&#xff0c;消费丢失问题 背景 测试数据归档&#xff0c;偶现数据未归档 排查 idea线上调试&#xff0c;log日志&#xff0c;数据库消息发送记录&#xff0c;代码分块重复执行看哪块出的问题&#xff0c;结果均无问题&#xff0c;最后使用rabbi…

如何能够极速浏览大体积tif影像文件?

在无人机航拍的高清正射影像中&#xff0c;大体积文件是普遍现象&#xff0c;几十GB的TIFF文件很常见。常规的浏览方式特别容易导致卡顿&#xff0c;用户需要花费半天时间等待影像图的呈现。 建议您尝试将tiff格式快速转换为mbtiles或lrp格式&#xff0c;mbtiles和lrp格式专门…