1.SQL语句使用分号(;)结尾
2.SQL语句不区分大小写
- 不区分关键字的大小写,如select 或者 SELECT 都一样。
- 但是插入到表中的数据是区分大小。
3.常数的书写方式是固定的
- 字符串、日期常数需要使用单引号(')括起来。
- 数字常数无需单引号(直接书写数字即可)。
4.单词需要用半角空格或者换行来分割
CREATE TABLE Product
- 数据库的创建
create database <数据库名称>;
- 表的创建 create table <表名>;
- 表的删除 drop table <表名>;
- 保留表,删除全部数据 delete from <表名>;
- 列的删除 alter table<表名> drop <列名>;
- 表定义的更新 alter table <表名> add <列名>; 如: alter table 表 add 列 varchar(100);
- 数据的插入 insert into <表名> {列1,列2,列3} values {值1,值2,值};
- 删除重复行 select distinct <列名> from <表名> ;
- 列的查询 select <列名>,...from <表名>;
- 数据的更新 update <表名> set <列名>= 新值 where <列名>= 旧值 如:update class set fenshu=90 where name='王五'
- null记录的选取 提供了专门用来判断是否为 NULL 的 IS NULL 运算符。
- Group by 子句 对表分组,GROUP BY就像是切分表的一把刀,在 GROUPBY 子句中指定的列称为聚合键或者分组列。
- 计算全部数据的行数 count(*)会得到包含null数据的行数
SELECT COUNT(*) FROM <表>;
- GROUP BY子句中不能使用SELECT子句中列的别名;
- GROUP BY 子句的书写位置也有严格要求,一定要写在FROM 语句之后(如果有 WHERE 子句的话需要写在 WHERE 子句之后);
- 在 GROUP BY 子句中不能使用SELECT 子句中定义的别名,但是在 ORDER BY 子句中却是允许使用别名的;
- 在SELECT子句中书写聚合键之外的列名会发生错误;
- where 子句 WHERE 子句来指定查询数据的条件。在 WHERE子句中可以指定“某一列的值和这个字符串相等”或者“某一列的值大于这个数字”等条件。
- Having 子句 HAVING子句用来指定分组的条件,例如,“数据行数为 2 行”或者“平均值为 500”等。
- HAVING子句要写在GROUP BY子句之后; SELECT → FROM → WHERE → GROUP BY → HAVINGHAVING 子句中
-
能够使用的 3 种要素:常数、聚合函数、group by子句中指定的列名(即聚合键)
- Order by 子句 对查询结果进行排序;
- 在ORDER BY子句中列名的后面使用关键字ASC进行升序排序,使用DESC进行降序排序;
- ORDER BY子句中可以使用SELECT子句中定义的列的别名;
- ORDER BY子句中可以使用SELECT子句中未出现的列或者聚合函数。
书写顺序:
1. SELECT 子句 → 2. FROM 子句 → 3. WHERE 子句 → 4. GROUP BY 子句 →
5. HAVING 子句 → 6. ORDER BY 子句