Lecture 7-8
INSERT
想要从table中得到数据,那么我们需要使用INSERT语句去完成它
INSERT 拥有着特别的结构
INSERT INTO TABLENAME (COLUMN LIST)VALUES(VALUE LIST)\
INSERT INTO 表名称 (纵行) VALUES (数值表VALUE LIST)
比如有Table:
我们想要在
moviename,movieminutes,movierating,movieguide插入值,
值分别是’Interstellar’,169,8.7,’PG-13’
1 2 3
| INSERT INTO mymovies (moviename,movieminutes,movierating,movieguide) values('Interstellar',169,8.7,'PG-13')
|
得到结果是:
INSERT 语句中列名的顺序很重要。最好与您在 CREATE 语句中的排列方式相匹配
示例:
主键 primary keys
primary keys 主键总是具有唯一性的
数据库(在我们的例子中是 PostgreSQL)根本不允许主键约束被破坏
您可以尝试再次运行此 INSERT 但它仍然不起作用
这就是 ER 图和功能依赖关系如此重要的原因
删除 DROP TABLE
PostgreSQL 中的 DROP TABLE 命令是一个 DML 命令,用于从表中删除所有数据并删除表的定义
而且,对于使用DROP TABLE命令后,没有撤消命令
DROP TABLE IF EXISTS <TABLE NAME>;
如果存在
这张表,就删除它
varchar(N) 与 TEXT
如果您选择 varchar(N) – 例如 varchar(90) 这会对该列或属性施加约束
TEXT 不施加限制,或者说,限制是是按具有数百万个字符的字符串的顺序排列的!
因此,TEXT提供了最大的灵活性,特别是在支持数据库表和物理结构的未来可移植性和维护方面
小结与tips
1.表名和列名不能有空格
2.当您插入字符串或字符数据时,您必须使用单引号
其它操作符:
BETWEEN
BETWEEN:可用于查询中的比较
比如我们寻找啊:a>=x and a<y
则可以表示为 a BETWEEN x AND Y
当然,也可以配合NOT使用
IN
IN运算符允许我们将表中列的值与值数组进行比较
这取代了我们编写大量可能的条件语句的需要
直接用实例说明更明显:
简单来说,IN就是把我们想要分别判断/寻找的元素集合到了一个数组里面,这样以来,我们就不需要一条条进行判定了
其它运算符
骚
小复习:一些关键的key data types:
VARCHAR: 可以改变长度的字符串
INTEGER:任何正整数字符串
REAL:任意9浮点数石实际只能说
NULL:字面意思
在PGSQLZ中,我们着重点看三个表现方面:
Timestamp: 2015-10-14 14:5:10
形式化表达为: 年-月-日 时-分-秒
Data:
Exapmale:2015-10-14
形式化表达为:年-月-日
Time:
Example:18:10:04
形式化表达为:时-分-秒
而在PgSQL中,我们能够输入日期/时间的方很多:
利用理由检测,多次博鳌是“9”的重要性,2
lecture 9-10
数据安全,数据管理和数据库管理
Transaction Control PostagreControl
1.Transaction开始于开始事务 BRGIN TRANSACTION,然后后面接着的就是SQL语句
2.使用SQL做的任何更改都是永久的
3.可以使用回滚 ROLLBACK来撤销交易的一部分或者所有的事物
Key Hierarchy
Super Keys:
一组一个或者多个属性,在统称的时候允许我们唯一地标示一个实体,一行,一个表(an entity , row ,table)
Candidate Keys:
Super Keys的属性的子集,本身也是一个超级键,但不可还原
Primary Keys:
根据索引需要,从候选键中进行任意选择
Unique Keys
唯一键是唯一标识实体/对象的一个或多个数据属性
在关系数据库中,使用一个或多个表列(其值可以是唯一标识行)形成唯一键
由两个或者两个以上的属性混合而成的key,叫做混合键composite key
A primary key is a unique key
1.主键肯定不能为null
2.任何表或者实体中,只能有一个主键
3.因此,我们可以有很多的键,它们分别来自实体或者表中的各个属性。但我们会从中选择一者作为唯一的主键
A primary key must be well-chosen
我们通过向实体添加另一个属性(列)生成了人工主键,该属性纯粹是为了数据管理目的而生成的
PS
PostgreSql和其他数据库可以提供自动主键生成
在这种情况下,人工主键值的生成由数据库本身而不是用户管理
对于这种情况,PostgreSql提供了一种非常特殊的数据类型,称为串行SERIAL
串行SERIAL实际上是一个整数,但数据的存储和操作方式完全由PostgreSql管理,而不是由发出insert的用户管理
串行数据类型不应该在数据库中表示任何内容
TEXT
PostgreSql提供了一种称为文本TEXT的替代数据类型
文本TEXT允许无限长的字符串
事实上,文本将允许您插入大量字符串/字符数据
文本在表上的声明与任何其他数据类型相同
小结
1.主键可以是自然键,也可以是人工键
2.PostgreSQL提供序列化作为自动的人工主键
3.我们必须在我们选择主要键和其他数据类型方面始终小心
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 RetenQ的博客!