书籍下载
链接:/s/18g0XgavniXQzp6RlOxnwnQ
密码:j8pm
目录
- 书籍下载
- MySQL必知必会
- 第二章 连接mysql
- 第三章 连接数据库
- 第四章 检索数据
- SELECT,DISTINCT,LIMIT语句
- 第五章 排序数据
- ORDER BY语句
- 第六章 过滤数据
- WHERE语句
- 第七章 数据过滤
- AND, OR, IN, NOT操作符
- 第八章 用通配符进行过滤
- LIKE 操作符
- 第九章 用正则表达式进行搜索
- REGEXP
- 第十章 创建计算字段
- Concat()拼接串
- 执行算数计算
- 第十一章 使用数据处理函数
- 文本处理函数
- 日期时间处理函数
- 数值处理函数
- 第十二章 汇总数据
- 聚集处理函数
- 第十三章 分组数据
- GROUP BY 语句
- HAVING 语句
- SELECT子句顺序
- 第十四章 使用子查询
- 第十五章 联结表
- 使用WHERE联结
- 内部联结 INNER JOIN ...ON
- 联结多个表
- 第十六章 创建高级联结
- 使用表的别名
- 使用不同类型的联结
- 自联结
- 外部联结
- 第十七章 组合查询
- UNION 操作符
- 包含或者取消重复的行
- 第十八章 全文本搜索
- Match() Against() 全文本搜索
- 使用查询扩展 WITH QUERY EXPANSION
- 布尔文本搜索 IN BOOLEAN MODE
- 第十九章 插入数据
- INSERT
- 第二十章 更新和删除数据
- UPDATE
- DELETE
- 第二十一章 创建和操纵表
- 第二十二章 使用视图
- 第二十三章 使用存储过程
- 第二十四章 使用游标
- 第二十五章 使用触发器
- 第二十六章 管理事务处理
MySQL必知必会
第二章 连接mysql
在terminal中连接mysql,输入以下指令:
mysql -u root -p yourpassword
第三章 连接数据库
USE crashhouses;
SHOW DATABASES:
SHOW TABLES
SHOW COLUMNS FROM customers;
SHOW STATUS
第四章 检索数据
SELECT,DISTINCT,LIMIT语句
SELECT name FROM products; --选择单个列
SELECT name,id FROM products; --选择多个列
SELECT * FROM products; --选择所有列
SELECT DISTINCT ven_id FROM products --只返回不同的值
LIMIT 5; --限制返回不多于5行
SELECT products.name FROM products; --使用完全限定的表名
第五章 排序数据
ORDER BY语句
SELECT name FROM products ORDER BY name; --排序
SELECT name,id FROM products ORDER BY name,id; --选择多个列排序
--DESC关键字只应用与其前面的列名,不能部分使用DESC。
SELECT name FROM products ORDER BY name DESC,id; --指定降序
--LIMIT 必须位于ORDER BY 之后
第六章 过滤数据
WHERE语句
--ORDER BY 位于 WHERE 之后
SELECT name,id FROM products WHERE name = 'lucky' ORDER BY id;
-- WHERE 的操作符有>,=,<,!=,BETWEEN等
-- NULL 空值检查
SELECT id FROM customers WHERE email IS NULL;
第七章 数据过滤
AND, OR, IN, NOT操作符
SELECT id, price FROM products
WHERE id=1003 AND price<=10;
SELECT id, price FROM products
WHERE id=1003 OR id=1000;
-- 括号改变计算的次序
SELECT id, price FROM products
WHERE (id=1003 or id=1000) AND price<=10;
SELECT id, price FROM products
WHERE id IN(1003,1006);
SELECT id, price FROM products
WHERE id NOT IN(1003,1006);
第八章 用通配符进行过滤
LIKE 操作符
-- '%'表示任何字符出现任意次数;'_'只匹配单个字符
SELECT name FROM products
WHERE name LIKE '_jet%';
第九章 用正则表达式进行搜索
REGEXP
LIKE 匹配整个列,REGEXP在列值内匹配
具体规则参考正则式符号
SELECT name FROM products
WHERE name REGEXP '^jet.*';
第十章 创建计算字段
Concat()拼接串
执行算数计算
SELECT id*3+2 AS new_id,
Concat(RTrim(name),'(',LTrim(country),')')
AS vend_title
FROM venders
ORDER BY name;
第十一章 使用数据处理函数
文本处理函数
函数直接作用于选中列
- Upper(), Lower(), Locate(), Length()
- Left(), Right(), LTrim(), RTrim()
- Soundex(), SubString()
日期时间处理函数
具体的函数到用的时候再查找
数值处理函数
- Abs(), Cos(), Exp(), Mod()
- Pi(), Rand(), Sin(), Sqrt(), Tan()
第十二章 汇总数据
聚集处理函数
- AVG(), COUNT(), MAX(), MIN(), SUM()
第十三章 分组数据
GROUP BY 语句
- GROUP BY 的时候,所有列一起计算
- GROUP BY 子句包含任意数目的列
- GROUP BY 子句列出的每个列必须是检索列或者有效的表达式(不能是聚集函数)。如果SELECT中使用表达式,则必须在GROUP BY 子句中使用相同的表达式,而不是别名
- 除聚集计算语句外,SELECT中选中的每个列必须在GROUP BY 子句中给出。
- NULL 作为一个分组返回
- GROUP BY 子句中在 WHERE之后,ORDER BY之前。
SELECT id, name, COUNT(*) AS num_prods
FROM products
WHERE id>1000 AND id < 1005
GROUP BY id, name
ORDER BY id;
HAVING 语句
WHERE 过滤行,HAVING过滤组
HAVING 不使用别名
SELECT id, name, COUNT(*) AS num_prods
FROM products
WHERE id>1000 AND id < 1005
GROUP BY id, name
HAVING COUNT(*)>= 2
ORDER BY id;
SELECT子句顺序
顺序如下:SELECT,FROM, WHERE, GROUP BY, HAVING ,ORDER BY, LIMIT
第十四章 使用子查询
可以将一个SELECT子句嵌套在另一个SELECT语句中。其中,列必须匹配,即具有相同的列数,可以使用多个列。
使用子查询不总是执行这种类型数据的最有效办法。可以使用联结表。
个人认为,子查询有点繁琐,基本上都可以使用联结代替。
SELECT id FROM orders
WHERE num IN ( SELECT num FROM orderitems
WHERE id ='TNT2');
第十五章 联结表
使用WHERE联结
SELECT vend_name, prod_name, prod_price FROM vendors ,products
WHERE vendors.vend_id = products.vend_id;
内部联结 INNER JOIN …ON
SELECT vend_name, prod_name, prod_price
FROM vendors INNER JOIN products
ON vendors.vend_id = products.vend_id;
联结多个表
第十六章 创建高级联结
使用表的别名
给使用的表起别名, 应用的时候运用别名。
使用不同类型的联结
自联结
SELECT p1.id,p1.name
FROM products AS p1, products AS p2
WHERE p1.id=p2.id AND p2.id='DTNTR';
外部联结
LEFT INNER…ON, RIGHT INNER… ON
第十七章 组合查询
UNION 操作符
两个SELECT 语句间加上UNION
SELECT id FROM products WHERE id>1003
UNION
SELECT id FROM products WHERE id<100;
包含或者取消重复的行
UNION ALL 返回所有匹配行,包含重复的行;默认UNION,重复的行会被取消
第十八章 全文本搜索
Match() Against() 全文本搜索
在建立TABLE的时候,FULLTEXT()的列就是为了进行全文本搜索;
Match()的值必须与FULLTEXT()定义中的相同;
SELECT note_text FROM productnotes
WHERE Match(note_text) Against('rabbit');
使用查询扩展 WITH QUERY EXPANSION
SELECT note_text FROM productnotes
WHERE Match(note_text) Against('rabbit')
WITH QUERY EXPANSION;
布尔文本搜索 IN BOOLEAN MODE
SELECT note_text FROM productnotes
WHERE Match(note_text) Against('rabbit' IN BOOLEAN MODE)
第十九章 插入数据
INSERT
// 插入多个行
INSERT INTO Customers(name,age)
VALUES('lucky','18'),
('Larry','23');
//插入检索出的数据
INSERT INTO Customers(name,age)
SELECT(name,age) FROM CustomersOld;
第二十章 更新和删除数据
UPDATE
可用来删除指定的列
UPDATE customers
SET name='lucky',age='18'
WHERE id=1000;
//删除指定的列
UPDATE customers
SET mail=NULL;
DELETE
可用来删除指定的行
DELETE FROM customets
WHERE id=10000;
//快速的删除所有行
TRUNCATE TABLE customers;
第二十一章 创建和操纵表
第二十二章 使用视图
第二十三章 使用存储过程
第二十四章 使用游标
第二十五章 使用触发器
第二十六章 管理事务处理
后面章节省略,具体翻阅原书。