买了这本书,想着边看边整理一下,可以方便以后查阅。分享出来,大家都可以看看!
第3章 使用MySQL使用数据库 —— USE 数据库名称
了解数据库 —— SHOW 数据库名称
查看数据库中的表 —— SHOW TABLES
查看表中列的消息 —— SHOW COLIMNS from 表名(DESCRIBE 表名)
自动增量 ——AUTO_INCREMENT
主键 —— PRIMARY KEY
第4章 检索数据库
SELECT语句:检索一个列: SELECT 列名 FROM 表名
检索多个列: SELECT 列名1,列名2 FROM 表名
检索所有列: SELECT * from 表名
LIMIT 关键字: SELECT 列名 from 表名 limit 2(检索不多于2行的)
SELECT 列名 from 表名 limit 2,2 (从行2开始检索两行)注意:行2表示的是表中的第三行DISTINCT关键字: SELECT DISTINCT 列名1 from 表名(只显示该列中不相同的数据)
第5章 排序检索数据ORDER BY关键字: SELECT * from 表名 ORDER BY 列名1 (按列名1排序检索表格)
SELECT * from 表名 ORDER BY 列名1 DESC (按列名1逆序排序检索表格)
SELECT * from 表名 ORDER BY 列名1 DESC,列名2(先按列名1逆序排序,再按列名2正序排 序)
第6章 过滤数据
WHERE子句使用方法: SELECT * FROM 表名 WHERE 条件
与ORDER BY混合使用: SELECT * FROM 表名 WHERE 条件 ORDER BY 列名;(ORDER BY必须放在WHERE之后)
where子句后的条件&#xff1a; <> ,> ,<>&#61;,<&#61; ,and ,or
范围值检索&#xff1a; SELECT * from 表名 WHERE 列名 BETWEEN 数字1 AND 数字2 (按列名在数字1和数字2之间检索)
空值检索&#xff1a; SELECT * from 表名 WHERE 列名 IS NULL&#xff1b;
第7章 数据过滤AND和OR操作符&#xff1a; AND的优先级高于OR
IN操作符&#xff1a;SELECT * from 表名 WHERE 列名 IN(数值1&#xff0c;数值2)
NOT操作符&#xff1a;SELECT * from 表名 WHERE 列名NOT IN(数值1&#xff0c;数值2)
第8章 用通配符进行过滤
LIKE操作符百分号(%)通配符&#xff1a; SELECT * from 表名 WHERE 列名 LIKE ‘XXX%’(检索列名以XXX开头的任何字符)
SELECT * from 表名 WHERE 列名 LIKE ‘%XX%’(检索列名中间为XX的任何字符)
(注意&#xff1a;用%不能匹配值为NULL的行)下划线(_)通配符&#xff1a;SELECT * from 表名 WHERE 列名 LIKE ‘_XXX’
注意&#xff1a; %可以匹配多个字符&#xff0c;而_只能匹配一个字符
第9章 使用正则表达式进行搜索
正则表达式的作用是匹配文本&#xff0c;将一个模式与一个文本串进行比较使用方法&#xff1a; SELECT 列名 from 表名 WHERE 列名 REGEXP ‘正则表达式’ &#xff1b;
SELECT 列名 from 表名 WHERE 列名 REGEXP ‘000’(‘000’表示匹配任意一个字符)进行OR匹配&#xff1a; SELECT 列名 from 表名 WHERE 列名 REGEXP ‘字符1| 字符2’(匹配数值1和数值2中的其中一个)
匹配几个字符之一&#xff1a; SELECT 列名 from 表名 WHERE 列名 REGEXP ‘[字符1 字符2 字符3] XXX’(匹配这三个字符中的一个)
l 匹配范围&#xff1a; SELECT 列名 from 表名 WHERE 列名 REGEXP &#39;[字符1- 字符3]XX&#39;
l 匹配特殊字符&#xff1a; SELECT 列名 from 表名 WHERE 列名 REGEXP ‘ \\.’
l 定位符&#xff1a; SELECT 列名 from 表名 WHERE 列名 REGEXP &#39;^[8\\.]&#39;(以8开头的所有字符) ($这是结尾标志符)
第10章 创建计算字段拼接字段 —— CONCAT
SELECT CONCAT (列名1&#xff0c;‘(&#39;, 列名2&#xff0c;&#39;)’))from 表名
SELECT CONCAT (RTrim(列名1)&#xff0c;LTrim(列名2)) from 表名(RTrim去除列值右边的空格)算数运算 —— * 、/、&#43;、-
第11章 使用数据处理函数UPPER()和LOWER()函数——字段全部大写或者小写
DATE()函数 —— 仅提取列中的日期
YEAR() 函数 —— 从日期中返回年
Month()函数 —— 从日期中返回月
数值处理函数 —— abs()/Cos()/Exp()/MOd()/Pi()
第12章 汇总数据聚集函数——AVG()/COUNT()/MAX()/MIN()/SUM()
注意&#xff1a; SELECT COUNT(*) from 表格 (对表中行的数目进行统计&#xff0c;不管表列中是否包含空值)
SELECT COUNT(列名) from 表格 (对当前列中不是空值的行的数目进行统计)SELECT AVG(DISTICNCT 列名) from 表格 (去重后求取平均值)
第13章 分组数据分组 —— GROUP BY
GROUP BY子句必须在where子句之后&#xff0c;在ORDER BY子句之前
SELECT 列名1&#xff0c;count(列名2) AS new_列名2 FROM 表名 group by 列名1 WITH ROLLUP&#xff1b;(ROLLUP得到每个分组和每个分组汇总级别的值)过滤分组 ——HAVING
where中的子句部分&#xff0c;都可以在having中用&#xff0c;但是where在分组前进行过滤&#xff0c;而having在分组后过滤&#xff1b;
例如&#xff1a; SELECT 列名1&#xff0c;COUNT(列名2) as new_c from 表格 group by 列名1 having COUNT(列名2)>&#61; 2;
SELECT 列名1&#xff0c;sum(列名2 * 列名3) as new from 表名 group by 列名1 having sum(列名2 * 列名3) >&#61;50
在HAVING中使用聚合函数的时候&#xff0c;必须写全不能用其重命名
第14章 使用子查询子查询 —— SELECT语句中嵌套SELECT语句
第15章 联结表联结表的基础是有关系数据表的存在
内部联结(inner join)—— SELECT * from 表1 inner join 表2 on 表1.列名 &#61; 表2.列名
第 16 章 创建高级联结自联结 —— 就是同一张表引用多次
自然联结
外部联结 —— OUTER JOIN
SELECT a.列名1&#xff0c;a.列名2&#xff0c;b.列名1 FROM 表1 as a LEFT OUTER JOIN 表2 as b ON a.列名 &#61; b.列名
外部联结中必须使用LEFT或者RIGHT指定联结方向&#xff1b;聚集函数也可以使用在联结中
第17章 组合查询使用条件 &#xff1a; 1)在单个查询中从不同的表返回类似结构的数据&#xff1b;2)对单个表执行多个查询&#xff0c;按单个查询返回数据&#xff1b;
创建组合查询 —— UNION关键字
SELECT 语句1 UNION SELECT 语句2 (UNION在查询时会自动去掉重复行)
SELECT 语句1 UNION ALL SELECT 语句2 (UNION在查询时不会去掉重复行)UNION和WHERE的区别&#xff1a;UNION相当于是WHERE的补充&#xff0c;即如果需要每个条件的匹配行全部出现&#xff0c;就必须用UNION ALL ;
第18章 全文本搜索一般在创建表时指定FULLTEXT:例如&#xff1a;FULLTEXT(note_txt)
全文本搜索—— Match() 和Against()
Match() 指定被搜索的列&#xff0c;Against() 指定要使用的搜索表达式式&#xff1b;
SELECT note_tx FROM 表名 WHEREMatch(note_txt) Against(&#39;表达式&#39;)
Match使用说明&#xff1a;传递给Match()的值必须与FULLTEXT()定义的相同&#xff1b;如果指定多个列就必须列出它们且次序正确使用查询扩展
SELECT note_txt FROM 表名 WHEREMatch(note_txt) Against(&#39;字符串&#39; WITH QUERY EXPANSION)
扩展查询输出与你想要的搜索结果有关的值&#xff0c;但是也并不包含你的搜索结果布尔文本搜索—— IN BOOLEAN MODE
SELECT note_txt from 表名 WHERE Match(note_txt) Against(&#39;字符串&#39; IN BOOLEAN MODE)
例如&#xff1a; SELECT note_txt FROM 表名 WHERE Match(note_txt) Against(&#39;&#43;词1
SELECT note_txt FROM 表名 WHERE Match(note_txt) Against(&#39;"词1 词2"&#39; IN BOOLEAN MODE)(匹配短语)
第19章 插入数据INSERT语句
INSERT INTO 表名 VALUES(按列次序输入每列中的值)
INSERT INTO 表名(各个列名)VALUES(按列输入每个值)插入检索出的数据
INSERT INTO 表名 (各个列名)SELECT (各个列名)FROM 表名1&#xff1b;
第20章 更新和删除数据更新数据——UPDATE(1&#xff0c;更新表中所有行&#xff1b;2&#xff0c;更新表中特定行)
UPDATE 表名 SET 更新公式 where 条件IGNORE关键字 ——作用是更新多个行的时候忽略可能出现的错误 UPDATE IGNORE 表名...
删除数据——DELETE(1,从表中删除特定的行&#xff1b;2,从表中删除所有行)
DELETE FROM 表名 WHERE 条件 (使用DELETE时不能省略where 防止删除整个表)
注意&#xff1a;小心使用UPDATE和DELETE&#xff0c;因为这两个是不可逆的
第21 章 创建和操纵表创建表
例如&#xff1a; CREATE TABLE price
( pro_id int not null primary key auto_increment,
pro_name char(50) not null,
pro_date datetime not null)
注意&#xff1a;主键值必须唯一&#xff0c;如果主键使用单个列&#xff0c;则它的值必须唯一&#xff1b;如果使用多个列&#xff0c;则这些列的组合值必须唯一
允许NULL值的列不能作为唯一标志&#xff0c;NULL值不是空值更新表(使用ALTER时要格外小心&#xff0c;最好做一个备份)
ALTER TABLE 表名 ADD 列名 char(20) ——给原表增加一个新列(列名)
ALTER TABLE 表名 DROP COLUMN 列名 —— 删除表中的列(列名)删除表
DROP TABLE 表名重命名表
RENAME TABLE 表名 to 新表名
第22章 使用视图创建视图 —— CREATE VIEW 。。。。
使用视图 —— SHOW CREATE VIEW viewname
删除视图 —— DROP viewname
视图一般用于检索而不用于更新(INSERT\UPDATE\DELETE)
第23章 使用存储过程
使用存储过程的好处&#xff1a;简单、安全、高性能创建存储过程
CREATE PROCEDUREsave_name ()
BEGIN
SELECT 语句1&#xff1b;
SELECT 语句2&#xff1b;
END调用存储&#xff1a; CALL save_name()
删除存储过程&#xff1a; DROP PROCEDURE save_name;
带参数的存储过程&#xff1a; CREATE PROCEDURE save_name(参数1&#xff0c;参数2&#xff0c;参数3)
调用过程&#xff1a; CALL save_name(&#64;变量1,&#64;变量2&#xff0c;&#64;变量3)
第24 章 使用游标游标(cursor)是一个存储在MySQL服务器上的数据库查询&#xff0c;是被SELECT语句检索数来的结果集&#xff0c;存储了游标后&#xff0c;应用程序可以根据需要滚动或者浏览其中的数据
创建游标
DECLARE 游标名 CURSOR FOR SELECT语句打开或关闭游标
OPEN/CLOSE 游标名
例如&#xff1a;
CREATE PROCEDURE procedure_name()
BEGIN
DECLARE ordernumbers CURSOR
FOR
SELECT order_num FROM orders ;
OPEN ordernumbers ;
FETCH ordernumbers INTO o; %查询游标中的一行
CLOSE ordernumbers
END ;
第25章 使用触发器
用于数据表发生变化(DELETE、INSERT、UPDATE)时&#xff0c;自动执行的一条SQL语句
CREATE TRIGGER 触发器名 AFTER INSERT ON 表名 FOR EACH ROW&#xff1b;
CREATE TRIGGER 触发器名 BEFORE/AFTER DELETE/UPDATE ON 表名 FOR EACH ROW&#xff1b;
第26章 管理事物处理
事物处理可以用来维护数据库的完整性&#xff0c;保证成批的MYSQL操作要么全部执行&#xff0c;要么都不执行。
关于事物处理需要知道的术语&#xff1a; 事物\回退\提交\保留点执行事物——COMMIT
撤销 —— ROLLBACK
保留点 —— SAVEPOINT (用于在回退时可以回退到保留点)