mysql语句大全

来源:互联网 发布:武汉seo编辑招聘 编辑:程序博客网 时间:2024/06/07 05:21

本文所用数据库文件为:全国省市区联动数据库sql文件(MySQL)
很给力的数据库哦。

增删改查中最基本的语法就不细说了。
SQL SELECT DISTINCT

一个列中可能会包含多个重复值,使用distinct会只列出不同的值。

SELECT DISTINCT cityid FROM areas;

SQL ORDER BY

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。 ORDER BY
关键字默认按照升序(ASC)对记录进行排序。如果需要按照降序对记录进行排序,可以使用 DESC 关键字

SELECT * FROM areas WHERE cityid = '110100' or areaid = '110101' ORDER BY areaid DESC;

SQL SELECT LIMIT

用于规定要返回的记录的数目。

SELECT * FROM areas WHERE cityid = '110100' or areaid = '110101' ORDER BY areaid DESC LIMIT 10;

这里写图片描述

SQL LIKE

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

#area列中以“河”开头的所有内容SELECT * FROM areas WHERE area LIKE '河%';

这里写图片描述

#area列中包含“河”的所有内容SELECT * FROM areas WHERE area LIKE '%河%';

这里写图片描述

#areaid列中以‘2’结尾的所有内容SELECT * FROM areas WHERE areaid LIKE '%2';

这里写图片描述

#‘_’通配符只这个位置只能出现一个字符SELECT * FROM areas WHERE area LIKE '河_区';

这里写图片描述

SQL IN

IN 操作符允许在 WHERE 子句中规定多个值。

SELECT * FROM areas WHERE area IN ('东城区','西城区');

这里写图片描述

SQL BETWEEN

BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。

SELECT * FROM areas WHERE areaid BETWEEN '110101' AND '110106';

这里写图片描述

SQL 别名

为表名称或列名称指定别名。

SELECT c.areaid AS a,c.area AS b FROM areas as c;

这里写图片描述

SQL JOIN

SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。(返回表中所有字段)
这里写图片描述

SELECT * FROM cities as c INNER JOIN provinces as p ON c.provinceid = p.provinceid;

这里写图片描述

这里写图片描述

LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。

SELECT * FROM cities as c LEFT JOIN provinces as p ON c.id = p.id;

这里写图片描述

这里写图片描述

SELECT * FROM provinces as p RIGHT JOIN cities  as c ON c.id = p.id;

这里写图片描述

SQL UNION

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

SELECT provinceid FROM provinces UNION  SELECT provinceid FROM cities ORDER BY provinceid;

这里写图片描述

UNION ALL会有重复

SELECT provinceid FROM provinces UNION ALL SELECT provinceid FROM cities ORDER BY provinceid;

这里写图片描述

拷贝一个表到新表中

CREATE TABLE areas_copy SELECT * FROM areas;

拷贝一个表到一个已经存在的表中

INSERT INTO areas_copy SELECT * FROM cities;

SQL 约束

1.NOT NULL 非空约束2.UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束。每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束     3.FOREIGN KEY  一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。FOREIGN KEY 约束用于预防破坏表之间连接的行为。FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。4.CHECK 约束用于限制列中的值的范围。5.DEFAULT 约束用于向列中插入默认值。

SQL函数

AVG() - 返回平均值COUNT() - 返回行数FIRST() - 返回第一个记录的值LAST() - 返回最后一个记录的值MAX() - 返回最大值MIN() - 返回最小值SUM() - 返回总和UCASE() - 将某个字段转换为大写LCASE() - 将某个字段转换为小写MID() - 从某个文本字段提取字符,MySql 中使用SubString(字段,1,end) - 从某个文本字段提取字符LEN() - 返回某个文本字段的长度ROUND() - 对某个数值字段进行指定小数位数的四舍五入NOW() - 返回当前的系统日期和时间FORMAT() - 格式化某个字段的显示方式

SQL GROUP BY

SELECT p.province,COUNT(c.city) as sum FROM provinces as p INNER JOIN cities as c WHERE p.provinceid = c.provinceid GROUP BY p.province;

这里写图片描述

SQL HAVING

HAVING 子句可以让我们筛选分组后的各组数据。

SELECT p.province,COUNT(c.city) as sum FROM provinces as p INNER JOIN cities as c WHERE p.provinceid = c.provinceid GROUP BY p.province HAVING sum>9;

这里写图片描述

原创粉丝点击