小白一枚,纯属省事,读书笔记,谨慎用之。
选择数据库:
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’;
后续更新,还在自学中。