SQL基础简明总结
Inner Join
只含有关联的行
1 | SELECT field1, RTRIM(field2) AS f2 |
Self Join
可用于替代子查询
1 | SELECT c1.cust_id, c1.cust_name, c1.cust_contact |
Outer Join
包含没有关联行的行
LEFT指的是OUTER JOIN左边的表选择所有行
1 | SELECT customers.cust_id, orders.order_num |
UNION
连接多个查询,但必须每个查询的列必须相同
INSERT INTO
1 | INSERT INTO table1( |
VALUES 可替换为 SELECT 来插入检索的数据
SELECT INTO 可用于从表中导出数据到另一个表中
表操作
1 | CREATE TABLE ... |
视图
用于重用SQL语句,一般用于简化复杂的查询语句,或者是过滤数据
1 | CREATE VIEW cv AS |
事务
批量的SQL语句要么全部执行,要么都不执行或回退到特定语句
用于保证数据的完整性
事务可用于管理增删改语句
1 | START TRANSACTION |
重要概念
主键 每行的唯一标示,值不能够重用,不允许为NULL,不允许用户修改,自动生成,关键词 PRIMARY KEY
外键 确保与此列关联的另一表的列存在引用的值,否则会报错,关键词
1 | - 定义中 |
唯一约束 保证列中的值唯一,可包含NULL值,可修改可更新,使用关键词 UNIQUE
检查约束 限定值的范围
1 | ADD CONSTRAINT CHECK ( field > 0 ) |
索引 提前恰当的排序,当查找这个排好序的列时会非常快,主键数据本身就是排序的,提高查找性能,
却降低了增删改的性能,因为索引会在这些操作中动态更新索引
关键词 CREATE INDEX
触发器 关联特定表上的增删改操作,约束的性能更佳,使用前可以先考虑使用约束,能用于保持数据库的完整性
