COMMIT
COMMIT
:提交数据。一旦执行COMMIT
,则数据被永久的保存在了数据库中,数据不可以回滚
ROLLBACK
ROLLBACK
:回滚数据。一旦执行ROLLBACK
,则可以实现数据回滚。回滚到最近一次COMMIT
之后
注意:
- DDL的操作一旦执行,不可以回滚。(在执行完DDL之后,一定执行一次
COMMIT
) - DML的操作默认情况下,一旦执行,不可以回滚。但是再执行
SET autocommit = FALSE
,则执行DML后可以回滚
1 | CREATE TABLE IF NOT EXISTS myemp1 ( |
SELECT
语句查询,创建新的表,同时导入数据1 | CREATE TABLE myemp2 |
中心扩展算法,从每个位置出发,向两边扩展,若遇到的是回文子串,就继续扩展;若不是回文子串就结束,到下一个位置去。扩展方法:
动态规划法,用dp[i][j]
表示字符串s
从第i
个字符到第j
个字符是否未回文子串(true
表示是回文子串,false
表示不是回文子串)。
dp[i][j] = dp[i+1][j-1] ^ (s[i] == s[j])
dp[i][i] = true
dp[i][i+1] = (s[i] == s[i+1])
利用二叉树的层序遍历,将每一层的最右侧节点加入到结果中
1 | /** |
子查询是指,一个查询语句(内查询)嵌套在另一个查询语句(外查询)内部的查询。子查询可以按照两种方法进行分类:
1 | SELECT (DISTINCT) 字段1,字段2, ... (存在聚合函数) |
1 | SELECT (DISTINCT) 字段1,字段2, ... (存在聚合函数) |
FROM
语句,找到相应的表,多表进行笛卡尔积连接ON
限制多表连接条件,进行多表连接。同时考虑左外LEFT
/右外RIGHT
连接,补充行WHERE
过滤行GROUP BY
分组。HAVING
每组的满足条件SELECT
查询字段,对列上进行过滤。若有DISTINCT
,对数据去重ORDER BY
对结果排序LIMIT
进行分页多表查询需要连接条件(有n个表实现多表查询,至少需要n-1个连接条件)
1 | # 给表起别名时必须用别名,不能用原名 |
SQL99语法采用表1 JOIN 表2 ON 连接条件
的方式实现多表连接
1 | SELECT emp.employee_id, dept.department_name |
注意: