-
下面的 SQL 语句从 “Websites” 表中选取头两条记录:
select * form table limit 2;
-
下面的 SQL 语句选取 name 以字母 “G” 开始的所有客户:
select * from table where name like ‘G%’; -
下面的 SQL 语句选取 name 为 “Google” 或 “菜鸟教程” 的所有网站:
select * from table where name in('Google','菜鸟教程');
- 下面的 SQL 语句选取 alexa 介于 1 和 20 之间的所有网站:
select * from table where alexa between 1 and 20;
- 下面的 SQL 语句选取 date 介于 ‘2016-05-10’ 和 ‘2016-05-14’ 之间的所有访问记录:
select * from table where date between 2016-05-10' AND '2016-05-14';
6.下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。提示:如果列名称包含空格,要求使用双引号或方括号:
select name as n,country as c from table;
- 在下面的 SQL 语句中,我们把三个列(url、alexa 和 country)结合在一起,并创建一个名为 “site_info” 的别名:
SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS site_info FROM Websites;
8.MySQL UNION 操作符 :
**描述
**:MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
下面是 “apps” APP 的数据:
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
下面的 SQL 语句使用 UNION ALL 从 “Websites” 和 “apps” 表中选取所有的country(也有重复的值):
SELECT COUNTRY FROM Websites UNION ALL
SELECT COUNTRY FROM apps ORDER BY country;
|下面的 SQL 语句使用 UNION ALL 从 “Websites” 和 “apps” 表中选取所有的中国(CN)的数据(也有重复的值):
SELECT COUNTRY,NAME FROM Websites UNION ALL SELECT COUNTRY FROM apps WHERE COUNTRY=‘CN’ ORDER BY COUNTRY;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wuHXJGNv-1571022691159)(C:\Users\dell-pc\AppData\Roaming\Typora\typora-user-images\1570977909463.png)]
MySQL 排序
对读取的数据进行排序,可用 MySQL 的 ``ORDER BY 子句设定哪个字段需要排序,再返回搜索结果;默认情况下按升序
ASC,
DESC降序;可以添加
WHERE…LIKE` 子句来设置条件
SELECT * FROM TABLE ORDER BY NAME DESC;
MySQL GROUP BY 语句
GROUP BY
语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
将数据表按名字进行分组,并统计每个人有多少条记录:
SELECT name,COUNT(*) FROM employeee_tbl GROUP BY name;
我们将以上的数据表按名字进行分组,再统计每个人登录的次数:
SELECT NAME COUNT(signin) as sigin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
coalesce 来设置一个可以取代 NUll 的名称,coalesce 语法:
参数说明:如果anull,则选择b;如果bnull,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。
SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
MySQL 连接的使用
MySQL 的 JOIN 在两个或多个表中查询数据,可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。
JOIN 按照功能大致分为如下三类:
- INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
- **LEFT JOIN(左连接):**获取左表所有记录,即使右表没有对应匹配的记录。
- RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
**INNER JOIN(直接用 JOIN,效果一样)**来连接以上两张表来读取runoob_tbl表中所有runoob_author字段在tcount_tbl表对应的runoob_count字段值:
SELECT a.runoob_id,a.runoob_author,b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoon_author = b.runoob_author;
MySQL LEFT JOIN
MySQL left join 与 join 有所不同。 MySQL LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。。
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
+-------------+-----------------+----------------+
| a.runoob_id | a.runoob_author | b.runoob_count |
+-------------+-----------------+----------------+
| 1 | 菜鸟教程 | 10 |
| 2 | 菜鸟教程 | 10 |
| 3 | RUNOOB.COM | 20 |
| 4 | RUNOOB.COM | 20 |
| 5 | FK | NULL |
+-------------+-----------------+----------------+
MySQL RIGHT JOIN
MySQL RIGHT JOIN 会读取右边数据表的全部数据,即便左边边表无对应数据
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
MySQL NULL 值处理
MySQL提供了三大运算符:
- IS NULL: 当列的值是 NULL,此运算符返回 true。
- IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
- <=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。
你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。
不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。
更多推荐
菜鸟教程-MySQL的语句复习
发布评论