A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.什么情况下会用到表连接查询
2.表的连接查询有几种
3.什么是子查询,子查询的结果有几种情况,分别怎么使用
4.什么是事务,什么是提交,什么是回滚
5.mysql有几个隔离级别
6.数据库并发访问问题都有哪些

5 个回复

倒序浏览
1.什么情况下会用到表连接查询
        查询的内容涉及多张表的时候用到表连接查询。
2.表的连接查询有几种
(1)内连接(只能查询到满足两个表连接条件的信息)
        1)隐式内连接,select 字段 from 表1,表2...where 条件,对于过个表的连接使用较方便;
        2)显式内连接,select 字段from 表1join 表2 on条件,和隐式主要是格式差别
(2)外连接(先查询到一个表的信息,然后在根据连接条件显示满足条件的另一个表信息)
        1)左外连接:select 字段 from 表1 left join 表2 on 条件,先查询到表1内容,在根据连接条件查询符合条件的表2内容;
        2)右外连接:select 字段 from 表1 right join 表2 on 条件, 先查询到表2内容,在根据连接条件查询符合条件的表1内容。
3.什么是子查询,子查询的结果有几种情况,分别怎么使用
(1)子查询是将一个SQL语句的查询结果作为另一个SQL语句的查询条件或查询表。
(2)子查询的结果有:
        1)单行单列:是一个字段值,一般用作另一个SQL查询语句的where条件,作为一个判断条件;
        2)多行单列:是一列数据,一般用作另一个SQL查询语句的where条件,作为in后的集合;
        3)多行多列:是一张表,一般用作另一个SQL查询语句的查询表,组成多表查询,写在字段处(称为虚拟表)
4.什么是事务,什么是提交,什么是回滚
(1)事务是多个SQL语句组成的不可分割的整体,要么全部成功要么全部失败;
(2)提交就是把修改后的数据保存(持久化)到数据库中;
(3)回滚就是把修改后的数据还原到开启事务前,不进行保存。
5.mysql有几个隔离级别
        有四个隔离级别,分别是
(1)读未提交:读取数据库中未提交的数据,这种情况不允许存在,会产生脏读,不可重复读,幻读问题;
(2)读已提交:读取的数据是已经提交的,但是会产生不可重复读,幻读问题;
(3)可重复读:读取的数据是已经提交的,并且在自身事务结束前,多次读取同一个数据都是一样的,但是会产生幻读问题;
(4)串行化:同一时刻只能有一个事务操作一个数据,可以解决所有问题,但是效率低。
        隔离级别越高,效率越低;
6.数据库并发访问问题都有哪些
(1)脏读:读到别的事务未提交的数据,这种情况是不允许出现;
(2)不可重复读:在一个事务中,两次读取的同一个数据是不同的;
(3)幻读:事务A对表中的一个数据进行修改(修改涉及到表中全部数据行),同时,事务B在这个表中插入一行新的数据,那么以后就会发生操作事务A的用户发现表中还存在没有修改过的数据,就想发生了幻觉一样;一般解决方法是增加范围锁RangeS,锁定检索范围为只读,这样就避免了幻读。
回复 使用道具 举报

1.什么情况下会用到表连接查询
(1)多表查询数据时
2.表的连接查询有几种
(1)内连接查询
(2)外连接查询
(3)子连接查询
3.什么是子查询,子查询的结果有几种情况,分别怎么使用
(1)查询结果单行单列: 当成单个表的一个数据进行使用
(2)查询结果多行单列: 当成表的一列数据进行使用
(3)查询结果多行多列: 当成一张表使用
4.什么是事务,什么是提交,什么是回滚
(1)事物(开启: start transaction): 一个包含多个业务操作,被事物管理,执行事物时,要么成功(全部执行完毕),要么失败(中途出现错误);
(2)提交(commit): 即一个事物执行结束,把结果永久刷新到存储设备中
(3)回滚(rollback): 事物执行过程中出现异常导致失败,回滚即把事物执行的数据恢复到事物执行前,并永久刷新到存储设备中.
5.mysql有几个隔离级别
四个
(1)read uncommitted: 读未提交,会出现脏读,不可重复读,幻读等问题;
(2)read committed: 读已提交,会产生不可重复读,幻读等问题;
(3)repeatable read: 可重复读,会产生幻读问题,是mysql默认的隔离级别;
(4)serializable: 串行化,可以解决上述所有问题,一个事物在操作数据的过程中,其他事物无法进入操作,只能等待该事物完成操作.
6.数据库并发访问问题都有哪些
(1)脏读
(2)不可重复读
(3)幻读
回复 使用道具 举报
1.什么情况下会用到表连接查询
答:当想要输出的数据位于多个表时会用到表连接查询。
2.表的连接查询有几种
答:多表查询的分类:
    1. 内连接查询:
        1. 隐式内连接:使用where条件消除无用数据
        2. 显式内连接:
            * 语法: select 字段列表 from 表名1 [inner] join 表名2 on 条件
    2. 外链接查询:
        1. 左外连接:
            * 语法:select 字段列表 from 表1 left [outer] join 表2 on 条件;
            * 查询的是左表所有数据以及其交集部分。
        2. 右外连接:
            * 语法:select 字段列表 from 表1 right [outer] join 表2 on 条件;
            * 查询的是右表所有数据以及其交集部分。
    3. 子查询:
        * 概念:查询中嵌套查询,称嵌套查询为子查询。
        * 子查询不同情况
            1. 子查询的结果是单行单列的:
                * 子查询可以作为条件,使用运算符去判断。 运算符: > >= < <= =
            2. 子查询的结果是多行单列的:
                * 子查询可以作为条件,使用运算符in来判断
            3. 子查询的结果是多行多列的:
                * 子查询可以作为一张虚拟表参与查询
                -- 普通内连接

