MySQL学习笔记1—7

一、了解数据库和表   

  • SHOW DATABASES; 返回可用数据库的一个列表
  • SHOW TABLES; 返回当前选择的数据库内可用的列表
  • SHOW COLUMNS FROM 表名; 对每个字段返回一行,行中包括字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息

二、检索数据

  •   检索单个列:SELECT prod_name FROM products;
  •   检索多个列:SELECT prod_id, prod_name, prod_price FROM products;
  •   检索所有列:SELECT * FROM products;
  •   检索不同行:关键字DISTINCT。SELECT DISTINCT vend_id FROM products; 只返回vend_id不同的行。注意:不能部分使用DISTINCT  此关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id, prod_price FROM products;除非指定的两个列都不相同,否则所有行都将被检索出来。
  •   限制结果:关键字:LIMIT。SELECT prod_name FROM products LIMIT 5; 此语句使用SELECT检索单个列。LIMIT 5指示MySQL返回不多于五行;若为LIMIT 5,5 指示MySQL返回从行5开始的5行。注意:检索出来的第一行是行0而不是行1.

三、排序检索数据

关键字:ORDER BY子句;

  • 排序数据:SELECT prod_name FROM products PRDER BY prod_name;
  • 按多个列排序:SELECT prod_id, prod_price, prod_name FROM products OEDER BY prod_price, prod_name; 在按多个列排序时,排序完全按所规定的顺序进行
  • 指定排序方向:如果升序,则什么也不需要声明,默认升序;如果降序,需用 DESC 关键字;SELECT prod_id, prod_price, prod_name FROM products ORDER BY prod_price DESC, prod_name;  DESC 关键字只应用到直接位于其前面的列名。如果想在多个列上进行排序,必须对每个列指定DESC关键字。

四、过滤数据

使用WHERE子句:WHERE子句在表名(FROM子句)之后给出。在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错位。

WHERE子句操作符:BETWEEN 值1 AND 值2;BETWEEN匹配范围中所有的值,包括指定的开始值和结束值

五、数据过滤

组合WEHRE子句:以AND子句的方式或OR子句的方式使用

SELECT prod_id, prod_price, prod_name FROM products WHERE vend_id = 1003 

AND prod_price <= 10; AND:用来指示检索满足所有给定条件的行。

SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id

= 1003; OR:用来检索匹配任一条件的行。

        SQL在处理OR操作前,优先处理AND操作符;解决方法就是圆括号明确地分组                   

        相应的操作符。

IN操作符:IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配

  SELECT prod_name, prod_price FROM products WHERE vend_id IN(1001,1003) ORDER BY prod_name; 检索供应商1002和1003制造的所有产品。IN操作符后跟由逗号分隔的合法值清单,整个清单必须括在圆括号中。

IN操作符的优点:

  • 在使用长的合法选项清单时,IN操作符的语法更清楚且更直观
  • 在使用IN时,计算的次序更容易管理、
  • IN操作符一般比OR操作符清单执行更快
  • IN的最大优点是可以包含其他SELECT语句,使得能够更动态的建立WHERE子句

六、使用通配符进行过滤

1、 LINK操作符

通配符:用来匹配值的一部分的特殊字符。

搜索模式:由字面值、通配符或两者组合构成的搜索条件

(1)、百分号(%)通配符

      在搜索串中,%表示任何字段出现任意次数。

      SELECT prod_id, prod_name FROM products WHERE prod_name LIKE ‘jet%’;

      搜索找出所有以词jet起头的产品

      %可以出现在字符串的前端后端和中间:’s%e’、’%anv%’

      除了一个或多个字符外,%还能匹配0个字符。

(2)、下划线 (_) 通配符

              下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符

              SELECT prod_id, prod_name FROM products WHERE prod_name LIKE ‘_ ton ’;

              与%能匹配0个字符不一样,_总是匹配一个字符,不能多也不能少

2、 使用通配符的技巧

  • 不要过度使用通配符;
  • 除非绝对有必要,否则不要把它们用在搜索模式的开始处;
原文地址:https://www.cnblogs.com/D-LW/p/8799222.html