码迷,mamicode.com
首页 > 数据库 > 详细

mysql语句概览

时间:2018-06-27 18:07:10      阅读:165      评论:0      收藏:0      [点我收藏+]

标签: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必知必会》

mysql语句概览

标签:des   匹配   范围   schema   返回   country   group by   表达式语言   exist   

原文地址:https://www.cnblogs.com/lely/p/9073427.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!