好记性不如烂笔头,在学习时作下笔记,以便后续翻阅。

以下"<"与">"在实际中输入代码时请忽略。

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 语句用于结合合计函数,根据一个或多个列对结果集进行分组。