Mysql--命令

什么是SQL
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间链接,施加表间的约束。
SQL 中最重要的 DDL 语句:
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

1、SQL SELECT 语句
    SELECT 语句用于从表中选取数据。
    结果被存储在一个结果表中(称为结果集)。
    SQL SELECT 语法
    SELECT 列名称 FROM 表名称
    以及:
    SELECT * FROM 表名称

2丶SQL SELECT DISTINCT 语句
    在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
    关键词 DISTINCT 用于返回唯一不同的值。
    语法:
    SELECT DISTINCT 列名称 FROM 表名称

3 WHERE 子句
    WHERE 子句用于规定选择的标准。
    如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。
    语法
    SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
    AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。

4、AND 和 OR 运算符
    AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
    如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
    如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

5、ORDER BY 语句
    ORDER BY 语句用于根据指定的列对结果集进行排序。
    ORDER BY 语句默认按照升序对记录进行排序。
    如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
    下一页例子
    以字母倒序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber):
    SELECT Company, OrderNumber FROM Orders ORDER BY Company desc, OrderNumber
    以逆字母顺序显示公司名称:
    SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

6、INSERT INTO 语句
    INSERT INTO 语句用于向表格中插入新的行。
    语法
    INSERT INTO 表名称 VALUES (值1, 值2,....)
    我们也可以指定所要插入数据的列:
    INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
    insert into class(no,`name`) VALUES(14,'tom')
    insert into class VALUES(15,'james')

7、Update 语句
    Update 语句用于修改表中的数据。
    语法:
    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
    UPDATE class SET `no`=19 WHERE `no`=1234

8、DELETE 语句
    DELETE 语句用于删除表中的行。
    语法
    DELETE FROM 表名称 WHERE 列名称 = 值

9、TOP 子句
    TOP 子句用于规定要返回的记录的数目。
    对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
    注释:并非所有的数据库系统都支持 TOP 子句。

9.1、MySQL 语法
    select * from table limit m,n
    其中m是指记录开始的index,从0开始,表示第一条记录
    n是指从第m+1条开始,取n条。

    SELECT column_name(s)
    FROM table_name
    LIMIT number

10、LIKE 操作符
    LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
    SQL LIKE 操作符语法
    SELECT column_name(s)
    FROM table_name
    WHERE column_name LIKE pattern
    通过使用 NOT 关键字,我们可以从 "Persons" 表中选取居住在不包含 "lon" 的城市里的人:

11、通配符
    % :替代0个或多个字符
    -:仅替代一个字符
    我们可以使用下面的 SELECT 语句:
    SELECT * FROM Persons WHERE City NOT LIKE '%lon%'
    SELECT  * FROM class  WHERE `name` LIKE '%狗'
    SELECT  * FROM class  WHERE `name` NOT LIKE  '%狗'
    SELECT  * FROM class  WHERE `name` LIKE  '_狗'

12、IN 操作符
    IN 操作符允许我们在 WHERE 子句中规定多个值。
    SQL IN 语法
    SELECT column_name(s)
    FROM table_name
    WHERE column_name IN (value1,value2,...)
    SELECT * FROM class WHERE `name` IN ('tom','james')

13、BETWEEN 操作符
    操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
    SQL BETWEEN 语法
    SELECT column_name(s)
    FROM table_name
    WHERE column_name
    BETWEEN value1 AND value2

14、SQL Alias(别名)
    通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
    SQL Alias
    表的 SQL Alias 语法
    SELECT column_name(s)
    FROM table_name
    AS alias_name
    列的 SQL Alias 语法
    SELECT column_name AS alias_name
    FROM table_name
    SELECT no  number from class
    SELECT no as number from class
    SELECT no as number,`name` from class f WHERE f.name='tom'

15、SQL INNER JOIN 关键字
    在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
    INNER JOIN 关键字语法
    SELECT column_name(s)
    FROM table_name1
    INNER JOIN table_name2
    ON table_name1.column_name=table_name2.column_name
    注释:INNER JOIN 与 JOIN 是相同的。

16、SQL LEFT JOIN 关键字
    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
    LEFT JOIN 关键字语法
    SELECT column_name(s)
    FROM table_name1
    LEFT JOIN table_name2
    ON table_name1.column_name=table_name2.column_name
    注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。

17、SQL RIGHT JOIN 关键字
    RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
    RIGHT JOIN 关键字语法
    SELECT column_name(s)
    FROM table_name1
    RIGHT JOIN table_name2
    ON table_name1.column_name=table_name2.column_name
    注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。

18、SQL FULL JOIN 关键字(mysql不支持全链接)
    只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
    FULL JOIN 关键字语法
    SELECT column_name(s)
    FROM table_name1
    FULL JOIN table_name2
    ON table_name1.column_name=table_name2.column_name
    注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。
    SQL  JOIN 多表例子
     select 城市, 面积, 姓名, 工资, 金额 from 仓库  
     right join 职工 on 职工.仓库号=仓库.仓库号 
     right join 订购单 on 职工.职工号=订购单.职工号 
     where 工资>1500 and 面积<1000 and 金额!=16600

19、SQL AVG() 语法
    SELECT AVG(column_name) FROM table_name
    AVG 函数返回数值列的平均值。NULL 值不包括在计算中。

20、SQL COUNT() 语法
    SQL COUNT(column_name) 语法
    COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
    SELECT COUNT(column_name) FROM table_name
    SQL COUNT(*) 语法
    COUNT(*) 函数返回表中的记录数:
    SELECT COUNT(*) FROM table_name
    SQL COUNT(DISTINCT column_name) 语法
    COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:
    SELECT COUNT(DISTINCT column_name) FROM table_name

21、SUM() 函数
    SUM 函数返回数值列的总数(总额)。
    SQL SUM() 语法
    SELECT SUM(column_name) FROM table_name
    合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。

22、GROUP BY 语句
    GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
    SQL GROUP BY 语法
    SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name

23、HAVING 子句
    在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
    SQL HAVING 语法
    SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name
    HAVING aggregate_function(column_name) operator value










你可能感兴趣的:(mysql)