今天主要学习了MYSQL数据库查询语句中的单表查询的相关知识。
单表查询:
查询所有字段:查询所有字段是指查询表中所有字段的数据。这种方式可以将表中所有字段的数据都 查询出来。在MySQL中可以使用“*”代表所有的列,即可查出所有的字段,语法 格式如下: SELECT * FROM 表名。
查询指定字段:查询指定字段可以使用下面的语法格式: SELECT 字段名 FROM 表名。
查询指定数据:如果要从很多记录中查询出指定的记录,那么就需要一个查询的条件。设定查询 条件应用的是WHERE子句。通过它可以实现很多复杂的条件查询。在使用WHERE 子句时,需要使用一些比较运算符来确定查询的条件。 运算符“=”:用来判断数字、字符串和表达式等是否相等。这个符号不能判定空值(NULL)。
带IN关键字的查询:IN关键字可以判断某个字段的值是否在于指定的集合中。如果字段的值在集合中, 则满足查询条件,该记录将被查询出来;如果不在集合中,则不满足查询条件。其语 法格式如下: SELECT * FROM 表名 WHERE 条件 [NOT] IN(元素1,元素2,…,元素n)。
带BETWEEN AND的范围查询:BETWEEN AND关键字可以判断某个字段的值是否在指定的范围内。如果字段 的值在指定范围内,则满足查询条件,该记录将被查询出来。如果不在指定范围内, 则不满足查询条件。其语法如下: SELECT * FROM 表名 WHERE 条件 [NOT] BETWEEN 取值1 AND 取值2。
带LIKE的字符匹配查询:LIKE属于较常用的比较运算符,通过它可以实现模糊查询。它有两种通配符: “%”和下划线“”; “%”可以匹配一个或多个字符,可以代表任意长度的字符串,长度可以为0 “”只匹配一个字符。
正则表达式:正则表达式是用某种模式去匹配一类字符串的一个方式。正则表达式的查询能 力比通配字符的查询能力更强大,而且更加的灵活。 • 在MySQL中,使用REGEXP关键字来匹配查询正则表达式。其基本形式如下: 字段名 REGEXP ‘匹配方式’。
用IS NULL关键字查询空值:IS NULL关键字可以用来判断字段的值是否为空值(NULL)。如果字段的值是 空值,则满足查询条件,该记录将被查询出来。如果字段的值不是空值,则不满足查 询条件。其语法格式样如下:IS [NOT] NULL。
带AND的多条件查询:AND关键字可以用来联合多个条件进行查询。使用AND关键字时,只有同时满 足所有查询条件的记录会被查询出来。如果不满足这些查询条件的其中一个,这样的 记录将被排除掉。AND关键字的语法格式如下: select * from 数据表名 where 条件1 and 条件2 […AND 条件表达式n]。
带OR的多条件查询:OR关键字也可以用来联合多个条件进行查询,但是与AND关键字不同,OR关 键字只要满足查询条件中的一个,那么此记录就会被查询出来;如果不满足这些查询 条件中的任何一个,这样的记录将被排除掉。OR关键字的语法格式如下: select * from 数据表名 where 条件1 OR 条件2 […OR 条件表达式n]。
用DISTINCT关键字去除结果中的重复行:使用DISTINCT关键字可以去除查询结果中的重复记录,语法格式如下: select distinct 字段名 from 表名。
用ORDER BY关键字对查询结果排序:使用ORDER BY可以对查询的结果进行升序(ASC)和降序(DESC)排列, 在默认情况下,ORDER BY按升序输出结果。如果要按降序排列可以使用DESC 来实现。语法格式如下: ORDER BY 字段名 [ASC|DESC]; ASC表示按升序进行排序 DESC表示按降序进行排序。
用GROUP BY关键字分组查询:通过GROUP BY子句可以将数据划分到不同的组中,实现对记录进行分组查询。 在查询时,所查询的列必须包含在分组的列中,目的是使查询到的数据没有矛盾。 1、使用关键字GROUP BY来分组 2、关键字GROUP BY与GROUP_CONCAT()函数一起使用,group_concat()函 数能将group by产生的同一个分组中的值连接起来,返回一个字符串结果 3、按多个字段进行分组。
用LIMIT限制查询结果的数量:查询数据时,可能会查询出很多的记录。而用户需要的记录可能只是很少的一 部分。这样就需要来限制查询结果的数量。LIMIT是MySQL中的一个特殊关键字。 LIMIT子句可以对查询结果的记录条数进行限定,控制它输出的行数。注意: LIMIT子句中的编号是从0开始的。
聚合函数查询:COUNT()函数、SUM()函数、AVG()函数、MAX()函数、MIN()函数。
日期和时间函数:CURDATE()函数和CURRENT_DATE()函数获取当前日期,CURTIME()函数和CURRENT_TIME()函数获取当前时间,NOW()函数获取当前日期和时间。