编程开发 购物 网址 游戏 小说 歌词 快照 开发 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 编程 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
移动开发 架构设计 编程语言 互联网 开发经验 Web前端 开发总结
开发杂谈 系统运维 研发管理 数据库 云 计 算 Java开发
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
  编程开发知识库 -> 数据库 -> 读书笔记2 MYSQL必知必会 -> 正文阅读
 

[数据库]读书笔记2 MYSQL必知必会[第1页]


// 第十六章 创建高级联结
// 使用表别名 缩短SQL语句
SELECT cust_name,cust_contact FROM customers AS c, orders AS o, orderitems AS oi
 WHERE c.cust_id = o.cust_id AND oi.order_num = o.order_num AND prod_id = 'TNT2';
// 自联结
SELECT p1.prod_id, p1.prod_name, FROM products AS p1, products AS p2 WHERE p1.vend_id = p2.vend_id AND p2.prod_id = 'DTNTR';
// 外部联结
SELECT customers.cust_id,orders.order_num FROM customers LEFT OUTER JOIN orders ON customers.cust_id = orders.cust_id;
// 使用带聚集函数的联结
SELECT customers.cust_name customers.cust_id, COUNT(orders.order_num) AS num_ord FROM customers INNER JOIN orders ON customers.cust_id = orders.cust_id GROUP BY customers.cust_id;
// 第十七章 组合查询
// 使用UNION 并集 变大
SELECT vend_id,prod_id,prod_price FROEM WHERE products <= 5 UNION SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002);
// 第十八章 全文本搜索
// MyISAM和InnoDB 前者支持 或者不支持
// 启用全文本支持
CREATE TABLE productnotes (
 note_id int NOT NULL AUTO_INCREMENT,
 prod_id char(10) NOT NULL,
 note_data datetime NOT NULL,
 note_text text NULL,
 PRIMARY KEY(note_id),
 FULLTEXT(note_text)
)ENGINE = MyISAM;
// 进行全文本搜索 MAtch()指定被搜索的列,Against()指定要使用的搜索表达式
SELECT note_text FROM productnotes WHERE MAtch(note_text) Against('rabbit');
// 查询扩展
SELECT note_text FROM productnotes WHERE Match(note_text) Against('anvils' WITH QUERY EXPANSION);
// 布尔文本搜索
SELECT note_text FROM productnotes WHERE Match(note_text) Against('heavy' IN BOOLEAN MODE);
// 包含heavy但不包含任何以rope开始的词的行
SELECT note_text FROM productnotes WHERE Match(note_text) Against('heavy -rope*' IN BOOLEAN MODE);
// 第十九章 插入数据
// 插入完整的行
INSERT INTO Customers VALUES(NULL, 'Pep', '100sa', 'sa');
INSERT INTO customers(cust_name,cust_city,cust_zip) VALUES('hang','baoding','xian');
// 插入多行数据
INSERT INTO customers(cust_name,cust_city,cust_zip) VALUES
 ('miqi','yanan','xian'),('laoniu','xian','xian');
