随笔分类 -  mysql

摘要:备份方式  使用命令行实用程序mysqldump转储所有数据库内容到某个外部文件。在进行常规备份前这个实用程序应该正常运行,以便能正确地备份转储文件。  可用命令行实用程序mysqlhotcopy从一个数据库复制所有数据(并非所有数据库引擎都支持这个实用程序)。  可以使用MySQL的BACK 阅读全文
posted @ 2020-09-30 10:34 bibicode 阅读(131) 评论(0) 推荐(0)
摘要:管理用户 MySQL用户账号和信息存储在名为mysql的MySQL数据库中 use mysql SELECT user FROM mysql mysql数据库有一个名为user的表,它包含所有用户账号。user 表有一个名为user的列,它存储用户登录名 创建用户 CREATE USER ben I 阅读全文
posted @ 2020-09-30 10:11 bibicode 阅读(95) 评论(0) 推荐(0)
摘要:使用字符集和校对顺序 查看所支持的字符集完整列表,使用以下语句: SHOW CHARACTER SET; 为了查看所支持校对的完整列表,使用以下语句: SHOW COLLATION; 此语句显示所有可用的校对,以及它们适用的字符集。可以看到有的字符集具有不止一种校对。例如,latin1对不同的欧洲语 阅读全文
posted @ 2020-09-29 18:01 bibicode 阅读(145) 评论(0) 推荐(0)
摘要:并非所有引擎都支持事务处理 MySQL支持几种基本的数据库引擎。正如本章所述,并非所有引擎都支持明确的事务处理管理。MyISAM和InnoDB是两种最常使用的引擎。前者不支持明确的事务处理管理,而后者支持。 事务处理(transaction processing)可以用来维护数据库的完整性,它保证成 阅读全文
posted @ 2020-09-29 16:21 bibicode 阅读(272) 评论(0) 推荐(0)
摘要:触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于BEGIN和END语句之间的一组语句):  DELETE;  INSERT;  UPDATE。 其他MySQL语句不支持触发器。 创建触发器 在创建触发器时,需要给出4条信息:  唯一的触发器名;  触发器关联的表; 阅读全文
posted @ 2020-09-29 15:21 bibicode 阅读(224) 评论(0) 推荐(0)
摘要:由前几章可知,MySQL检索操作返回一组称为结果集的行。这组返回的行都是与SQL语句相匹配的行(零行或多行)。使用简单的SELECT语句,例如,没有办法得到第一行、下一行或前10行,也不存在每次一行 地处理所有行的简单方法(相对于成批地处理它们)。 有时,需要在检索出来的行中前进或后退一行或多行。这 阅读全文
posted @ 2020-09-28 16:06 bibicode 阅读(200) 评论(0) 推荐(0)
摘要:默认的MySQL语句分隔符为;(正如你已经在迄今为止所使用的MySQL语句中所看到的那样)。mysql命令行实用程序也使用;作为语句分隔符。如果命令行实用程序要解释存储过程自身内的;字符,则它们最终不会成为存储过程的成分,这会使存储过程中的SQL出现句法错误。 解决办法是临时更改命令行实用程序的语句 阅读全文
posted @ 2020-09-26 15:59 bibicode 阅读(262) 评论(0) 推荐(0)
摘要:存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件,虽然它们的作用不仅限于批处理。 为什么使用存储过程  通过把处理封装在容易使用的单元中,简化复杂的操作(正如前面例子所述)。  由于不要求反复建立一系列处理步骤,这保证了数据的完整性。如果所有开发人员和应 阅读全文
posted @ 2020-09-26 15:06 bibicode 阅读(189) 评论(0) 推荐(0)
摘要:视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 下面是关于视图创建和使用的一些最常见的规则和限制。  与表一样,视图必须唯一命名(不能给视图取与别的视图或表相 同的名字)。  对于可以创建的视图数目没有限制。  为了创建视图,必须具有足够的访问权限。这些限制通常由数 阅读全文
posted @ 2020-09-26 12:15 bibicode 阅读(176) 评论(0) 推荐(0)
摘要:重命名单个表 RENAME TABLE cust1 TO custnew; 重命名多个表 RENAME TABLE cust1 TO custnew, product TO products; 阅读全文
posted @ 2020-09-25 17:45 bibicode 阅读(112) 评论(0) 推荐(0)
摘要:为更新表定义,可使用ALTER TABLE语句。但是,理想状态下,当表中存储数据以后,该表就不应该再被更新。在表的设计过程中需要花费大量时间来考虑,以便后期不对该表进行大的改动。 为了使用ALTER TABLE更改表结构,必须给出下面的信息:  在ALTER TABLE之后给出要更改的表名(该表必 阅读全文
posted @ 2020-09-25 17:42 bibicode 阅读(274) 评论(0) 推荐(0)
摘要:InnoDB是一个可靠的事务处理引擎(参见第26章),它不支持全文本搜索; MEMORY在功能等同于MyISAM,但由于数据存储在内存(不是磁盘)中,速度很快(特别适合于临时表); MyISAM是一个性能极高的引擎,它支持全文本搜索(参见第18章),但不支持事务处理。 混用引擎类型有一个大缺陷。外键 阅读全文
posted @ 2020-09-25 17:31 bibicode 阅读(232) 评论(0) 推荐(0)
摘要:为了从一个表中删除(去掉)数据,使用DELETE语句。可以两种方式使用DELETE:  从表中删除特定的行;  从表中删除所有行。 **不要省略WHERE子句 ** 在使用DELETE时一定要注意细心。因为稍不注意,就会错误地删除表中所有行。 下面的语句从customers表中删除一行: DEL 阅读全文
posted @ 2020-09-25 16:48 bibicode 阅读(564) 评论(0) 推荐(0)
摘要:为了更新(修改)表中的数据,可使用UPDATE语句。可采用两种方式使用UPDATE:  更新表中特定行;  更新表中所有行。 不要省略WHERE子句 在使用UPDATE时一定要注意细心。因为稍不注意,就会更新表中所有行。 基本的UPDATE语句由3部分组成,分别是:  要更新的表;  列名和 阅读全文
posted @ 2020-09-25 16:39 bibicode 阅读(135) 评论(0) 推荐(0)
摘要:customers表 CREATE TABLE `customers` ( `cust_id` int NOT NULL AUTO_INCREMENT, `cust_name` char(50) NOT NULL, `cust_address` char(50) DEFAULT NULL, `cus 阅读全文
posted @ 2020-09-25 16:16 bibicode 阅读(354) 评论(0) 推荐(0)
摘要:理解全文本搜索 并非所有的引擎都支持全文本搜索。两个最常使用的引擎为MyISAM和InnoDB,前者支持全文本搜索,而后者不支持 LIKE关键字,它利用通配操作符匹配文本(和部分文本)。使用LIKE,能够查找包含特殊值或部分值的行(不管这些值位于列内什么位置)。 用基于文本的搜索作为正则表达式匹配列 阅读全文
posted @ 2020-09-25 15:05 bibicode 阅读(153) 评论(0) 推荐(0)
摘要:多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。 这些组合查询通常称为并(union)或复合查询(compound query)。 创建组合查询 可用UNION操作符来组合数条SQL查询。利用 阅读全文
posted @ 2020-09-25 11:20 bibicode 阅读(527) 评论(0) 推荐(0)
摘要:外部联结 许多联结将一个表中的行与另一个表中的行相关联。但有时候会需要包含没有关联行的那些行。联结包含了那些在相关表中没有关联行的行。这种类型的联结称为外部联结。 在使用OUTER JOIN语法时,必须使用RIGHT或LEFT关键字指定包括其所有行的表(RIGHT指出的是OUTER JOIN右边的表 阅读全文
posted @ 2020-09-25 10:50 bibicode 阅读(144) 评论(0) 推荐(0)
摘要:无论何时对表进行联结,应该至少有一个列出现在不止一个表中(被联结的列)。标准的联结(内部联结)返回所有数据,甚至相同的列多次出现。自然联结排除多次出现,使每个列只返回一次。 怎样完成这项工作呢?答案是,系统不完成这项工作,由你自己完成它。 自然联结是这样一种联结,其中你只能选择那些唯一的列。这一般是 阅读全文
posted @ 2020-09-24 17:56 bibicode 阅读(248) 评论(0) 推荐(0)
摘要:使用表别名 别名除了用于列名和计算字段外,SQL还允许给表名起别名。这样做 有两个主要理由: 缩短SQL语句; 允许在单条SELECT语句中多次使用相同的表。 给表使用别名 SELECT vend_name, prod_id, prod_price FROM vendors AS v, produc 阅读全文
posted @ 2020-09-24 17:21 bibicode 阅读(218) 评论(0) 推荐(0)