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

这篇具有很好参考价值的文章主要介绍了SQL进阶(2)——SQL语句类型 & 增删改查CRUD & 事务初步 & 表关联关系 & 视图 +索引。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引出

1.SQL语句的类型,数据操作语句,数据查询语句;
2.MySQL的运算符,常用函数,增删改查CRUD语法;
3.数据操作的事务:原子性,一致性,隔离性,持久性;
4.数据库表关联关系,一对一,一对多,多对多;
5.视图,索引;文章来源地址https://www.toymoban.com/news/detail-594950.html


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):一个事务一旦提交,则数据将持久化到本地,除非其他事务对其进行修改

运算符和其他函数

SQL进阶(2)——SQL语句类型 & 增删改查CRUD & 事务初步 & 表关联关系 & 视图 +索引,Java,sql,oracle,数据库

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+树

事务

事务是指一组操作被视为一个不可分割的工作单元,要么全部执行成功,要么全部不执行。事务具有以下四个基本特征,通常被称为ACID特性:

SQL进阶(2)——SQL语句类型 & 增删改查CRUD & 事务初步 & 表关联关系 & 视图 +索引,Java,sql,oracle,数据库

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,会产生不可重复读
    MySQL的默认方式,还没提交,自己能看见,别人看不见。【看到别人提交的代码】

  • 3)可重复读:REPEATABLE READ,会产生幻读(默认事务隔离级别)
    Oracle的默认隔离级别,数据读了两次,结果不一样。【两次读的内容不一样】

  • 4)串行化:SERIALIZABLE,效率低
    所有的都单步执行,最安全的,但是数据库默认都不是这个。
    Redis默认是这个,别人不能打断。

4.持久性

持久化到数据库

数据库表的关联关系

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

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

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

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

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

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

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


总结

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

到了这里,关于SQL进阶(2)——SQL语句类型 & 增删改查CRUD & 事务初步 & 表关联关系 & 视图 +索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据库】sql server 中的sql语句--增删改查

    上面是要建立的数据库 下面是sql语句:  

    2024年02月05日
    浏览(50)
  • 面试之快速学习SQL-基础增删改查语句

    在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。 操作符 描述 引号的使用 请注意 , 我们在例子中的条件值周围使用的是单引号 。 SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用

    2024年02月14日
    浏览(31)
  • 常见关系型数据库SQL增删改查语句

    常见关系型数据库SQL增删改查语句: 创建表(Create Table): 插入数据(Insert Into): 查询数据(Select): 更新数据(Update): 删除数据(Delete): 联结(Join): 子查询(Subquery): 排序(Order By): 分组(Group By): 使用子查询、排序和分组的常见SQL操作。可以根据具体

    2024年02月09日
    浏览(39)
  • 若依框架的startPage( )函数怎么自动关联查询SQL语句?

    使用JAVA语言的若依框架的时候,发现只要使用了startPage()函数, 并不需要前端传递分页的数据,也不需要注解,就能完成分页功能。预判他应该是使用类似拦截器的机制,但还是感觉很神奇,感觉知道个大概不过瘾,还是要更细致的了解才能满足,就想研究一下并记录下来。

    2024年02月08日
    浏览(37)
  • Mybatis-Plus详解(新建maven项目、查询所有信息、打印SQL日志、实现CRUD(增删改查)、分页、条件查询且分页,前后端分离式开发)

    MyBatis-Plus(opens new window) (简称MP) 是一个MyBatis(opens new window)的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。想查看官网相关内容的化我这里提供了官网地址:https://baomidou.com/ 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般

    2024年02月04日
    浏览(68)
  • MySQL数据库增删改查及聚合查询SQL语句学习汇总

    目录 数据库增删改查SQL语句 MySQL数据库指令 1.查询数据库 2.创建数据库 3.删除数据库 4.选择数据库 创建表table   查看所有表 创建表 查看指定表的结构 删除表 数据库命令进行注释 增删改查(CRUD)详细说明 增加 SQL库提供了关于时间的函数:now()  查询 查询表作列与列之间进

    2024年02月09日
    浏览(81)
  • MySQL中常用查看锁和事务的SQL语句

    当我们在使用MySQL数据库时,了解如何查看锁和事务的状态是非常重要的。这些信息可以帮助我们调试和优化数据库性能,以及解决并发访问的问题。在本博客中,我将介绍一些常用的MySQL查询语句,用于查看锁和事务的状态。 1. 查看当前的锁状态 要查看当前数据库中的锁状

    2024年02月09日
    浏览(43)
  • MySQL进阶SQL语句(二)

    视图跟表格的不同是,表格中有实际储存数据记录,而视图是建立在表格之上的一个架构,它本身并不实际储存数据记录。 临时表在用户退出或同数据库的连接断开后就自动消失了,而视图不会消失。 视图不含有数据,只存储它的定义,它的用途一般可以简化复杂的查询。

    2024年02月11日
    浏览(40)
  • MySQL高级(进阶)SQL语句

    #显示一个字段或者多个字段的所有内容 SELECT “字段” FROM 表名 ; #distinct对字段去重查询 (最好只对单个字段进行去重) SELECT DISTINCT 字段名 FROM 表名 #where 有条件查询 SELECT “字段” FROM 表名 WHERE 条件(例如:sales =!= 100); #and or 查看多个条件 SELECT “字段” FROM 表名 WHE

    2024年02月05日
    浏览(40)
  • MySQL 高级(进阶) SQL 语句

     创建两表以供使用   ---- SELECT ----显示表格中一个或数个字段的所有数据记录 ---- DISTINCT ----不显示重复的数据记录 ---- WHERE ----有条件查询 ---- AND OR ----且 或 ---- IN ----显示已知的值的数据记录 ---- BETWEEN ----显示两个值范围内的数据记录(包含边界值) ---- 通配符 ----通常通配

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包