// 插入检索出的数据
INSERT INTO customers(cust_id,cust_contact,cust_email,cust_name) SELECT cust_id,cust_contact,cust_email,cust_name FROM custnew;
// 第二十章 更新和删除数据
// 更新一行数据
UPDATE customers SET cust_eamil = 'dongang@qq.com' WHERE cust_id = 10005;
// 更新多行数据
UPDATE customers SET cust_name = 'zhang', cust_email = 'hang@qq.com' WHERE cust_id = 10005;
// 为了删除某个列的值 可设置它为NULL
UPDATE custmoers SET cust_eaml = NULL WHERE cust_id = 10005;
// 删除数据
DELETE FROM customers WHERE cust_id = 10006;
// 第二十一章 创建和操纵表
// 创建表
CREATE TABLE customers (
 cust_id int NUO NULL AUTO_INCREMENT,
 cust_name char(50) NOT NULL,
 cust_city char(50) NOT NULL,
 PRIMARY KEY(cust_id)
) ENGINE = InnoDB;
// 引擎类型
// InnoDB是一个可靠的事务处理引擎,不支持全文搜索;
// MEMORY在功能等同于MyISAM,但由于数据存储在内存中,速度很快,特别适合临时表;
// MyISAM是一个性能极高的引擎,支持全文搜索,但不支持事务处理;
// 更新表格
// 给表添加一个列
ALERT TABLE vendors ADD vend_phone CHAR(20);
// 删除刚刚添加的列
ALERT TABLE vendors DROP COLUMN vend_phone;
// 定义外键
ALERT TABLE orderitems ADD CONSTRAINT fk_orderitems_orders FOREGIN KEY (order_num) REFERENCE orders(order_num);
// 删除表
DROP TABLE customers2;
// 重命名表
RENAME TABLE customers2 TO customers;
// 第二十二章 使用视图
// 视图就是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询
SELECT cust_name,cust_contact FROM customers, orders, orderitems WHERE
customers.cust_id = orders.cust_id AND orderitems.order_num = orders.order_num AND prod.id = 'TNT2';
// 视图 productcustomers
SELECT cust_name,cust_contact FROM productcustomers WHERE prod_id = 'TNT2';
// 使用试图 创建:CREATE VIEW 查看创建视图的语句:SHOW CREATE VIEW viewname  删除视图:DROP VIEW viewname 
// 更新视图:可以先DROP再CREATE 或者 CREATE OR REPLACE
// 利用视图简化复杂的联结
CREATE VIEW productcustomers AS
SELECT cust_name,cust_contact,prod_id FROM customers, orders, orderitems
WHERE customers.cust_id = orders.cust_id AND orderitems.order_num = orders.order_num;
// 为检索订购了产品TNT2的客户
SELECT cust_name,cust_contact FROM productcustomers WHERE prod_id = 'TNT2';
// 用视图重新格式化检索出的数据
SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') AS vend_title FROM vendors ORDER BY vend_name;
CREATE VIEW vendorlocations AS
SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') AS vend_title FROM vendors ORDER BY vend_name;
// 使用该视图
SELECT * FROM vendorlocations;
// 使用视图过滤不想要的数据
CREATE VIEW customermaillist AS
SELECT cust_id,cust_name,cust_email FROM customers WHERE cust_eamil IS NOT NULL;
// 使用该视图
SELECT * FROM customeremaillist;
// 使用视图与计算字段
SELECT prod_id,quantity,item_price quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 2005;
CREATE VIEW orderitemsexpanded AS SELECT prod_id,quantity,item_price quantity*item_price AS expanded_price FROM orderitems;
// 使用该视图
SELECT * FROM orderitemsexpanded WHERE order_num = 200005;
// 更新视图
// 视图为虚拟表,他们包含的不是数据而是根据需要检索数据的查询,提供一种对mysql的select语句层次的封装,可用来
// 简化数据处理以及重新格式话基础数据或保护基础数据
// 第二十三章 使用存储过程
// 执行存储过程
CALL productpricing(@pricelow,@priceheight,@priceaverage);
// 创建存储过程
CREATE PROCEDURE productpricing() BEGIN SELECT Avg(prod_price) AS priceaverage FROM products END;
// 使用存储过程
CALL productpricing();
// 删除存储过程
DROP PROCEDURE productpricing;
// 使用参数
CREATE PROCEDURE productpricing(OUT p1 DECIMAL(8,2),OUT ph DECIMAL(8,2),OUT pa DECIMAL(8,2))
 BEGIN SELECT Min(prod_price) INTO p1 FROM products;
    SELECT Max(prod_price) INTO ph FROM products;
    SELECT Avg(prod_price) INTO pa FROM products;
 END;
// 使用该参数存储过程
CALL productpricing(@pricelow,@priceheight,@priceaverage);
// 使用in out 参数
CREATE PROCEDURE ordertotal(IN onumber INT, OUT ototal DECIMAL(8,2))
 BEGIN
  SELECT Sum(item_price*quantity) FROM orderitems WHERE order_num = onumber INTO ototal
 END;
// 使用该存储过程
CALL ordertotal(20005,@total);
// 建立智能化存储,就是添加if语句
// 检查存储过程
SHOW CREATE PROCEDURE ordertotal;
// 第二十四章 使用游标
// 游标智能用于存储过程
// 游标的使用规则 1使用游标前必须声明它 2声明后必须打开游标以供使用  3对于填有数据的游标,根据需要取出各行
// 4游标结束后,必须关闭游标
// 创建游标
CREATE PROCEDURE processorders()
BEGIN
 DECLARE ordernumbers CURSOR
 FOR
 SELECT order_num FROM orders;
END;
// 打开和关闭游标
OPEN ordernumbers; CLOSE ordernumbers;
// 第二十五章 使用触发器
// 创建触发器
// 1唯一的触发器名;2触发器关联的表;3触发器应该响应的活动(DELETE\INSERT\UPDATA);4触发器何时执行
CREATE TRIGGER newproduct AFTER INSERT ON products FOR EACH ROW SELECT 'Product added';
// 删除触发器
DROP TRIGGER newproduct;
// 使用触发器
// 第二十六章 事务管理
// ROLLBACK COMMIT 使用保留点SAVEPOINT
阅读全文
版权声明:本文为博主原创文章,未经博主允许不得转载。
本文已收录于以下专栏:

