第六章: 管理数据库事务

  事务 是 由第五章 数据操作语言完成的  DML ,是对数据库锁做的一个操作或者修改。

  • 所有事务都有开始和结束
  • 事务可以被保存和撤销
  • 如果事务在中途失败,事务中的任何部分都不会被记录到数据库

事务的特性:

原子性:是指每个事务都是一个不可分割的最小单元,事务要么成功提交,要么失败回滚,不存在半成功半失败的情况。

一致性:跟原子性密切相关,是指事务的执行结果应该使数据库从一种一致性状态到另一种一致性状态。

隔离性:也称为独立性,是指并行事务的修改必须与其他并行事务的修改相互独立。一个事务处理数据,要么是其他事务执行之前的状态,要么是其他事务执行之后的状态,但不能处理其他正在处理的数据。

持久性:事务一旦成功提交,它执行的结果应该能够持久化到数据库中,接下来的其他操作及故障不应该对它的执行结果又任何影响。

控制事务: commit , rollback ,savepoint;

6.1 commit

在操作之前 需要 设置: set autocommit = 0 ;  // 否则所有的操作都是 自动提交的

  commit: 用于把事务所做的修改保存到数据库,它把上一个commit 或 rollback 命令之后的全部事务都保存到数据库中。

6.2 rollback

用于撤销还没有保存到数据库中的命令,它只能用于撤销上一个commit 或rollback命令之后的事务

6.3 savepoint

保存点,事务过程中的一个逻辑点,可以把事务回退到这个点。

savepoint point_name ;

// update insert delete

rollback to point_name ;              // 还原到某个 point

release  savepoint point_name;    // 删除某个 point

 第七章:数据库查询

order by 用法

  升序(default)

    select * from student order by age , name ;  // 根据年龄排序,如果年龄相同根据 name 排序

    select * from student order by 1,2,3;           // 根据第1,2,3列排序

  降序:

    select * from student order by age desc , name ; //age 降序,而name 是升序

第八章: 使用操作符对数据进行分类

1、比较操作符

相等/不等于  =      <>

大于/小于     >       <

大于等于/小于等于  >=      <=

2、 逻辑操作符

is null    :      where name=null;

between :     where cost between 10 and 20 ;       // 包含 10 和 20

in    :     where cost in('5','30','39');

like   :      % :    代表零个,一个,多个字符

           _ :   代表一个数字或字符

    匹配200开头的值      where salary like '200%'

    匹配包含200的值  where salary like '%200%'

    匹配第二个三个字符是0    where salary like '_00%';

exists   :      select cost from tbl where exists (select cost from tbl where cost>100) ;

           // 如果cost>100 存在,则显示所有的cost

3、连接操作符

and

or

4、 求反操作符

not between

not like

not in

not exists

not null

5、 算术操作符

第九章: 汇总查询得到的数据

1、 汇总函数:

count : 统计不含NULL记录的字段,它返回一个数值

  select count(*) from stu ;   统计stu表中所有行

  select count (salary) from stu;  统计stu中所有salary为非空的行数

sum :  返回一组记录中某一个字段的总和。也可以和distinct一起使用 形: sum([distinct] colum_name);

     select sum(distinct code) from stu;

avg : 计算一组记录的平局值,与distinct一起使用返回的是 不重复的值得平均值 。 参数必须是数值类型的

    select avg(distinct salary) from stu;

max/min 函数:   略

                        

第十章: 数据的排序与分组

在select语句里面 , group by子句在where之后,在order by 之前。

语法结构如下:

  select colum_name1 ,colum_name2 from table1 ,table2

  where conditions

  group by colum1,colum2

  order by colum1 ,colum2

先根据salary再根据id排序输出age 和 code

返回不同salary的分组之和

              

group 与 order by 连在一起使用

select  salary , count(*) from stu group by salary order by 2,1 ; // 先按照 salary统计的数量排序,如果数量相同按照 salary 排序

HAVING 子句的用法 (顺序)

select from  where

group by

having

order by

select salary , count(*) from stu group by salary  having count>2 order by 2,1;  // 起到一个判定作用

十一章: 调整数据的外观

1、常用字符函数

concat :   concat (colum_name [' ',],column_name2);                                      //只是输出显示改变,表的机构没有变化

    example:   select concat(name , last_name) full_name from stu;           // 连接 姓 和名  , 重新命名为 full_name 输出

translate :  translate (character set , value1 ,value2);                                     //mysql :   function translate does not exist

repalce :     replace  (character set , value1 ,value2);

     example : select name ,replace (name ,‘h’,'V') from stu;                // replace character h in name with V ;

upper/lower : 大小写转换的函数

    select name , upper(name) upper_name from stu;                          // 将name中所有小写字母转换为大写

