数据库培训知识

解决在做练习题过程中遇到的疑问以及自己想了解的一些知识:

  1. 了解exists 、esists和in的区别,一般来说exists的效率比in 的效率要高,exists返回的是一个boolean类型的值,然后根据where后边子句返回的值来判断是否满足条件。此外与之类似的还有一些 关键字,比如:SOME、ANY、ALL、BETWEEN等,

    select a.ename from emp a where not exists (select mgr from emp b where a.empno = b.mgr)

    上面的语句如果要用not in写的话是这样的 select ename from emp where empno not in (select mgr from emp),但是这样写的话是得不到想要的结果的,因为not in经常会出错,那就换一个方向,用not exists来写,防止犯错

    ANY    : 表示满足子条件查询结果的任何一个,和<、<=搭配,表示小于或者等于列表中的最大值,和>、>=搭配表示大于等于列表中的最小值

    SOME:基本和ANY的含义相同

    BETWEEN: 表达式 (not)between 表达式1 and 表达式2

    ALL :表示满足子查询结果的所有结果,和< <=搭配表示小于等于列表中的最小值,相反表示大于或者等于列表中的最大值

  2. 看了一些关于查询优化的基本方法,查询优化主要分为外围优化和应用程序优化,应用程序优化又可以划分为源代码优化和sql语句优化,优化方面的文档主要放在当天的工作日文件中。方便以后查看使用
  1. 学习了DISTINCT的用法
    1. 作用主要是去除查询结果的重复信息,使用的格式为: select DISTINCT 列名 from 表名
    2. 使用DISTINCT的弊端也很明显,使用的时候,DBMS是先对查询结果进行排序,然后根据排序结果对数据进行分组,这一过程浪费的时间比较多。所以不建议经常使用
    3. 如果表中有多个NULL数据,服务器会把这些数据视为相等
  2. 学了一些模糊查询,也就是一些通配符的使用,

语法格式: 表达式 (not) like 条件

    1. %: 可匹配任意类型和长度的字符
    2. _ :  可匹配任意单个字符,他常用来限制表达式的字符长度
    3. [] :  表示方括号里列出的任意一个字符
    4. [^]:  任意一个没有在方括号里面列出的字符
    5. escape: 关键字转义字符 , like ‘%T%‘ escape ‘T‘ T为转义字符,他后边的%为实际值,不再有特殊含义

例子:

字符串中有“彩电”的字符串用:select * from 商品 where 商品名称 like ‘%彩电%‘

以曹开头的字符串用: select * from student where 姓名 like ‘曹%‘

找三个字的名字中第三个名字为“升”字的人的信息: select * from student where name like ‘_ _ 升‘

3.

复习了order by的用法

    1. order by 不是所有的列都可以使用,个别不能使用
    2. 默认情况下以升序排列,即使用ASC关键字,按照降序使用DESC关键词
    3. NULL视为最小的值,
    4. order by 子句一定是放在最后的

4. 练习了一些练习题如下:

//7.1
                Select sno, sname from student where sno=(Select sno from sc where cno =( Select cno from Course where cname =’计算机原理’))
                 本题练习了三表联查,通过中间的索引来寻求最终的答案
                //7.2
                Select cname from course where cno = (Select cno from sc where sno =(Srelect sno from student where sname=’周星驰’ ))
                同上,基本考了相同的问题

  1. 巩固复习了group by的用法
    1. 定义:group by 子句将查询结果按照一列或者多列的值分组,值相等的为一组,从而将行分为较小的组,然后使用聚集函数返回组的汇总信息
    2. 注意:在带有group by子句的查询语句中,select 列中要么是group by指定的列,要么是聚集函数
    3. group by 语句之后不能跟where子句,但是可以跟having子句,where和having子句的区别就是wherezai分组前进行筛选,having是对分组后进行筛选
    4. where后边不能有聚集函数,而having条件中经常出现聚集函数,可以使用多个分组标准进行分组

2.        理解了各种码的意义

    1. 候选码的定义:如果关系中的某一属性组的值能唯一地标识一个元祖,则称该属性组为候选码;
    2. 主码的定义:如果一个关系有多个候选码,则选定其中一个为主码;
    3. 主属性定义:候选码的诸属性称为主属性;
    4. 非主属性定义:不包含在任何候选码中的属性称为非主属性;
    5. 实体完整性规则:如果属性(一个或者一组属性)A是基本关系R的主属性,则A不能取空值。
    6. 超码的定义:超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体
    7. 主码与外码的关系:主码和外码是用来实现参照完整性的,外码的数据项需参照主码的数据项来操作。具体实现是在创建数据库时为表间创立关系。如: 
      三个关系:
      学生信息表(学号、姓名、性别、出生年月、籍贯、所属学院) //学号 是主键(主码
      课程表(课程号,课程名称,学分) //课程号 是主键(主码
      成绩表(学号,课程号,成绩) //学号 是外码;课程号 是外码
      “成绩表”(从表)的学号参照“学生信息表”(主表)的学号来录入。

      1、也就是主表里面没有的学号,从表里面不能有,外码参照主码录入;

      2、级联操作,即当删除、修改某个主表里面的学号时,从表里面的那个学号会相应的自动删除、修改。外码参照主码操作

