Jimliu


一只刚上路的前端程序猿


sql 语法

基础语法

  • SELECT语句
  • SELECT DISTINCT语句: (SELECT DISTINCT 语句用于返回唯一不同的值)在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。DISTINCT 关键词用于返回唯一不同的值。
  • WHERE子句: WHERE 子句用于提取那些满足指定标准的记录。
  • AND & OR运算符: AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
  • ORDER BY 关键字: ORDER BY 关键字用于对结果集进行排序。
  • INSERT INTO 语句: INSERT INTO 语句用于向表中插入新记录 INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
  • UPDATE 语句: UPDATE 语句用于更新表中的记录。UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
  • DELETE 语句: DELETE 语句用于删除表中的行 DELETE FROM table_name WHERE some_column=some_value;

高级语法

  • SELECT LIMIT 子句:SELECT LIMIT 子句用于规定要返回的记录的数目 SELECT column_name(s) FROM table_name LIMIT number;
  • LIKE 操作符:LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
  • 通配符: 在 SQL 中,通配符与 SQL LIKE 操作符一起使用。SQL 通配符用于搜索表中的数据。
通配符 描述
% 替代 0 个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist] 或 [!charlist] 不在字符列中的任何单一字符

SELECT * FROM Websites WHERE url LIKE 'https%';

  • IN 操作符: IN 操作符允许在 WHERE 子句中规定多个值。 SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...);
  • BETWEEN 操作符: BETWEEN 操作符用于选取介于两个值之间的数据范围内的值。 SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
  • 别名: 通过使用 SQL,可以为表名称或列名称指定别名 SELECT column_name AS alias_name FROM table_name;

  • 连接(JOIN): SQL join 用于把来自两个或多个表的行结合起来。

    INNER JOIN:如果表中有至少一个匹配,则返回行
    LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
    RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
    FULL JOIN:只要其中一个表中存在匹配,则返回行
    SELECT Websites.id, Websites.name, access_log.count, access_log.date FROM Websites INNER JOIN access_log ON Websites.id=access_log.site_id;

  • INNER JOIN 关键字 SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;
    img

  • LEFT JOIN 关键字: LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
    SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name;
    img
  • RIGHT JOIN 关键字: RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。
    SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name=table2.column_name;
    img
  • FULL OUTER JOIN 关键字: FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.
    FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。
    SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name=table2.column_name;
    img
  • UNION 操作符: UNION 操作符合并两个或多个 SELECT 语句的结果。
    SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;
  • SELECT INTO 语句: SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中.
    SELECT column_name(s) INTO newtable [IN externaldb] FROM table1;
  • CREATE INDEX 语句: CREATE INDEX 语句用于在表中创建索引。在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。
  • ALTER TABLE 语句: ALTER TABLE 语句用于在已有的表中添加、删除或修改列。

    1.如需在表中添加列,请使用下面的语法:
    ALTER TABLE table_name ADD column_name datatype
    2.如需删除表中的列,请使用下面的语法:
    ALTER TABLE table_name DROP COLUMN column_name
    3.要改变表中列的数据类型,请使用下面的语法:
    ALTER TABLE table_name MODIFY COLUMN column_name datatype

SQL 函数

  • AVG() 函数: AVG() 函数返回数值列的平均值。 SELECT AVG(column_name) FROM table_name
  • COUNT() 函数: COUNT() 函数返回匹配指定条件的行数。

    1.计算列的和:SELECT COUNT(column_name) FROM table_name;
    2.返回表中的记录数录:SELECT COUNT(*) FROM table_name;
    3.返回指定列的不同值的数目: SELECT COUNT(DISTINCT column_name) FROM table_name;

  • FIRST() 函数: FIRST() 函数返回指定的列中第一个记录的值.(只有 MS Access 支持 FIRST() 函数。)

  • LAST() 函数: LAST() 函数返回指定的列中最后一个记录的值. (只有 MS Access 支持 FIRST() 函数。)
  • MAX() 函数: MAX() 函数返回指定列的最大值。 SELECT MAX(column_name) FROM table_name;
  • MIN() 函数: MIN() 函数返回指定列的最小值。 SELECT MIN(column_name) FROM table_name;
  • SUM() 函数: SUM() 函数返回数值列的总数。 SELECT SUM(column_name) FROM table_name;
  • GROUP BY 语句: GROUP BY 语句可结合一些聚合函数来使用。 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
  • HAVING 子句: 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;
  • UCASE() 函数: UCASE() 函数把字段的值转换为大写。 SELECT UCASE(column_name) FROM table_name;
  • LCASE() 函数: LCASE() 函数把字段的值转换为小写。 SELECT LCASE(column_name) FROM table_name;
  • MID() 函数: MID() 函数用于从文本字段中提取字符。 SELECT MID(column_name,start[,length]) FROM table_name; SELECT MID(name,1,4) AS ShortTitle FROM Websites;
  • LENGTH() 函数: 返回文本字段中值的长度。 SELECT LENGTH(column_name) FROM table_name;
  • ROUND() 函数: ROUND() 函数用于把数值字段舍入为指定的小数位数。 SELECT ROUND(column_name,decimals) FROM table_name;
  • NOW() 函数: NOW() 函数返回当前系统的日期和时间。
  • FORMAT() 函数: FORMAT() 函数用于对字段的显示进行格式化。 SELECT FORMAT(column_name,format) FROM table_name; SELECT name, url, DATE_FORMAT(Now(),'%Y-%m-%d') AS date FROM Websites;
最近的文章

mysql索引

概述先写标题,待填坑 ): …

于  db 继续阅读
更早的文章

这个赛季将来我们会记得什么

昨天赛季结束,今天刚好周五,回顾一下这个赛季。 记得赛季开始之前,有美记说这会是一个无聊的赛季,其他29支球队都是陪勇(tai)士(zi)读书。 第一场马刺啪啪啪打了勇士的脸,29分大胜。杜兰特相当郁闷。本赛季大换血的马刺又是61胜。 然而这个赛季是精彩的: 123456789库里终于拿到了一定会 …

于  篮球, 随笔 继续阅读