天天看点

MySQL_纸上谈兵之入门

小白一枚,纯属省事,读书笔记,谨慎用之。

选择数据库:

       USE crashcourse;

显示数据库:

       SHOW DATABASES;

显示数据库内的表的列表:

       SHOW TABLES;

显示表列:

       SHOW COLUMNS FROM customers;

检索数据

SELECT语句:

检索单个列:

         SELECT prod_name FROMproducts;

检索多个列:

       SELECT prod_id, prod_name, prod_priceFORM products;

检索所有列:(列的顺序一般是在列表定义中出现的顺序)

       SELECT * FROM products;

检索不同的行:(包含了相同的供应商)

       SELECT vend_id, FROM products;

检索不同的行:(不包含相同的供应商)

       SELECT DISTINCT vend_id FORM products;

限制结果

为了返回第一行或者前几行,可使用LIMIT子句。

         SELECT prod_name FORMproducts LIMIT 5;   (返回不多于5行)

为了得到下一个5行,可指定检索的开始行和行数:

         SELECT prod_name FROMproducts LIMIT 5,5;

注意:行0检索出来的第一行为行0而不是行1,因此,LIMIT1,1将检索出第二行而不是第一行。

使用完全限定的表名: (crashcourse为数据库名,products为表名)

       SELSET proucts.prod_name FORMcrashcourse.products;

排序检索数据

如果不排序,数据一般将它在底层表中出现的顺序显示。

为了明确排序用SELECT语句检索出的数据,可使用ORDER RY子句。(以字母顺序排序数据)

         SELECT prod_name FORM products ORDERBY prod_name;

按多个列排序:

       SELECTprod_id, prod_price, prod_name FROM products ORDER BY prod_price, prod_name;

首先按prod_price进行排序,如果一致,则按照prod_name进行排序。

指定排序方向:

         默认的排序方式是升序,可以使用DESC关键字进行降序排序。

       SELECT prod_id, prod_price, prod_nameFORM products ORDER BY prod_price DESC;

多个列进行降序排序:(prod_price降序排序,prod_name升序排序))

       SELECT prd_id, prod_price, prod_name FORMproducts ORDER BY prod_price DESC,prod_name;

注意:DESC关键字只应用到直接位于其前面的列名。

如果想在多个列上进行降序排序,必须对每个列指定DESC关键字。

与DESC相反的是ASC。在给出ORDER BY子句时,应该保证它位于FROM子句之后,如果使用LIMIT,它则必须位于ORDER BY之后。

过滤数据

使用WHERE子句。

       SELECT prod_name,prod_price FORM products WHEAREprod_price = 2.50;

检索products表中两个列,但是不返回所有行,只返回prod_price为2.50的行。

WHERE子句操作符:

       =  表示:等于, < >  表示:不等于,   !=  表示不等于,  <   表示小于,

 >=   表示大于等于, >   表示大于,  BETWEEN   在指定的两个值之间

检查单个值:  在执行的时候不区分大小写

       SELECT prod_name, prod_price, FORMproducts WHERE prod_name = ‘fuses’;

列出价格小于10美元的所有产品:

       SELECT prod_name, prod_price FORMproducts WHERE prod_price < 10;

不匹配检查;  (检查不是由供应商制造的所有产品)

       SELECT vend_id, prod_name FROM vend_id< > 1003;

范围值检查:

       SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN5 AND 10;

数据过滤:

组合WHERE子句,以AND或者OR子句连接:

       AND操作符:为了通过不止一个列进行过滤,可使用AND操作符给WHERE子句附加条件。 每添加一条就使用一个AND。

       SELECT prod_id, prod_price, prod_nameFROM products WHERE vend_id= 1003 ANDprod_price <= 10;

       OR操作符:指示检索匹配任一条件的行。

       SELECT prod_name, prod_price FEOMproducts WHERE vend_id = 1002 ORvend_id = 1003;

计算次序:WHERE子句可包含任意多的AND 和OR子句。

       SELECT prod_name,prod_price FROM productsWHRER (vend_id = 1002 ORvend_id = 1003) AND prod_price >=10;

       IN操作符:用来指定范围。

       SELECT  prod_name, prod_price FROM products WHERE vend_id IN(1002,1003) ORDER BY prod_name;

       NOT 操作符:

        SELECT prod_name, prod_price FROMproducts WHERE vend_id NOT IN(1002,1003)ORDER BY prod_name;

用通配符进行过滤

LIKE操作符

百分号(%)通配符: %表示任何字符出现的任意次数

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

注意:字符串的列进行比较须要’ ’单引号。% 告诉MySql接收jet之后的任意字符,不管它由多少字符。

下划线(_)通配符: 只能匹配单个字符。

       SELECT prod_id, prod_name FROM products WHEREprod_name LIKE ’ _ton anvi1’;

后续更新,还在自学中。