zoukankan      html  css  js  c++  java
  • mysql语句概览

    数据库database:以某种有组织的方式存储的数据集合

    表table:某种特定类型数据的结构化清单

    模式schema:关于数据库和表的布局及特性的信息

    列column:表中的一个字段

    数据类型datatype:所容许的数据的类型

    行row:表中的一个记录

    主键primary key:一列(或一组列),其值能够唯一区分表中每个行

    关键字key word:作为mysql语言组成部分的保留字

    无值no value:NULL,它与字段包含0、空字符串或仅仅包含空格不同。

    通配符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否定后跟的任何条件,可对INBETWEENEXISTS子句取反

    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,数据类型为datetimeDate()返回日期时间的日期部分,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必知必会》

  • 相关阅读:
    查看集群基本情况
    Linux的awk命令详解
    wget命令详解
    ES集群操作原理
    Linux常见的Shell命令
    影响ES相关度算分的因素
    Hive三种建表语句详解
    大数据常用组件端口号
    Hadoop Shell命令
    Zookeeper搭建
  • 原文地址:https://www.cnblogs.com/lely/p/9073427.html
Copyright © 2011-2022 走看看