发表评论
HTML/XML objective-c Delphi Ruby PHP C# C++ JavaScript Visual Basic Python Java CSS SQL 其它
相关文章推荐
mysql必知必会-读书笔记(chap4-8)
chap 5 排序检索数据 取一个或多个列的名字,据此对输出排序:SELECT 列名1,列名2 FROM 表名 ORDER BY 列名1,列名2 如果是多个列,那么先根据列名1进行排序,然后对于列...
nexuszhoule 2014-09-20 14:43 243 mysql必知必会-读书笔记(chap1-4)
chap 1 模式:关于数据库和表的布局及特性的信息。 列:表中的一个字段。所有表都是有一个或多个列组成的。 数据类型:所容许的数据的类型。 行:表中数据是按行存储的,所保存的每个记录存储在自...
nexuszhoule 2014-09-16 22:08 248 嵌入式工程师必知必会 —— 读书笔记2、自学自底向上的设计方法(小型嵌入式系统)
回答“菜鸟级”问题:为了掌握可以直接派上用场的嵌入式技能,该学习哪种微控制器呢: 向主要从事硬件设计工作的工程技术人员提出一个非常重要的观点:从实践的角度来讲,硬件工程师不仅有必要理...
Cowena 2015-08-30 10:40 951 C++必知必会 读书笔记2
条款25 实参相依的查找当查找该调用何种函数时,编译器会到实参所在的命名空间中查找函数,使之成为候选调用函数之一 条款26 操作符函数查找直接调用操作符时,遵循普通的函数查找规则;使用中缀语法调用操作...
liuxialong 2011-06-21 09:58 1079 《正则表达式必知必会》读书笔记
正则表达式必知必会 1、匹配任意字符        .可以匹配除换行符以外的任意一个字符,如想要匹配.必须使用\进行转义,即\. 2、匹配指定字符        将需要匹配...
tan6600 2015-06-24 14:15 576 《产品经理必知必会》读书笔记
点击打开链接 豆瓣传送门 有段时间没有写读书笔记了。虽然很多时候,我的读书笔记算不上整整严格意义的读书笔记,因为我一般会联想到很多其他的事情,很少真正设计书里面的内容,所以看我博客的人,其实对于...
junior1991 2015-05-22 12:58 493 《C++必知必会》读书笔记(上)
1、数据抽象 1) 首先, 为类型取一个描述性的名字。如果很难为这个类型命名,那就说明我们还不知道要实现什么。因此,我们需要多开动脑筋,结合业务逻辑,给即将产生的类一个好的合适的职责。这就是设计过程...
e5Max 2013-09-14 16:10 988 sql必知必会读书笔记一
检索数据   1.结束sql语句使用 ";"   2.sql语句不区分大小写(sql语句中大写是为了增加代码的可阅读性),数据库名,表名,字段名区分大小写(默认区分,具体看dbms及配置)...
Qlong_dd 2014-07-29 22:30 660 《Json 必知必会》——读书笔记
一、 JSON概述: 1、JSON概念: (1)一种数据交换格式 (2)独立于编程语言 (3)基于js对象字面量表示法(Java script object notation) (4)表达...
qq_30533611 2017-03-23 21:37 37 《正则表达式必知必会》读书笔记【语法整理】
Regular Expression语法 1.纯文本匹配 word 2. .表示匹配任意一个单个字符,包括字母、数字或者点“.”本身(除换行符以外的任意单个字符) apple. 3.一个正则表达式...
liuchuo 2016-10-30 09:40 230
Dote2r +关注
原创 28 粉丝 2 喜欢 0 码云  
他的最新文章 更多文章
读书笔记1 MYSQL必知必会 windows下安装redis及php安装redis扩展教程 resuful api 简介
在线课程

【免费】搜狗机器翻译技术分享
讲师:

深度学习在推荐领域的应用和实践
讲师:吴岸城
热门文章 java中的io流详解
1270
ThinkPHP5下的validate
680
php中的引用变量1
250
接口
179
Struts2入门详解
171
0
  数据库 最新文章
Oracle之复杂查询
数据仓库学习笔记一
SQL语句
17.Oracle杂记——数据字典dba_ts_quotas
18.Oracle杂记——数据字典dba_users
19.Oracle杂记——数据字典dba_views
MySQL分区表
实现一个Android锁屏App的难点总结
mysql用root登录,执行revoke all privileg
innodb 引擎相关模块
上一篇文章      下一篇文章      查看所有文章
加:2017-10-30 04:03:18  更:2017-10-30 04:03:37 
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 新闻资讯 小游戏 Chinese Culture 股票 三丰软件 开发 中国文化 网文精选 阅读网 看图 日历 万年历 2018年9日历
2018-9-21 20:09:17
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  编程开发知识库