3.什么是子查询,子查询的结果有几种情况,分别怎么使用
        * 概念:查询中嵌套查询,称嵌套查询为子查询。
        * 子查询不同情况
            1. 子查询的结果是单行单列的:
                * 子查询可以作为条件,使用运算符去判断。 运算符: > >= < <= =
            2. 子查询的结果是多行单列的:
                * 子查询可以作为条件,使用运算符in来判断
            3. 子查询的结果是多行多列的:
                * 子查询可以作为一张虚拟表参与查询
                -- 普通内连接

4.什么是事务,什么是提交,什么是回滚
答:<1>. 事务:如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。
事务提交的两种方式:
<2>.提交:(1) 自动提交:
        * mysql就是自动提交的
        * 一条DML(增删改)语句会自动提交一次事务。
        (2)手动提交:
        * Oracle 数据库默认是手动提交事务
        * 需要先开启事务,再提交
<3>.回滚(Rollback)指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。回滚包括程序回滚和数据回滚等类型。
5.mysql有几个隔离级别
答:隔离级别:
        1. read uncommitted:读未提交
            * 产生的问题:脏读、不可重复读、幻读
        2. read committed:读已提交 (Oracle)
            * 产生的问题:不可重复读、幻读
        3. repeatable read:可重复读 (MySQL默认)
            * 产生的问题:幻读
        4. serializable:串行化
            * 可以解决所有的问题
6.数据库并发访问问题都有哪些
答:1. 脏读:一个事务,读取到另一个事务中没有提交的数据
    2. 不可重复读(虚读):在同一个事务中,两次读取到的数据不一样。
    3. 幻读:一个事务操作(DML)数据表中所有记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改。
回复 使用道具 举报
1.什么情况下会用到表连接查询
        查询的内容涉及多张表的时候用到表连接查询。
2.表的连接查询有几种
(1)内连接(只能查询到满足两个表连接条件的信息)
        1)隐式内连接,select 字段 from 表1,表2...where 条件,对于过个表的连接使用较方便;
        2)显式内连接,select 字段from 表1join 表2 on条件,和隐式主要是格式差别
(2)外连接(先查询到一个表的信息,然后在根据连接条件显示满足条件的另一个表信息)
        1)左外连接:select 字段 from 表1 left join 表2 on 条件,先查询到表1内容,在根据连接条件查询符合条件的表2内容;
        2)右外连接:select 字段 from 表1 right join 表2 on 条件, 先查询到表2内容,在根据连接条件查询符合条件的表1内容。
3.什么是子查询,子查询的结果有几种情况,分别怎么使用
(1)子查询是将一个SQL语句的查询结果作为另一个SQL语句的查询条件或查询表。
(2)子查询的结果有:
        1)单行单列:是一个字段值,一般用作另一个SQL查询语句的where条件,作为一个判断条件;
        2)多行单列:是一列数据,一般用作另一个SQL查询语句的where条件,作为in后的集合;
        3)多行多列:是一张表,一般用作另一个SQL查询语句的查询表,组成多表查询,写在字段处(称为虚拟表)
4.什么是事务,什么是提交,什么是回滚
(1)事务是多个SQL语句组成的不可分割的整体,要么全部成功要么全部失败;
(2)提交就是把修改后的数据保存(持久化)到数据库中;
(3)回滚就是把修改后的数据还原到开启事务前,不进行保存。
5.mysql有几个隔离级别
        有四个隔离级别,分别是
(1)读未提交:读取数据库中未提交的数据,这种情况不允许存在,会产生脏读,不可重复读,幻读问题;
(2)读已提交:读取的数据是已经提交的,但是会产生不可重复读,幻读问题;
(3)可重复读:读取的数据是已经提交的,并且在自身事务结束前,多次读取同一个数据都是一样的,但是会产生幻读问题;
(4)串行化:同一时刻只能有一个事务操作一个数据,可以解决所有问题,但是效率低。
        隔离级别越高,效率越低;
6.数据库并发访问问题都有哪些
(1)脏读:读到别的事务未提交的数据,这种情况是不允许出现;
(2)不可重复读:在一个事务中,两次读取的同一个数据是不同的;
(3)幻读:事务A对表中的一个数据进行修改(修改涉及到表中全部数据行),同时,事务B在这个表中插入一行新的数据,那么以后就会发生操作事务A的用户发现表中还存在没有修改过的数据,就想发生了幻觉一样;一般解决方法是增加范围锁RangeS,锁定检索范围为只读,这样就避免了幻读。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马