《Mysql必知必会》读书笔记
《Mysql必知必会》读书笔记
进击的营长
雁过留痕,掷地有声。
展开
-
第二十八章-安全管理
28.1访问控制用户不能对过多的数据具有过多的访问权。在现实世界的日常工作中,决不能使用root。应该创建一系列的账号,有的用于管理,有的供用户使用,有的供开发人员使用,等等。28.2管理用户MySQL用户账号和信息存储在名为mysql的MySQL数据库中。28.2.1创建用户账号创建一个新用户账号CREATE USER ben IDENTIFIED BY '123456' ;...原创 2020-01-08 22:26:00 · 83 阅读 · 0 评论 -
第二十七章-全球化和本地化
27.1 字符集和校对顺序数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。因此,MySQL需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法。在讨论多种语言和字符集时,将会遇到以下重要术语:字符集:字母和符号的集合;编码:某个字符集成员的内部表示;校对:规定字符如何比较的指令。使用何种字符集和校对的决定在服务器、数据库和表级进行。...原创 2020-01-07 15:16:34 · 118 阅读 · 0 评论 -
第二十六章-管理事务处理
MyISAM和InnoDB是两种最常使用的引擎。前者不支持明确的事务处理管理,而后者支持。26.1事务处理MyISAM不支持明确的事务处理管理,InnoDB支持。事务处理是一种机制,用来管理必须成批执行的MySQL操作,以保证数据库不包含不完 整的操作结果。利用事务处理,可以保证一组操作不会中途停止,它们或者作为整体执行,或者完全不执行(除非明确指示)。事务处理中包含的几个术语:事务...原创 2020-01-06 23:34:30 · 116 阅读 · 0 评论 -
第二十五章-使用触发器
25.1触发器如果想要某条语句(或某些语句)在事件发生时自动执行,此时就需要触发器。如果需要在某个表发生更改时自动进行一些其他的处理。这确切地说就需要触发器。触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于 BEGIN 和 END 语句之间的一组语 句):DELETE; INSERT; UPDATE,其他语句不支持触发器。创建触发器创建触发器时,需要4个条件:...原创 2020-01-05 15:10:50 · 346 阅读 · 0 评论 -
第二十四章-使用游标
24.1游标MySQL检索操作返回一组称为结果集的行,这组返回行都是与SQL语句相匹配的行。有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原因。不像多数DBMS,MySQL游标只能用于存储过程(和函数)。24.2使用游标在能够使用游标前,必须声明它,这个过程实际上没有检索数据,它只是定义要使用的SELECT语句一旦声明后,必须打开游标以供使用。这个过程用前面定义的SE...原创 2020-01-04 21:37:59 · 299 阅读 · 0 评论 -
第二十三章-使用存储过程
23.1存储过程存储过程简单来说,就是为以后的使用而保存 的一条或多条MySQL语句的集合。可将其视为批文件,虽然它们的作用 不仅限于批处理。23.2 为什么要使用存储过程使用存储过程有3个主要的好处,即简单、安全、高性能。数据库可能允许用户使用存储过程,但不一定允许他们创建存储过程。23.3使用存储过程23.3.1执行存储过程MySQL称存储过程的执行为调用,因此MySQL执行存储...原创 2020-01-03 23:30:55 · 190 阅读 · 0 评论 -
第二十二章-使用视图
22.1视图视图是虚拟的表。作为视图,它不包含表中应该有的任何列或数据,它包含的是一个SQL查询(与上面用以正确联结表的相同的查询)。22.1.1为什么使用视图在视图创建之后,可以用与表基本相同的方式利用它们。视图仅仅是用来查看存储在别处的数据的一种设施。 视图本身不包含数据,因此它们返回的数据是从其他表中检索出来的。 在添加或更改这些表中的数据时,视图将返回改变过的数据。使用视图存在...原创 2020-01-02 14:42:50 · 99 阅读 · 0 评论 -
第二十一章-创建和操纵表
21.1创建表一般有两种创建表的方法:使用具有交互式创建和管理表的工具(如第2章讨论的工具);表也可以直接用MySQL语句操纵。21.1.1表创建基础输入CREATE TABLE customers( cust_id int NOT NULL AUTO_INCREMENT, cust_name char(50) NOT NULL , cust_address ...原创 2020-01-01 21:51:34 · 138 阅读 · 0 评论 -
第二十章-更新和删除数据
20.1更新数据语法例子:更新客户10005的 cust_name和cust_email列。输入UPDATE customersSET cust_name='The Fudds', cust_email='[email protected]'WHERE cust_id=10005;注意:UPDATE语句中可以使用子查询,使得能用SELECT语句检索出的数据更新列数据。如...原创 2019-12-30 12:10:49 · 101 阅读 · 0 评论 -
第十九章-插入数据
19.1数据插入INSERT是用来插入(或添加)行到数据库表的。插入可 以用几种方式使用:插入完整的行;插入行的一部分;插入多行;插入某些查询的结果。19.2插入完整的行第一种是不指定列输入# 简单但不安全,如果原来表列结构调整,会有问题 insert into customers values (null, 'Pep E. LaPew', '100...原创 2019-12-30 12:10:22 · 186 阅读 · 1 评论 -
第十八章-全文本搜索
18.1理解全文本搜索并非所有引擎都支持全文本搜索,MyISAM支持全文本搜索,InnoDB不支持18.2使用全文本搜索为了进行全文本搜索,必须索引被搜索的列,而且要随着数据的改 变不断地重新索引。在对表列进行适当设计后,MySQL会自动进行所有的索引和重新索引。在索引之后,SELECT可与Match()和Against()一起使用以实际执行搜索18.2.1启用全文本搜索支持一般在创...原创 2019-12-30 10:59:51 · 188 阅读 · 1 评论 -
第十七章-组合查询
17.1组合查询MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)或复合查询 (compound query)。任何具有多个WHERE子句的SELECT语句都可以作为一个组合查询给出。17.2创建组合查询可用 UNION 操作符来组合数条SQL查询。17.2.1使用UNIONUNION的使用很简单。所需做的只是给出...原创 2019-12-30 10:59:21 · 125 阅读 · 1 评论 -
第十六章-创建高级联结
16.1使用表别名SQL允许给表名起别名,有以下目的:缩短SQL语句;允许在单条SELECT语句中多次使用相同的表。例子:SELECT cust_name,cust_contactFROM customers AS c,orders AS o,orderitems AS oiWHERE c.cust_id=o.cust_idAND oi.order_num=o.order_nu...原创 2019-12-28 11:36:16 · 131 阅读 · 2 评论 -
第十五章-联结表
15.1联结15.1.1关系表关系表的设计就是要保证把信息分解成多个表,一类数据一个表。各表通过某些常用的值(即关系设计中的关系(relational))互相关联。外键:外键为某个表中的一列,他包含另一个表的主键值15.1.2为什么要使用联结使用联结,当数据存储在多个表中时,可以用单条SELECT语句检索出数据。注意:联结由MySQL根据需要建立,它存在于查询的执行当中,而并没有实际的数...原创 2019-12-28 11:34:58 · 229 阅读 · 0 评论 -
第十四章-使用子查询
14.1子查询子查询:嵌套在其他查询中的查询。14.2利用子查询进行过滤输入SELECT cust_name,cust_contact FROM customers WHERE cust_id IN(SELECT cust_id FROM orders WHERE order_num IN(SELECT order_num...原创 2019-12-28 11:34:27 · 112 阅读 · 0 评论 -
第十三章-分组数据
13.1数据分组分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算。13.2创建分组输入 SELECT vend_id,COUNT(*) AS num_prods FROM proucts GROUP BY vend_id;分析 上面的SELECT语句指定了两个列,vend_id包含产品供应商的ID,num_prods为计算字段。GROUP BY 子句指示MySQL按vendid排序...原创 2019-12-28 11:33:49 · 681 阅读 · 0 评论 -
第十一章-使用数据处理函数
11.1函数与其他大多数计算机语言一样,SQL支持利用函数来处理数据。函数一般是在数据上执行的,他给数据的转换和处理提供了方便,在前一章中用来去掉尾空格的RTrim()就是一个函数的例子几乎每种DBMS的都有支持的不同函数,每种差异会很大,因此函数没有SQL的可移植性强。11.2使用函数11.2.1文本处理函数输入: SELECT vend_name,Upper(vend_name) A...原创 2019-12-26 18:20:19 · 142 阅读 · 0 评论 -
第十二章-汇总数据
12.1聚集函数聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。12.1.1AVG()函数输入: SELECT AVG(prod_price) AS avg_price FROM products;分析: 此SELECT语句返回值avg_price,它包含products表中所有产品的平均价格只用于单个列: AVG()只能用来确定特定数值的平均值...原创 2019-12-26 18:18:16 · 127 阅读 · 0 评论 -
第十章-创建计算字段
10.1计算字段存储在表中的数据都不是应用程序所需要的。 我们需要直接从数据库中检索出转换、计算或格式化过的数据;例:物品订单表存储物品的价格和数量,但不需要存储每个物品的总价格(用价格乘以数量即可)。为打印发票,需要物品的总价格。10.2拼接字段vendors表包含供应商和位置信息。假如要生成一个供应商报表,需要在供应商的名字中按照name(location)这样的格式列出供应商的位置...原创 2019-12-25 15:58:12 · 232 阅读 · 0 评论 -
第九章-用正则表达式进行搜索
9.1正则表达式介绍正则表达式是用来匹配文本的特殊的串(字符集合)。与任意语言一样,正则表达式具有你必须学习的特殊的语法和指令。9.2使用MySQL正则表达式正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较,MySQL用WHERE子句对正则表达式提供了初步的支持,允许你指定正则表达式过滤SELECT检索出的数据注意:MySQL仅支持多数正则表达式实现的一个很小的子...原创 2019-12-25 15:57:43 · 700 阅读 · 0 评论 -
第八章-用通配符进行过滤
8.1LIKE操作符通配符(wildcard):用来匹配值的一部分的特殊字符。为在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示MySQL, 后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。8.1.1百分号(%)通配符最常用的通配符是百分号(%)。在搜索串中,%表示任何字符出现的任意次数。例如,为了找出所有以词jet开头的产品,可以使用一下SELECT语句:输入: ...原创 2019-12-23 16:00:04 · 146 阅读 · 0 评论 -
第七章-数据过滤
7.1组合WHERE子句7.1.1AND操作符为了通过不止一个列进行过滤,可以使用AND操作符给WHERE子句附加条件。下面的代码给出了一个例子:输入: SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10;**分析:**此sql语句检索由供应商1003制...原创 2019-12-23 15:59:34 · 202 阅读 · 0 评论 -
第六章-过滤数据
6.1使用WHERE子句只检索所需数据需要指定搜索条件,搜索条件也称为过滤条件在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤,WHERE子句在表名(FROM子句)之后给出输入: SELECT prod_name,prod_price FROM products WHERE prod_price = 2.50;分析: 这条语句从products表中检索两个列,但不返回所...原创 2019-12-22 11:47:24 · 132 阅读 · 0 评论 -
第五章-排序检索数据
5.1排序数据子句: SQL语句由子句构成,有些子句是必须的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组 成。子句的例子有SELECT语句的FROM子句。ORDER BY子句:ORDER BY: SELECT prod_name FROM products ORDER BY prod_name分析: 选择prodects的prod_name列,对prod_name列按照字母升...原创 2019-12-22 11:46:36 · 122 阅读 · 0 评论 -
第四章-检索数据
4.1SELECT语句用途:从一个或多个表中检索信息4.2 检索单个列SELECT prod_name FROM products;**分析:**上述语句利用SELECT语句从products表中检索一个名为prod_name的列。所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。4.3检索多个列SELECT prod_id,prod_name,prod_...原创 2019-12-22 11:46:05 · 93 阅读 · 0 评论 -
第二章-MySQL简介
2.1什么是MySQLMySQL的优点:成本——MySQL是开放源代码的,一般可以免费使用(甚至可以 免费修改)。性能——MySQL执行很快(非常快)。可信赖——某些非常重要和声望很高的公司、站点使用MySQL,这些公司和站点都用MySQL来处理自己的重要数据。简单——MySQL很容易安装和使用。2.1.1客户机-服务器软件DBMS可分为两类:一类为基于共享文件系统的DBMS,另...原创 2019-12-20 18:17:33 · 137 阅读 · 0 评论 -
第三章-使用MySQL
3.1连接为了连接到MySQL,需要以下信息:主机名(计算机名)——如果连接到本地MySQL服务器,为localhost;端口(如果使用默认端口3306之外的端口);一个合法的用户名;用户密码(如果需要)。3.2 选择数据库连接了mysql,首先要选择一个数据库:use crashcourse; #指定使用的数据库3.3了解数据库和表显示当前包含的数据库show dat...原创 2019-12-20 18:17:57 · 104 阅读 · 1 评论 -
第一章-了解SQL
1.1数据库基础1.1.1什么是数据库数据库:数据库(database) 保存有组织的数据的容器(通常是一个文件或一组文件)。数据库是通过DBMS创建和操作的容器。用户使用DBMS来访问数据库。1.1.2表表:是一种结构化的文件,可用来存储某种特定类型的数据。在同一个数据库中,表的名字是唯一的。模式:用来描述数据库中特定的表以及整个数据库(和其中表的关系)的布局以特性的信息。1.1....原创 2019-12-20 18:17:04 · 42 阅读 · 0 评论