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.我们必须在我们选择主要键和其他数据类型方面始终小心

文章作者: RetenQ
文章链接: http://example.com/2022/01/20/cs130%E6%95%B0%E6%8D%AE%E5%BA%93_%E7%90%86%E8%AE%BA%E6%A8%A1%E5%9D%97_%E4%B8%8B/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 RetenQ的博客