前言
重新开始学习SQL的第一天:
找到了coursera的SQL课,上完(付费)可以领证书的,因为市面上没有SQL的证书,所以我觉得可以刚好作为SQL掌握甚至精通的证明,刚刚试看了几集,感觉不错,还有在线的SQL工具可以练习,不用打开自己的cmd窗口了。
1.SELECT
用来根据列名和条件筛选列
SELECT 列名1,列名2,列名3... FROM 表名
WHERE 筛选条件语句
;
Tips:条件语句如果是字符需要加" "
列名加 as 可以改变显示的列名
1.1 COUNT
用来检索与查询条件匹配的行数
查询整个表的行数:
SELECT COUNT(*) FROM 表名
WHERE 筛选条件语句
;
按条件查询:
SELECT COUNT(列名) FROM 表名
WHERE 筛选条件语句
;
Tips:
COUNT括号中只能放一个列名;
COUNT不会把值为NULL的记录计入
1.2 DISTINCT
用来去重,即去掉所有重复的内容(例如名字),是对后面所有列都有效
SELECT DISTINCT 列名1,列名2,列名3... FROM 表名
WHERE 筛选条件语句
;
与COUNT结合使用:
SELECT COUNT(DISTINCT 列名) FROM 表名
WHERE 筛选条件语句
;
Tips:此时DISTINCT后只能放一个列名
与if结合使用:
SELECT
count(*) as total_pv,
sum(IF((score is NULL),0,1)) as complete_pv,
COUNT(distinct if(submit_time is not null, exam_id, null)) as complete_exam_cnt
FROM
exam_record
1.3 LIMIT
用来从表的顶部检索特定数量的行
SELECT 列名1,列名2,列名3... FROM 表名
WHERE 筛选条件语句
LIMIT 取出的数量 OFFSET(抵消) 前几行
;
Tips:注意LIMIT和WHERE的顺序
2.INSERT
用来插入某行或多行数据
INSERT INTO 表名 (列名1, 列名2, ... )
VALUES (值1, 值2, ... ),(值1, 值2, ... ), ...
;
3.UPDATE
用来插入某行或多行数据
UPDATE 表名
SET 列1 = 值1, 列2 = 值2, ...
WHERE 筛选条件语句
;
4.DELETE
用来插入某行或多行数据
DELETE FROM 表名
WHERE 筛选条件语句
;
Tips:WHERE语句后面可以加IN()
5.HAVING&WHERE
https://wenku.baidu.com/view/1a16a16a3968011ca3009185.html