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



推荐阅读
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • 本文介绍如何在将数据库从服务器复制到本地时,处理因外键约束导致的数据插入失败问题。 ... [详细]
  • 数据类型和操作数据表2.1MySQL类型之整型2.2MySQL数据类型之浮点型2.3日期时间型DATE1支持时间:1000年1月1日~9999年12月31日DATETIME ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 本文详细介绍了在 Oracle 数据库中使用 MyBatis 实现增删改查操作的方法。针对查询操作,文章解释了如何通过创建字段映射来处理数据库字段风格与 Java 对象之间的差异,确保查询结果能够正确映射到持久层对象。此外,还探讨了插入、更新和删除操作的具体实现及其最佳实践,帮助开发者高效地管理和操作 Oracle 数据库中的数据。 ... [详细]
  • 通过使用Sqoop导入工具,可以精确控制并高效地将表数据的特定子集导入到HDFS中。具体而言,可以通过在导入命令中添加WHERE子句来指定所需的数据范围,从而在数据库服务器上执行相应的SQL查询,并将查询结果高效地存储到HDFS中。这种方法不仅提高了数据导入的灵活性,还确保了数据的准确性和完整性。 ... [详细]
  • 优化后的标题:Apache Cassandra数据写入操作详解
    本文详细解析了 Apache Cassandra 中的数据写入操作,重点介绍了 INSERT 命令的使用方法。该命令主要用于将数据插入到指定表的列中,其基本语法为 `INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...)`。通过具体的示例和应用场景,文章深入探讨了如何高效地执行数据写入操作,以提升系统的性能和可靠性。 ... [详细]
  • 在什么情况下MySQL的可重复读隔离级别会导致幻读现象? ... [详细]
  • 在使用达梦数据库时,管理员可能会遇到连接频繁中断或特定SQL语句语法错误的问题。这些问题通常源于开发人员在创建对象时的不规范操作。为了解决这些问题,建议对数据库配置进行优化,并确保所有SQL语句符合达梦数据库的标准语法。此外,定期检查和维护数据库连接参数,以及对异常日志进行详细分析,也有助于及时发现并解决问题。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 如何有效防御网站中的SQL注入攻击
    本期文章将深入探讨网站如何有效防御SQL注入攻击。我们将从技术层面详细解析防范措施,并结合实际案例进行阐述,旨在帮助读者全面了解并掌握有效的防护策略。希望本文能为您的网络安全提供有益参考。 ... [详细]
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社区 版权所有