3.        理解事务的概念

      1. 定义:事务是对数据库操作的最小工作单元,事务具有原子性,即事务的执行只有两种结果:1、事务所包含的工作全部成功完成;2、事务什么都没操作,回到原来的状态
      2. 事务的状态有:活动状态、局部提交、失败状态、成功执行、异常终止
      3. 事务的4个ACID性质:1、原子性、2、一致性、3、隔离性、4、持久性
      4. 如果一个事务成功完成,则在该事物中进行的所有数据更改均会提交,成为数据库组成中永久的部分,如果事务遇到错误必须取消或者回滚,则所有已经提交的数据均被清除,这个时候表示事务没有对数据库做任何工作!
      5. 在数据库系统中,很多事务在并发运行,他们之间可能会对共享数据进行各类运算,为了保证数据库的完整性和一致性,数据库使用事务的定义、并发控制、事务的备份和恢复等来解决。
      6. 事务的三种运行模式1、自动提交事务:即每条单独的语句就是一个事务,当sql语句在查询分析器上被执行后,后面的分号;将自动提交事务2、显式事务:sql通过事务定义语句来表示事务的开始和结束,如每个事务均以begin transaction开始,以commit(提交)或者roolback(回滚)结束。3、隐性事务:在前一个事务完成时新事物隐式启动,但每个事务均以commit或者rollback语句显式完成。
      7. 并发事务在执行的过程中,隔离性遭到了破坏,可能带来以下三个问题:1、丢失更新;2、读了过时数据;3、读未提交的数据,解决以上三个问题的方法主要有封锁法和时间印法。
      8. 封锁法:主要有两种锁:排它锁 (X锁) 和共享锁 (S锁),事务通过获取这两种锁,可以保证事务的隔离性,间接的保证了数据库的完整性和一致性。
      9. 学校教科书的102页有具体详细的实例,以供以后参考!
时间: 2024-11-14 00:47:45

数据库培训知识的相关文章

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

SQL数据库基础知识-巩固篇&lt;一&gt;

SQL数据库基础知识-巩固篇<一>... 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用了> MySQL-57 DataBase MS-SQLServer-2000 DataBase SQL的含义:结构化查询语言(Structured Query Language)简称SQL 作用:SQL(Structured Query Language,结构化查询语言)是一种用于操作数据库的语言. 结构化查询语言包含6个部分:一:数

程序员面试笔试宝典学习记录(三)(数据库相关知识)

关系数据库系统与文件数据库系统的区别如下: (a)关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构化. (b)关系数据库系统中,用户看到的逻辑结构是二维表,而文件数据库系统中,基本元素是文件. (c)文件数据库系统可以实现多媒体文件管理,支持C/S工作模式. acid,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability). 数据查询:select sele

数据库基本知识

1.数据库系统=数据库管理系统(管理数据库的工具)(DBMS,DataBase Management System)+数据库(DataBase)+管理员 2.数据库的概念:对大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的库. 3.专业的数据库:Oracle.DB2.SQL Server.My Sql. 其中,  My Sql是最流行的,共鞥足够强大,足以应付web应用. 4.Oracle公司中文名:甲骨文公司. 5.它是一个关系型数据库.建立在关系模型上数据库系统. 关系模

oracle学习入门系列之二 数据库基础知识

oracle学习入门系列之二 数据库基础知识 本篇蛤蟆要梳理下那些被淡忘的数据库基础知识,也许根本就没被人记住过.不管是哪种情况,该记住的必须记住,记不住就把他记下来吧. 首先问几个问题如下: 数据库基础知识是什么? 好吧,蛤蟆直接吐后而不亡,看目录开始吧. 本人邮箱:[email protected] 微信公众号:HopToad 欢迎各界交流 1      基本概念 概念就是概念,大伙对这些名词不要死磕,但是对定义一定要理解,理解方能领悟,领悟方能运用自如后创新. 1.1      数据 数据

SQL Server之 (一) 数据库简介 SQL Server环境配置 数据库基础知识

   前言 这个是我工作两年多后,再次从最基础的SQL入门开始,认真的学一遍SQL Server,捡漏和巩固都有;因为自己刚开始学的时候,总是心烦气躁,最近换工作,发现1到2年经验,问到基础性的东西还是很多,这个时候需要的是扎实的基础功夫,所以一系列打击+反省后,自己节假日在家从最基础重新认识一下SQL Server,继续沉淀一下.哪里有不对或需深入探讨,请直接留言或者小窗我;欢迎~ (一) 数据库简介   SQL Server环境配置   数据库基础知识 1.什么是数据库,数据库有哪些特点,为

用python处理文本,本地文件系统以及使用数据库的知识基础

主要是想通过python之流的脚本语言来进行文件系统的遍历,处理文本以及使用简易数据库的操作. 本文基于陈皓的:<程序员技术练级攻略> 一.Python csv 对于电子表格和数据库导出文件,比较常见的文件格式是.csv,所以python中的csv模块也是一个比较重要的模块.下面介绍csv常用的方法. 1.csv.reader(csvfile, dialect='excel', **fmtparams) 该函数返回一个reader对象,能够以行遍历的形式遍历行里面的数据. csvfile——需

MYSQL数据库常用知识整理

Evernote Export MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQL备份与恢复 MYSQL的基本操作:增删查改 MYSQL的基本故障判断与处理 MYSQL的调优 MYSQL主主.主从复制的实现 MYSQL大数据备份和恢复 数据文件的损坏与修复 什么是MYSQL MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.目前MySQL被广泛地应用在Internet上的中

Mysql DBA 高级运维学习笔记-Mysql数据库字符集知识

1.2 Mysql数据库字符集知识 1.2.1 MySQL数据库字符集介绍 简单的说,一套文字符号及其编码.比较规则的集合. MySQL数据库字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念.其中,字符集是用来定义MySQL数据字符串的存储方式,而校对规则则是定义比较字符串的方式.前面建库的语句中,CHARACTER SET latin1即为数据库字符集而COLLATE latin1_wedish_ci 为校对字符集,有关字符集详细内容参考mysql手册,第10张字