IT学习笔记(二)(持续更新)

MySQL

1、检索不同的值,即去重,可使用关键字DISTINCT。但是该关键字应用于所有列,而不是前置它的列,即在查询多列时,除非指定的多列都不同,否则所有行都会被检索出来。

2、关键字LIMIT可以限制结果,即只查询第一行或前几行。LIMIT可以带两个参数值,带一个值的LIMIT总是从第一行开始,给出的数为返回的行数;带两个值的LIMIT,第一个值为开始行数,第二个值为返回的行数。

3、结果排序可使用ORDER BY。对多列进行排序时,列之间用逗号隔开,排序按列从左往右的顺序进行多列排序,第一个具有最高优先级。默认为升序,需要降序时,可使用关键字DESC。如果要对多列进行降序排序,必须对每一个列指定DESC关键字。

4、检查某个范围的值,可使用BETWEEN …AND…操作符。指定的两个范围值必须用AND关键字隔开,匹配的值包括指定的开始值和结束值。

5、逻辑操作符,即AND操作符和OR操作符,进行数据过滤。AND操作符用来指示检索满足所有给定条件的行;OR操作符用来指示检索匹配任一条件的行。在AND和OR组合使用时,AND的计算次序要比OR优先级高。

6、IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。而IN取的合法值由逗号隔开,并全都括在圆括号中。IN操作符与OR操作符功能相同,但是IN操作符一般比OR操作符执行的快,IN的最大优点是可以包含其它SELECT语句,使得能够更动态地建立WHERE子句。NOT操作符与IN操作符相反。

7、在搜索子句中使用通配符,必须使用LIKE操作符。

    1)最常使用的通配符是百分号(%)。在搜索串中,%表示任何字符出现任意次数。通配符可在搜索模式中的任意位置使用,并且可以使用多个通配符。

     2)下划线(_)通配符。它与%用途一样,但是下划线只能匹配单个字符而不是多个字符。

8、关键字REGEXP表示正则表达式过滤。

9、Concat()拼接串,即把多个串连接起来形成一个较长的串。;Concat()需要一个或多个指定的串,各个串之间用逗号分隔。

10、RTrim()函数去掉值右边的所有空格。LTrim()去掉值左边所有的空格。Trim()函数去掉左右两边所有的空格。

11、别名的使用,使用关键字AS赋予。别名是一个字段或值的替换名。

12、文本处理函数:

    1)Upper()函数将文本转换为大写。

    2)Left()返回串左边的字符;

    3)Locate()返回串的一个子串;

    4)Length()返回串的长度;

    5)Right()返回串右边的字符;

    6)Soundex()返回串的SOUNDEX值;

    7)SubString()返回子串的字符;

13、日期和时间处理函数

    需要注意的是:无论你什么时候指定一个日期,不管是插入或更新表值还是用WHERE子句进行过滤,日期格式必须为yyyy-mm-dd。

14、数值处理函数

15、 聚集函数

1)AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。要得到多个列的平均值,必须使用多个AVG()函数。AVG()函数忽略列值为NULL的行。

2) COUNT(*)函数对表中行的数目进行计数,不管表列中包含的是空值还是非空值;COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

16、HAVING非常类似于WHERE,两者唯一的差别是WHERE过滤行,而HAVING过滤分组(ORDER BY)。

17、外键即为某个表中的一列,它包含了另一个表的主键值,定义了两个表之间的关系。

18、内部联结可使用INNER JOIN,而联结条件用特定的ON子句。

19、在SELECT语句中使用OUTER JOIN来指定联结的类型为外部联结,它与内部联结的区别是,外部联结返回的还包括没有关联行的行。而在使用OUTER JOIN语法时,必须使用RIGHT或LEFT关键字指定包括其所有行的表(RIGHT指出的是OUTER JOIN右边的表,而LEFT指出的是OUTER JOIN左边的表)。

20、UNION(并)操作符可用来组合数条SQL查询,利用UNION,可给出多条SELECT语句,将它们的结果组合成单个结果集。UNION的使用很简单,所需做的只是给出每条SELECT语句,在各条语句之间放上关键字UNION。在使用UNION时,重复的行被自动取消。这是它的默认行为,可以改变它,若想返回匹配的所有行,可使用UNION ALL而不是UNION。

21、全文本搜索:一般在创建表时启用全文本搜索。CREATE TABLE语句接受FULL TEXT子句,它给出被索引列的一个逗号分隔的列表。在SELECT语句中进行全文本搜索时,需要使用Match()和Against()两个函数,其中Match()指定被搜索的列,Against()指定要使用的搜索表达式。注意:传递给Match()的值必须与FULLTEXT()定义中的相同,如果指定多个列,则必须列出它们(而且次序正确)。

22、插入检索出来的数据,即由一条INSERT语句和一条SELECT语句组成。

23、每个表中只允许一个AUTO_INCREMENT列,而且它必须被索引(如通过使它成为主键)。

24、常用的几个数据库引擎:

    1)InnoDB是一个可靠的事务处理引擎,它不支持全文本搜索;

    2)MEMORY在功能上等同于MyISAM,但由于数据存储在内存中,速度很快;

    3)MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。

25、视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询。

26、存储过程,即为以后的使用而保存的一条或多条MySQL语句的集合。使用存储过程的3个主要好处是简单、安全和高性能。

    执行存储过程的语句为CALL,CALL接受存储过程的名字以及需要传递给它的任意参数。

    CREATE PROCEDURE 关键字来创建存储过程,其中BEGIN和END语句来限定存储过程体。

    存储过程实际上是一种函数,所以存储过程名后需要有()符号(即使不传递参数也需要)。

    存储过程创建后被保存在服务器上以供使用,直至被删除。删除使用DROP PROCEDURE关键字。

    在存储过程体中使用DECLARE关键字定义局部变量,并要求指定变量名和数据类型。

27、游标:是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或作出更改。

    游标用DECLARE语句创建。DECLARE命名游标,并定义相应的SELECT语句,根据需要带WHERE和其他子句。

    游标用OPEN CURSOR语句来打开。游标处理完成后,应当使用CLOSE语句关闭游标。

    在一个游标打开后,可用FETCH语句分别访问它的每一行;FETCH指定检索什么数据(所需的列),以及将检索出来的数据存储在什么地方。它还向前移动游标中的内部行指针,使下一条FETCH语句检索下一行(不重复读取同一行)。

猜你喜欢

转载自blog.csdn.net/xudasong123/article/details/79790096