• 学习笔记之SQL 教程


    SQL 教程 | 菜鸟教程

    http://www.runoob.com/sql/sql-tutorial.html

    • SQL,指结构化查询语言,全称是 Structured Query Language。
    • SELECT TOP 子句用于规定要返回的记录的数目。SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。注释:并非所有的数据库系统都支持 SELECT TOP 子句。
    • MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
    • INNER JOIN 关键字在表中存在至少一个匹配时返回行。
    • LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
    • RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。
    • FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行. FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。
    • SQL UNION 操作符合并两个或多个 SELECT 语句的结果。注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
    • SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。MySQL 数据库不支持 SELECT ... INTO 语句,但支持 INSERT INTO ... SELECT 。
    • 在 SQL 中,我们有如下约束:在表上创建一个唯一的索引。不允许使用重复的值:唯一的索引意味着两个行不能拥有相同的索引值
      • NOT NULL - 指示某列不能存储 NULL 值。
      • UNIQUE - 保证某列的每行必须有唯一的值。
      • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
      • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
      • CHECK - 保证列中的值符合指定的条件。
      • DEFAULT - 规定没有给列赋值时的默认值。
    • 如果我们仅仅需要删除表内的数据,但并不删除表本身,那么我们该如何做呢?请使用 TRUNCATE TABLE 语句
    • Auto-increment 会在新记录插入表中时生成一个唯一的数字。
    • SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。有用的 Aggregate 函数:
      • AVG() - 返回平均值
      • COUNT() - 返回行数
      • FIRST() - 返回第一个记录的值
      • LAST() - 返回最后一个记录的值
      • MAX() - 返回最大值
      • MIN() - 返回最小值
      • SUM() - 返回总和
    • SQL Scalar 函数基于输入值,返回一个单一的值。有用的 Scalar 函数: 
      • UCASE() - 将某个字段转换为大写
      • LCASE() - 将某个字段转换为小写
      • MID() - 从某个文本字段提取字符,MySql 中使用
      • SubString(字段,1,end) - 从某个文本字段提取字符
      • LEN() - 返回某个文本字段的长度
      • ROUND() - 对某个数值字段进行指定小数位数的四舍五入
      • NOW() - 返回当前的系统日期和时间
      • FORMAT() - 格式化某个字段的显示方式
    • 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。HAVING 子句可以让我们筛选分组后的各组数据。

    SQL 快速参考


    SQL 语句语法
    AND / OR SELECT column_name(s)
    FROM table_name
    WHERE condition
    AND|OR condition
    ALTER TABLE ALTER TABLE table_name 
    ADD column_name datatype

    or

    ALTER TABLE table_name 
    DROP COLUMN column_name

    AS (alias) SELECT column_name AS column_alias
    FROM table_name

    or

    SELECT column_name
    FROM table_name AS table_alias

    BETWEEN SELECT column_name(s)
    FROM table_name
    WHERE column_name
    BETWEEN value1 AND value2
    CREATE DATABASE CREATE DATABASE database_name
    CREATE TABLE CREATE TABLE table_name
    (
    column_name1 data_type,
    column_name2 data_type,
    column_name2 data_type,
    ...
    )
    CREATE INDEX CREATE INDEX index_name
    ON table_name (column_name)

    or

    CREATE UNIQUE INDEX index_name
    ON table_name (column_name)

    CREATE VIEW CREATE VIEW view_name AS
    SELECT column_name(s)
    FROM table_name
    WHERE condition
    DELETE DELETE FROM table_name
    WHERE some_column=some_value

    or

    DELETE FROM table_name 
    (Note: Deletes the entire table!!)

    DELETE * FROM table_name 
    (Note: Deletes the entire table!!)

    DROP DATABASE DROP DATABASE database_name
    DROP INDEX DROP INDEX table_name.index_name (SQL Server)
    DROP INDEX index_name ON table_name (MS Access)
    DROP INDEX index_name (DB2/Oracle)
    ALTER TABLE table_name
    DROP INDEX index_name (MySQL)
    DROP TABLE DROP TABLE table_name
    GROUP BY SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name
    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
    IN SELECT column_name(s)
    FROM table_name
    WHERE column_name
    IN (value1,value2,..)
    INSERT INTO INSERT INTO table_name
    VALUES (value1, value2, value3,....)

    or

    INSERT INTO table_name
    (column1, column2, column3,...)
    VALUES (value1, value2, value3,....)

    INNER JOIN SELECT column_name(s)
    FROM table_name1
    INNER JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    LEFT JOIN SELECT column_name(s)
    FROM table_name1
    LEFT JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    RIGHT JOIN SELECT column_name(s)
    FROM table_name1
    RIGHT JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    FULL JOIN SELECT column_name(s)
    FROM table_name1
    FULL JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    LIKE SELECT column_name(s)
    FROM table_name
    WHERE column_name LIKE pattern
    ORDER BY SELECT column_name(s)
    FROM table_name
    ORDER BY column_name [ASC|DESC]
    SELECT SELECT column_name(s)
    FROM table_name
    SELECT * SELECT *
    FROM table_name
    SELECT DISTINCT SELECT DISTINCT column_name(s)
    FROM table_name
    SELECT INTO SELECT *
    INTO new_table_name [IN externaldatabase]
    FROM old_table_name

    or

    SELECT column_name(s)
    INTO new_table_name [IN externaldatabase]
    FROM old_table_name

    SELECT TOP SELECT TOP number|percent column_name(s)
    FROM table_name
    TRUNCATE TABLE TRUNCATE TABLE table_name
    UNION SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2
    UNION ALL SELECT column_name(s) FROM table_name1
    UNION ALL
    SELECT column_name(s) FROM table_name2
    UPDATE UPDATE table_name
    SET column1=value, column2=value,...
    WHERE some_column=some_value
    WHERE SELECT column_name(s)
    FROM table_name
    WHERE column_name operator value
  • 相关阅读:
    c#Enum的用法
    毕业一年小结
    Js正则表达式学习之test和compile的简单介绍
    kiss框架学习
    我对我自己的认识
    支付宝接入原理
    datarow用linq查询
    asp.net 下载任意格式文件 上传文件后台代码
    hash
    深入了解Erlang 垃圾回收机制以及其重要性(转)
  • 原文地址:https://www.cnblogs.com/pegasus923/p/7648009.html
Copyright © 2020-2023  润新知