每天五行代码

MySQL必知必会1-9

2017-12-09  本文已影响9人  废柴社

1 了解SQL

SQL=structured query language,是用来与数据库通信的语言;
数据库(database)
数据库管理系统(DBMS)
文件,表、列、行;
主键(可以由多列组成,非必需但建议每个表都有),满足以下性质

SQL非专用语言,几乎所有重要的DBMS都支持SQL

2 什么是MySQL

MySQL是一种DBMS;
三个可用来与MySQL交互的工具:

3 使用MySQL

连接至MySQL需要:

选择数据库

USE dbname

了解数据库和表 --SHOW

SHOW DATABASES; #返回可用数据库的列表
SHOW TABLES; #  返回一个数据库内的表的列表
SHOW COLUMNS FROM  customers # 返回表的列属性信息,和sas中的contents 过程一致,需要提供表名
SHOW STATUS ; # 返回服务品状态;

4 检索数据

SELECT prod_name 
FROM products;

SQL语句不区分大小写,但通常习惯对SQL关键字大小,对列和表名小写

SELECT prod_name,prod_id,prod_price
FROM products;
#检索所有列,其中*是通配符;
SELECT *
FROM products;
SELECT DISTINCT vend_id
FROM products;
SELECT prod_name
FROM products
LIMIT 5;  #返回结果不多于5行;

SELECT prod_name
FROM products
LIMIT 5,5;  #返回结果从第5行开始的5行;

5 排序检索数据

子句 SQL语句由句子构成,已使用的如SELECT语句中的FROM子句,排序需要用到ORDER BY 子句。

SELECT prod_name 
FROM products
ORDER BY prod_name;  #单列排序

… ORDER BY prod_name,prod_price;  #多列排序
… ORDER BY prod_price DESC;  #价格降序排序
SELECT prod_price
FROM products
ORDER BY prod_price
LIMIT 1;  

6 过滤数据

…
WHERE prod_price IS NULL

7数据过滤?[6续]

8 用通配符进行过滤

SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE 'jets%'

不过度使用通配符,其它操作符能达到同样目的时,使用其它操作符
确有需要使用时,除非绝对有必要,不把通配符放在过滤条件的最前面,放在最前面是最慢的

9 正则表达式

正则表达式的目的是匹配文本:将一个模式(正则表达式)与一个文本串进行比较。

#返回含有1000的行,此时和like很类似,但like需要用通配符组合实现同样的功能
SELECT prod_name
FROM products
WHERE prod_name REGEXP '1000'

#.在正则表达式中表示匹配任意一个字符
SELECT prod_name
FROM products
WHERE prod_name REGEXP '.000'

#进行OR匹配
…… WHERE prod_name REGEXP '1000|2000'

#匹配几个字符之一,这里指匹配1或2或3,即1 Ton 或2 Ton 等都返回
…… WHERE prod_name REGEXP '[123] Ton'

#匹配范围,如上例,也可以使用[1-3]

#匹配特殊字符,如. [] 等正则表达示中的特殊字符;用\\作为前导进行引用,下例表示匹配.
…… WHERE prod_name REGEXP '\\.'
上一篇 下一篇

猜你喜欢

热点阅读