热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql必知必会看完看什么_MySQL必知必会知识点整理

买了这本书,想着边看边整理一下,可以方便以后查阅。分享出来,大家都可以看看!第3章使用MySQL使用数据库——USE数据库名

买了这本书,想着边看边整理一下,可以方便以后查阅。分享出来,大家都可以看看!

第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 (用于在回退时可以回退到保留点)



推荐阅读
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 本文介绍了如何在Jquery中通过元素的样式值获取元素,并将其赋值给一个变量。提供了5种解决方案供参考。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • 使用Spring AOP实现切面编程的步骤和注意事项
    本文介绍了使用Spring AOP实现切面编程的步骤和注意事项。首先解释了@EnableAspectJAutoProxy、@Aspect、@Pointcut等注解的作用,并介绍了实现AOP功能的方法。然后详细介绍了创建切面、编写测试代码的过程,并展示了测试结果。接着讲解了关于环绕通知的使用方法,并修改了FirstTangent类以添加环绕通知方法。最后介绍了利用AOP拦截注解的方法,只需修改全局切入点即可实现。使用Spring AOP进行切面编程可以方便地实现对代码的增强和拦截。 ... [详细]
author-avatar
米西米西的歪国人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有