标签:des 匹配 范围 schema 返回 country group by 表达式语言 exist
数据库database:以某种有组织的方式存储的数据集合
表table:某种特定类型数据的结构化清单
模式schema:关于数据库和表的布局及特性的信息
列column:表中的一个字段
数据类型datatype:所容许的数据的类型
行row:表中的一个记录
主键primary key:一列(或一组列),其值能够唯一区分表中每个行
关键字key word:作为mysql语言组成部分的保留字
通配符wildcard:用来匹配值的一部分的特殊字符,通配符搜索使用时间长,不要用在搜索模式开始处
搜索模式search pattern:由字面值、通配符或两者组合构成的搜索条件
字符类character class:预定义的字符集
字段field:基本上与列(column)的意思相同
拼接concatenate:将值联结到一起构成单个值
别名alias:是一个字段或值的替换名,有时也称为导出列derived column
聚集函数aggregate function:运行在行组上,计算和返回单个值的函数
命令输入用;或\g结束,输入quit或exit退出命令行实用程序
1、使用crashcourse数据库
USE crashcourse;
2、返回可用的数据库的一个列表
SHOW DATABASES;
3、获得一个数据库内的表的列表
SHOW TABLES;
4、显示表列
SHOW COLUMNS FROM customers;(有一种快捷方式是DESCRIBE customers;)
5、显示广泛的服务器状态信息
SHOW STATUS;
6、检索数据
SELECT prod_name FROM products;
7、排重,检索不同行
SELECT DISTINCT vend_id FROM products;
8、限制结果
SELECT prod_name FROM products LIMIT 5;
9、排序数据
SELECT prod_name FROM products ORDER BY prod_name;
10、指定排序方向,默认升序排列,降序排列用DESC
SELECT prod_id,prod_name,prod_price FROM products ORDER BY prod_price DESC, prod_name;
11、过滤数据、WHERE子句、<>不等于、!=不等于、BETWEEN、匹配时默认不区分大小写、单引号用来限定字符串
SELECT prod_id,prod_name,prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;(范围值包括开始值5和结束值10)
12、空值检查
SELECT prod_id,prod_name,prod_price FROM products WHERE prod_price IS NULL;
13、AND添加多个过滤条件 OR匹配任一条件 使用圆括号分组 IN操作符指定条件范围,范围中每个条件都可以进行匹配,其取合法值的由逗号分隔的清单,全都括在圆括号中。功能与OR同,执行比OR快,可以包含其他SELECT语句
SELECT prod_id,prod_name,prod_price FROM products WHERE vend_id IN (1002,1003) ORDER BY prod_name;
14、NOT否定后跟的任何条件,可对IN、BETWEEN、EXISTS子句取反
SELECT prod_id,prod_name,prod_price FROM products WHERE vend_id NOT IN (1002,1003) ORDER BY prod_name;
15、LIKE是谓词,指示mysql后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较 % 表示任何字符出现任意次数,包括0次,不匹配NULL。_下划线只匹配单个字符。尾空格可能会干扰通配符匹配。LIKE匹配整个列,如果被匹配的文本在列值中出现,LIKE将不会找到它
SELECT prod_id,prod_name,prod_price FROM products WHERE prod_name LIKE ‘jet%’;(搜索任意以jet起头的词)
16、正则表达式,是用来匹配文本的特殊的串(字符集合)。.(点)是正则表达式语言中表示匹配任意一个字符,下面1000和2000都匹配。REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它。匹配不区分大小写,为区分大小写,可使用BINARY关键字。参阅《正则表达式必知必会》
SELECT prod_name FROM products WHERE prod_name REGEXP BINARY ‘JetPack .000’ ORDER BY prod_name;
17、|为正则表达式的OR操作符,它表示匹配其中之一。[]是另一种形式的OR语句,正则表达式[123] Ton为[1|2|3] Ton的缩写
SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000|2000|3000’ ORDER BY prod_name;
18、否定一个字符集,在集合的开始处放置一个^即可。[123]匹配字符1、2或3,但[^123]却匹配除这些字符外的任何东西。可用-来定义一个范围[0-9]功能上等同于[0123456789],[a-z]匹配任意字母字符。为了匹配特殊字符,必须用\\为前导,\\-表示查找-,这种处理就是所谓的转义(escaping),\\也用来引用元字符。\\f换页,\\n换行,\\r回车,\\t制表,\\v纵向制表
SELECT prod_name FROM products WHERE prod_name REGEXP ‘\\([0-9] sticks?\\)‘ ORDER BY prod_name; sticks?匹配stick和sticks(s后的?使s可选,因为?匹配它前面的任何字符的0次或1次出现,没有?,匹配stick和sticks会非常困难)
19、[:digit:]匹配任意数字,同[0-9],因而它为数字的一个集合。{n}指定数目的匹配,{4}确切地要求它前面的字符(任意数字)出现4次。[[:digit:]]{4}匹配连在一起的任意4位数字。也可以如下编写‘[0-9][0-9][0-9][0-9]‘
SELECT prod_name FROM products WHERE prod_name REGEXP ‘[[:digit:]]{4}’ ORDER BY prod_name;
20、匹配特定位置的文本,需要使用定位符。^文本的开始,$文本的结尾,[[:<:]]词的开始,[[:>:]]词的结尾。找次以一个数(包括以小数点开始的数)开始的所有产品,使用定位符^
SELECT prod_name FROM products WHERE prod_name REGEXP ‘^[0-9\\.]’ ORDER BY prod_name;
21、Concat()函数拼接两个列
SELECT Concat( vend_name, ‘(‘, vend_country, ‘)‘ ) FROM vendors ORDER BY vend_name;
22、RTrim()函数删除数据右侧多余的空格,LTrim()函数删除数据左侧多余的空格,以及Trim()去掉串左右两边的空格
SELECT Concat( RTrim(vend_name), ‘(‘, RTrim(vend_country), ‘)‘ ) FROM vendors ORDER BY vend_name;
23、别名用AS关键字赋予
SELECT Concat( RTrim(vend_name), ‘(‘, RTrim(vend_country), ‘)‘ ) AS vend_title FROM vendors ORDER BY vend_name;
24、Now()函数返回当前日期和时间
SELECT Now();
25、Upper()将文本转换为大写
SELECT vend_name,Upper(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;
26、SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。Soundex()函数匹配发音类似的SOUNDEX值。
SELECT cust_name,cust_contact FROM customers WHERE Soundex(cust_contact) = Soundex( ‘Y Lie‘ );
27、日期必须为格式yyyy-mm-dd,数据类型为datetime。Date()返回日期时间的日期部分,Time()返回时间部分,Year()是一个从日期(或日期时间)中返回年份的函数。类似,Month()从日期中返回月份
SELECT cust_id,order_num FROM orders WHERE Date(order_date) BETWEEN ‘2005-09-01‘ AND ‘2005-09-30‘;
28、AVG()函数可用来返回所有列的平均值,也可以用来返回特定列或行的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。AVG()函数忽略列值为NULL的行。COUNT()函数进行计数。MAX()返回指定列中的最大值。在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行。MIN()函数返回指定列的最小值。用于文本数据时,返回最前面的行。SUM()用来返回指定列值的和(总计),也可以用来合计计算值,计算值即使用+-*/计算列间的值,只包含不同的值,指定DISTINCT参数,DISTINCT必须使用列名,不能用于计算或表达式。
SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id=1003;
29、分组数据。GROUP BY子句可以包含任意数目的列(每个列必须是检索列或有效的表达式,但不能是聚集函数,不能使用别名),这使得能对分组进行嵌套,数据将在最后规定的分组上进行汇总。SELECT语句中的每个列都必须在GROUP BY子句中给出。使用WITH ROLLUP关键字,可以得到每个分组以及每个分组汇总级别(针对每个分组)的值
SELECT vend_id,COUNT(*) AS num_prods FROM products GROUP BY vend_id WITH ROLLUP;
30、HAVING过滤分组,就像WHERE过滤行一样。HAVING支持所有WHERE操作符
SELECT cust_id,COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING COUNT(*) >= 2;
-----《mysql必知必会》
标签:des 匹配 范围 schema 返回 country group by 表达式语言 exist
原文地址:https://www.cnblogs.com/lely/p/9073427.html