第十九章、插入数据
插入完整行:
如果表的定义允许,则可以在INSERT操作中省略某些列。省略的列必须满足以下某个条件。
- 该列定义为允许NULL值(无值或空值)。
- 口在表定义中给出默认值。这表示如果不给出值,将使用默认值。
插入多个行:
插入检索出的数据:
INSERT一般用来给表插入一个指定列值的行。但是,INSERT还存在另一种形式,可以利用它将一条SELECT语句的结果插入表中。这就是所谓的INSERT SELECT,顾名思义,它是由一条INSERT语句和一条SELECT语句组成的。
第二十章、更新和删除数据
更新数据:
删除数据:
第二十一章、创建和操纵表
创建表:
NOT NULL:表示插入数据时,必须要有值。
PRIMARY KEY:表示主键。
AUTO_INCREMENT:表示会自动增加对应的列的值,比如id。
还可以通过DEFAULT指定默认值。
更新表:
向表中添加一列:
删除刚刚从表中添加的那一列:
向表中添加一列,这一列在表中表示外键:
删除表:DROP TABLE customers2;
重命名表:RENAME TABLE customers2 TO customers;
第二十二章、使用视图
视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。
为什么使用视图?
- 重用SQL语句。
- 简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道它的基本查询细节。
- 使用表的组成部分而不是整个表。
- 保护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。
- 更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据。
视图的规则和限制:
- 与表一样,视图必须唯一命名。
- 对于可以创建的视图数目没有限制。
- 为了创建视图,必须具有足够的访问权限。
- 视图可以嵌套,即可以利用从其他视图中检索数据的查询来构造一个视图。
- ORDER BY可以用在视图中,但如果从该视图检索数据SELECT中也含有ORDER BY,那么该视图中的ORDER BY将被覆盖。
- 视图不能索引,也不能有关联的触发器或默认值。
- 视图可以和表一起使用。
用视图重新格式化检索出的数据:
用视图过滤掉不要的数据:
使用视图计算字段:
更新视图:通常,视图是可更新的(即,可以对它们使用INSERT、UPDATE和DELETE)。更新一个视图将更新其基表(可以回忆一下,视图本身没有数据)。如果你对视图增加或删除行,实际上是对其基表增加或删除行。
第二十三章、 使用存储过程
创建一个存储过程:
删除存储过程: