数据库
1 | -- 创建数据库 |
表
1 | -- 创建表格 |
创建表格
1 | create table 表名 as |
1 | CREATE TABLE Persons |
1 | CREATE TABLE table_name |
参数 | 说明 | |
---|---|---|
列名 | 规定表中列的名称 | |
数据类型 | 例如varchar、integer、decimal、date。不同的数据库有不同的数据类型 | |
约束条件 | Primary key | 主键约束。每个表只能创建一个主键约束 |
Unique | 唯一性约束(即候选键)。每个表可以有多个唯一性约束,但只能有一个Primary key。 | |
Not null | 非空约束。是指该列允许不允许有空值出现,如选择了Not null表明该列不允许有空值出现。 | |
CHECK (search_cond) | 约束用于限制列中的值的范围,search_cond为条件。如果对单个列定义 CHECK 约束,那么该列只允许特定的值;如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。 | |
FOREIGN KEY | 一个表中的 FOREIGN KEY指向另一个表中的PRIMARY KEY | |
DEFAULT | 如果没有规定其他的值,那么会将默认值添加到所有的新记录。 | |
AUTO_INCREMENT | 每次插入时,自动生成主键的值 |
修改表格
1 | alter table tablename |
1 | -- 在表 "Person" 中添加一个名为 "Birthday" 的新列。 |
删除表格
1 | DROP TABLE table_name -- 删除表 |
视图
表中存储的是实际数据,而视图中保存的是从表中取出数据所使用的SELECT
语句。一般来说你可以用update,insert,delete
等sql语句修改表中的数据,而对视图只能进行select操作。但是也存在可更新的视图,对于这类视图的update,insert和delete
等操作最终会作用于与其相关的表中数据。
创建视图
**定义视图时不能使用 ORDER BY 子句**1 | CREATE VIEW view_name AS |
1 | CREATE VIEW CUSTOMERS_VIEW AS |
使用视图
1 | Select * From view_name |
视图的更新(增、删、改)
一般来说你可以用update,insert,delete
等sql语句修改表中的数据,而对视图只能进行select操作。但是也存在可更新的视图,对于这类视图的update,insert
和delete
等操作最终会作用于与其相关的表中数据。
对于可更新的视图,在视图中的行和基表中的行之间必须具有一对一的关系。还有一些特定的其他结构,这类结构会使得视图不可更新。如果视图包含下述结构中的任何一种,那么它就是不可更新的:
分类 | 说明 |
---|---|
非一对一 | DISTINCT关键字、GROUP BY子句、UNION运算符、位于选择列表中的子查询 |
未知 | 聚合函数、ORDER BY子句、HAVING子句、FROM子句中包含多个表、WHERE子句中的子查询,引用FROM子句中的表 |
其他 | SELECT语句中引用了不可更新视图 ALGORITHM 选项指定为TEMPTABLE(使用临时表总会使视图成为不可更新的) |
插入数据
1 | INSERT INTO CUSTOMERS_VIEW |
修改数据
1 | UPDATE CUSTOMERS_VIEW SET age = 58 where name = '李牧'; |
删除数据
1 | DELETE FROM CUSTOMERS_VIEW WHERE name = '李牧'; |
删除视图
1 | Drop View view_name |