1. show databases; //查看数据库
  2. show tables //获取数据裤内的表
  3. show columuns from table //查看表的列
  4. select vend_id from products
  5. SELECT语句返回14行(即使表中只有4个供应商),因为products
  6. 中列出了14个产品。那么,如何检索出有不同值的列表呢?
  7. select distinct vend_id //mysql只返回不通的vend_id
  8. select * from table limit 5 //代表mysql返回的行不多于5行
  9. select * from table limit 5,5 //代表 从第5行开始选取5条数据
  10. select * from table order by price,prod_name //先根据price升序排序,price相等的时候再根据prod_name升序排序
  11. select * from table order by price desc,prod_name //先根据price倒序排序。price相等的时候再根据prod_name升序排序
  12. select * from table order by price desc,prod_name desc //先根据price倒序排序。price相等的时候再根据prod_name倒序排序
  13. //使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值。
  14. 下面的例子演示如何找出最昂贵物品的值:
  15. select prod_price from products order by prod_price desc limit 1;
  16. select * from table where prod_price is null; 查看表中prod_price字段为null

计算次序

  1. //这句的真正含义是什么呢? 其实是 (vend_id = 1002 and prod_price >=10) or vend_id = 1003
  2. //因为SQL在处理OR操作符之前,会优先处理AND操作符。 换句话说,由于AND在计算次序中优先级更高,操作符被错误的组合了
  3. select * from table where vend_id = 1002 or vend_id = 1003 and prod_price >=10;
  4. //正确的SQL是
  5. select * from table where (vend_id = 1002 or vvend_id = 1003) and prod_price >= 10;
  6. 或者
  7. select * from table where vend in (1002,1003) and prod_price >=10;

IN操作符

IN的最大优点是可以包含其他select语句,使其能够更动态地建立where子句

通配符

百分号(%)通配符

  1. //查找白哦中已jet开头的行
  2. select * from table name like 'jet%';

%能匹配0个字符 比如上面的语句 jet也会被匹配到

下划线(_)通配符
下划线只匹配单个字符而不是多个字符

  1. //这个只会匹配到 比如 aet,cet,ject 而不会匹配到 aaet ccet
  2. select * from table name like '_et';