日期:2014-05-16 浏览次数:20935 次
1. DBMS 分为两类 (1)基于共享文件系统的DBMS(Microsoft Access) (2)基于客户机-服务器的DBMS 2. 返回数据库可用表的列表 desc customers/describe orders/show columns from customers; 3. show status 显示广泛的服务器状态信息 4. show create database/show create table 显示创建特定数据库或表的MySQL语句。 5. show grants for/show grants for root@127.0.0.1显示授予用户的安全权限。 6. show errors 和 show warnings 显示服务器错误或警告信息。 7. select version(); 8. select database(); 9. 去除重复 select distinct vend_id from products; select vend_id from products group by vend_id; distinct 应用于所有的列。不能不分使用。 select distinct vend_id, prod_price from products; 10. 限制结果 limit select prod_name from products limit 5; = select prod_name from products limit 0, 5; 带一个值的limit 总是从第一行开始,给出的数为返回的行数。 带两个值的limit可以指定从行号为第一个值的位置开始。 MySQL 5 支持 LIMIt 4 OFFSET 3 从第3行开始取4行 select prod_name from products limit 1 offset 0; 11. 使用完全限定名(列的完全限定名和表的完全限定名) select products.prod_name from sqltest2.products; 12. 关系数据库的理论认为,如果不明确规定排序的顺序,则不应该嘉定检索出来的数据的顺序有意义。 13. 用非检索的列排序是完全合法的。 14. 排序方向 DESC 降序排列 ASC 升序排列 select prod_id, prod_price, prod_name from products order by prod_price desc, prod_name; 15. order by 和 limit 组合可以找出一个列中最高或最低的值。 select prod_price from products order by prod_price desc limit 1; +------------+ | prod_price | +------------+ | 55 | +------------+ 16. select prod_name, prod_price from products where prod_name = 'fuses'; +-----------+------------+ | prod_name | prod_price | +-----------+------------+ | Fuses | 3.42 | +-----------+------------+ MySQL 在执行匹配时默认不区分大小写 17. NULL 值检测。 select prod_name from products where prod_price is null; 18. AND 的优先级高级 OR IN 操作符 select prod_name, prod_price from products where vend_id in (1002, 1003); 19. NOT 用来否定之后的所有条件。MySQL 支持对IN、BETWEEN、EXISTS 字句取反 select prod_name, prod_price from products where vend_id not in (1002, 1003); 20. % 通配符不能匹配NULL where prod_name like '%' 不能匹配用值NULL作为产品名的行 21. (_) 下滑线匹配单个字符。 22. 使用正则表达式过滤(REGEXP 可以用来匹配整个列值,使用定位符 ^或$) select prod_name from products where prod_name regexp '1000' order by prod_name; select prod_name from products where prod_name regexp '.000' order by prod_name; 正则表达式的匹配部区分大小写。为区分大小写可使用BINARY关键字。 select prod_name from products where prod_name regexp binary 'JetPack .000' order by prod_name; 进行OR 匹配 select prod_name from products where prod_name regexp '1000|2000' order by prod_name; 匹配几个字符之一,用[] 表示。[^123] 表示不包含 select prod_name from products where prod_name regexp '[123] Ton' order by prod_name; +-------------+ | prod_name | +-------------+ | 1 ton anvil | | 2 ton anvil | +-------------+ 匹配范围 0到9 [123456789] 或 [0-9] [a-z] select prod_name from products where prod_name regexp '[1-5] Ton' order by prod_name; +--------------+ | prod_name | +--------------+ | .5 ton anvil | | 1 ton anvil | | 2 ton anvil | +--------------+ 匹配特殊字符,需要添加前导 \\(MySQL 的特殊要求) select prod_name from products where prod_name regexp '\\.' order by prod_name; +--------------+ | prod_name | +--------------+ | .5 ton anvil | +--------------+ \\f 换页 \\n 换行 \\r 回车 \\t 制表 \\v 纵向制表 select prod_name from products where prod_name regexp '\\([0-9] sticks?\\)' order by prod_name; +----------------+ | prod_name | +----------------+ | TNT (1 stick) | | TNT (5 sticks) | +----------------+ 匹配连在一起的4位数字 select prod_name from products where prod_name regexp '[[:digit:]]{4}' order by prod_name; select prod_name from products where prod_name regexp '[0-9]{4}' order by prod_name; +--------------+ | prod_name | +--------------+ | JetPack 1000 | | JetPack 2000 | +--------------+ 定位符 ^ 文本开始 $ 文本结尾 [[:<:]] 词的开始 [[:>:]] 词的结尾 找出以一个数开始的所有产品(包括小数点) select prod_name from products where prod_name regexp '^[0-9\\.]' order by prod_name; +--------------+ | prod_name | +--------------+ | .5 ton anvil | | 1 ton anvil | | 2 ton anvil | +--------------+ 简单的正则表达式测试 select 'hello' regexp '[0-9