好记性不如烂笔头,在学习时作下笔记,以便后续翻阅。
以下"<"与">"在实际中输入代码时请忽略。
1、数据库的创建
CREATE DATABASE <数据库名称>;
2、表的创建
CREATE TABLE <表的名称>
(<列名1> <数据类型> <约束>,
<列名2> <数据类型> <约束>,
....
<该表的约束1>, <该表的约束2>, ....);
创建成功提示:CREATE TABLE,表的主键约束代码为:PRIMARY KEY (表中的列名称));
3、表的删除
DROP TABLE <表名>;
4、列的添加
ALTER TABLE <表名> ADD COLUMN <列名> <列的定义>;
如:ALTER TABLE Product ADD COLUMN product_id INTEGER NOT NULL;
5、列的删除
ALTER TABLE <表名> DROP COLUMN <列名>;
6、行数据添加
BEGIN TRANSATION;
INSERT INTO <表名> VALUES ('<1-1数据>', ' <1-2数据> ', ' <1-3数据> ', ' <1-N单元格数据> ');
COMMIT;
PS:若数据类型为INTEGER则不需要添加( '' 单引号 )。
7、查询表数据
查询表全部列数据:SELECT * FROM <表名>;
查询指定列数据:SELECT <列名1>, <列名2>, <列名N> FROM <表名>;
8、修改表名称
ALTER TABLE <表名> RENAME TO <新表名>;
9、AS 查询数据指时 为列设定别名
SELECT <列名> AS <指定列名>,
<列名> AS <指定列名>,
<列名> AS <指定列名>
FROM <表名称>;
PS:可以使用汉语别名,但需要使用""括起来。
10、AS 查询数据时 添加指定列及内容
SELECT '商品' AS string, 99 AS number, '2009-02-24' AS date,
<列名1>, <列名N>
FROM <表名>;
11、DISTINCT 在查询列的结果中删除重复行
SELECT DISTINCT <列名1>, <列名N>
FROM <表名>;
PS: ①其中NULL也被是为一类数据。②DISTINCT 关键字为第一个列。如:<列名1>排第一,那么其则为关键字。
12、WHERE 筛选查询
SELECT <列名>, ……
FROM <表名>
WHERE <条件表达式>;
PS:①其中列名可以用 * 号查询全部。②WHERE 的表达式示例:WHERE product_type = '办公用品';
13、注释方法
一行注释:-- 注释内容
多行注释:/*注释内容*/
14、算术运算符_+,-,*,/
SELECT <列名1>, <列名N>,
<列名1> <运算符> <值> AS "<列名1_>"
FROM <表名>;
PS:①包含NULL的计算,结果均=NULL。②( )内的优先计算。
15、比较运算符_=,<>,>=,>,<=,<
SELECT <列1>,<列N>
FROM <表>
WHERE <列X> <比较运算符> <值>;
PS:①<>不等于。②查询时可只查第一列第二列,但<列X>可以是第三列以后。
代码示例:
SELECT *
FROM Product
WHERE sale_price - purchase_price >= 500;
结果: product_id | product_name | product_type | sale_price | purchase_price | regist_date -----------+--------------+--------------+------------+----------------+------------- 0001 | T恤 | 衣服 | 1000 | 500 | 2009-09-20 0003 | 运动T恤 | 衣服 | 4000 | 2800 | 0005 | 高压锅 | 厨房用具 | 6800 | 5000 | 2009-01-15 0010 | 外星人 | 笔记本电脑 | 9999 | 7000 | 2021-10-29
16、字符串不等于运算注意事项
字符串增序/数字增序
1 1
10 2
11 3
2 10
222 11
3 222
17、NULL不参与比较运算符,但可以使用 IS NULL 与 IS NOT NULL 运算符。示例代码如下:
查询空值项:
SELECT <列1>, <列N>
FROM <表>
WHERE <列N> IS NULL;
查询非空值项:
SELECT <列1>, <列N>
FROM <表>
WHERE <列N> IS NOT NULL;
18、逻辑运算符
①NOT运算符。用来否定某一条件,但是不能滥用。示例如下:
SELECT *
FROM <表>
WHERE NOT <列> >= 1000;
②AND运算符或OR运算符
SELECT *
FROM <表>
WHERE <列> <运算符> '<列>'
<AND/OR> <列> <运算符> <值>;
代码示例:
SELECT product_name, purchase_price
FROM Product
WHERE product_type = '厨房用具'
<AND/OR> sale_price >= 3000;
③通过括号强化处理,上述的计算可以用( )提高优先度。AND运算符优先于OR运算符。
示例代码如下:
SELECT product_name, product_type, regist_date
FROM Product
WHERE product_type = '办公用品'
AND ( regist_date = '2009-09-11'
OR regist_date = '2009-09-20');
第三章 聚合与排序
19、对表进行聚合查询。
示例代码:
SELECT COUNT(<列名>) AS <自定义列名>
FROM <表名>;
PS:括号内可以输入<列名>及<*>。使用<列名>时将不统计NULL值。
②SUM() 函数,计算合计值。
示例代码:
SELECT SUM(<列名>) AS <自定义列名>
FROM <表名>;
PS:SUM() 函数计算时将忽略NULL值。<自定义列名>若是中文则需要添加 "" 号。
③AVG() 函数,计算平均值。
示例代码:
SELECT AVG(<列名>) AS <自定义列名>
FROM <表名>;
PS:AVG() 函数计算时也忽略NULL值。后续可以将NULL值作为0计算。
④MAX() 最大值,MIN() 最小值。
示例代码:
SELECT MAX(<列名>) AS <自定义列名>, MIN(<列名>) AS <自定义列名>,
FROM <表名>;
PS:MAX MIN 函数适用于所有数据类型的列,SUM AVG函数只适用于数值类型的列。
⑤使用聚合函数删除重复值,DISTINCT
示例代码:
SELECT <COUNT / MAX / AVG / SUM / MIN>(DISTINCT <列名>),
FROM <表名>;
20、对表进行分组
①GROUP BY子句
代码示例:
SELECT <列名1>, <列名2>, <列名3>, ……
FROM <表名>
GROUP BY <列名1>, <列名2>, <列名3>, ……;
PS:GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。