近几年数据库发挥了越来越重要的作用,这其中和大数据、数据科学的兴起有不可分割的联系。学习数据库,可以说是每个从事IT行业的必修课。你学或不学,它就在那里;你想或不想,你都得学。
大一的时候,我选了一门名为《Android应用程序开发》的选修课。那个时候啥都不懂,就感觉这个名字比较高端,然后就去了。学习一学期,也就是在电脑上装上了Android应用程序的开发环境。由于我的笔记本太撇,每次运行Android虚拟机就会卡的要死。好吧,我承认最后期末考试我挂了,很悲痛的经历,选修课竟然也会挂(其实主要是我太菜,没有认真学)。
那个老师其实挺好的,教得很认真,只是我没有认真听(悔恨中…)。我记得有次一个同学提问,问他如果报考计算机三级的话,建议报考哪一门?(当时计算机三级一共有5个种类)。那个老师就说建议报考三级数据库技术,因为数据库技术最有前景。我现在是相当的佩服那个老师,他自己从事的Android开发,让学生学数据库。那应该算是我第一次接触数据库这种东西,从此对它念念不忘(论一个老师对学生的影响力!)
扯远了,飞回来~~~
CREATE DATABASE <数据库名>;
CREATE TABLE <表名>
( <列名1> <数据类型> <约束条件>,
<列名2> <数据类型> <约束条件>,
<列名3> <数据类型> <约束条件>,
<列名4> <数据类型> <约束条件>,
....
<该表的的约束条件1> <该表的的约束条件2>...);
DROP TABLE <表名>;
ALTER TABLE <表名> ADD COLUMN <列的定义>;
ALTER TABLE <表名> DROP TABLE <列名>;
SELECT <列名>,...
FROM <表名>;
SELECT *
FROM <表名>;
SELECT <列名>,...
FROM <表名>
WHERE <条件表达式>;
SELECT <列名1>, <列名2>,...
FROM <表名>
GROUP BY <列名1>, <列名2>,...;
SELECT <列名1>, <列名2>, <列名3>,...
FROM <表名>
WHERE <条件表达式>
GROUP BY <列名1>, <列名2>, <列名3>,...;
SELECT <列名1>, <列名2>, <列名3>,...
FROM <表名>
GROUP BY <列名1>, <列名2>, <列名3>,...
HAVING <分组结果对应的条件>;
SELECT <列名1>, <列名2>, <列名3>,...
FROM <表名>
ORDER BY <排序基准列1>, <排序基准列2>, ...;
1.SELECT子句→2.FROM子句→3.WHERE子句→4.GROUP BY子句→5.HAVING子句→6.ORDER BY子句
INSERT INTO <表名> (列名1, 列名2,...)
VALUES (值1, 值2,...);
DELETE FROM <表名>;
DELETE FROM <表名>
WHERE <条件>;
UPDATE <表名>
SET <列名> = <表达式>;
UPDATE <表名>
SET <列名> = <表达式>
WHERE <条件>;
事务开始语句;
DML语句1;
DML语句2;
DML语句3;
...
事务结束语句(COMMIT或者ROLLBACK);
CREATE VIEW 视图名称 (<视图列名1>, <视图列名2>,...)
AS
<SELECT语句>
DROP VIEW 视图名称(<视图列名1>, <视图列名2>,...)
ABS(数值)
MOD(被除数, 除数)
ROUND(对象数值, 保留小数的位数)
字符串1 || 字符串2
LENGTH(字符串)
LOWER(字符串)
REPLACE(对象字符串, 替换前的字符串, 替换后的字符串)
SUBSTRING (对象字符串 FRMO 截取的起始位置 FOR 截取的字符数)
UPPER(字符串)
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
EXTRACT(日期元素 FROM 日期)
CAST(转换前的值 AS 想要转换的数据类型)
COALESCE(数据1, 数据2, 数据3....)
CASE WHEN <求值表达式> THEN <表达式>
WHEN <求值表达式> THEN <表达式>
WHEN <求值表达式> THEN <表达式>
.....
ELSE <表达式>
END
<窗口函数> OVER ( [PARTITION BY <列清单>]
ORDER BY <排序用列清单>)
每天学习一点点,每天进步一点点。