substr :        获取字符串子串的函数

    select name ,substr(name ,1,3) from stu;                                        // 将name中的 前三个字符输出

第十二章:  日期和时间

sql 入门经典(第五版) Ryan Stephens 学习笔记 (第六,七,八,九,十章,十一章,十二章)的更多相关文章

  1. 《c#入门经典第五版》简介及pdf电子书网盘下载地址(收藏)

    <C#入门经典(第5版)>全面讲解C# 2010和.net架构编程知识,为您编写卓越C# 2010程序奠定坚实基础.C#入门经典系列是屡获殊荣的C#名著和超级畅销书.最新版的<C#入 ...

  2. sql 入门经典(第五版) Ryan Stephens 学习笔记  第四部分:建立复杂的数据库查询/

    第十三章: 在查询表里结合表 1.等值结合 : // 选择 tabla_a 和table_b 中id相等的行,输出 他们的id 和name select table_a.id , table_a.na ...

  3. sql 入门经典(第五版) Ryan Stephens 学习笔记 后续——存储引擎

    一.引擎基础 1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎两种方法: a.show table status from database_name where na ...

  4. sql 入门经典(第五版) Ryan Stephens 学习笔记 第五部分: 性能调整

    第十六章: 利用索引改善性能 1. create index 单字段索引:  create index index_name on table_name (column_name);唯一索引:     ...

  5. sql 入门经典(第五版) Ryan Stephens 学习笔记 (第一,二,三,,四,五章)

    SQL - Structured  Query Language (结构化查询语言) 1/ SQL 命令的类型 : 数据定义语言: DDL 数据操作语言: DML 数据查询语言: DQL 数据控制语言 ...

  6. C#入门经典第五版之变量的更多内容编码题训练

    1. 编写一个控制台应用程序,它接收用户输入的一个字符串,将其中的字符以与输入相反的顺序输出. public string ReverseString(string str) { string rev ...

  7. C#入门经典第五版之变量与表达式编码题训练

    问题:编写一个控制台应用程序,要求用户输入4个int值,并显示它们的乘积.提示:可以使用Convert.ToDouble()命令,把用户在控制台上输入的数转换为double, 以此类推,转换成int命 ...

  8. BOOL运算符号(从C#入门经典第五版中摘录)

    只总结自己觉得难的哈: (1) var1=!var2;    //(非) (2) var1=var2&var3;    //(与) (3)var1=var2|var3;    //(或) (4 ...

  9. 《Python基础教程(第二版)》学习笔记 -> 第六章 抽象

    抽象和结构 本章将会介绍如何让将语句组织成函数,还会详细介绍参数(parameter)和作用域(scope)的概念,以及递归的概念及其在程序中的用途. 创建函数 函数可以调用,它执行某种行为,并返回某 ...

随机推荐

  1. 初识 easyui datagrid

    首先应该下载好easyui datagrid所用的各种js 和css 这个可以到官网上去下载. 首先要引入datagrid所引入的js和css. <script src="js/jqu ...

  2. Java正则表达式实用教程

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.java.util.regex包主要包括以下三个类:Pattern.Matcher和PatternSynta ...

  3. Jaxb解析xml准换为javabean

    先说下这个的背景吧,前些日子,有个以前的小同事说刚接触webservice,想解析下xml,记得我学的时候还是dom4j,sax的解析方式,最近看别人的代码用的jaxb的方式,觉得注解起来很简练,所以 ...

  4. [WCF REST] Web消息主体风格(Message Body Style)

    对于Web HTTP编程模型来说,服务契约中作为操作的方法无须应用OperationContractAttribute特性,只需要根据需要应用WebGetAttribute与WebInvokeAttr ...

  5. ABAP Performance Examples

    *modifying a set of lines directly(批量修改内表数据) *使用"LOOP ... ASSIGNING ..."可以直接修改内表中的数据,而不需要先 ...

  6. Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39

    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39 V1  初步实现sina csdn cnblogs V2  实现qzone sohu 的发帖 ...

  7. SharePoint Tricks - Survey

    1. SharePoint 2010中,在Survey的问题框中输入HTML代码可以用于插入图片或者链接,具体方法为: 1.1 在问题框中输入html, 1.2 在New Form和Edit Form ...

  8. 【读书笔记】iOS-NSData

    Cocoa为我们提供了NSData类,该类包装了大量字节,你可以获得数据的长度和指向字节起始位置的指针,因为NSData是一个对象,适用于常规的内存管理行为.因此,如果将数据块传递给一个函数或方法,可 ...

  9. iOS屏幕适配知识

    一.旋转处理    第一步:注册通知 [[NSNotificationCenter defaultCenter] addObserver:self                            ...

  10. 关于git

    一.Git基础教程  01.[入门练习]廖雪峰 git教程网:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8 ...