【CSE103 数据库期末总结】

一、关键字(Key):

1、关键字包含 超键(Super key),候选键(Candidate key),组合键(Composite key)和主键(Primary key)。

2、候选键和组合键都可以作为主键,候选键和组合键统称为超键。

3、键(key)由关系内的一组属性集组成,通过定义键可以保证关系实例(relation instance)上任何两个元组(tuple)的值在定义键的属性集不同。

4、主键在SQL语言中用 Primary key(属性名)关键字 和 unique (属性名)关键字定义, primary key 定义的主键内不可有空值(即NULL值),而unique定义的主键内可以有空值(即NULL值)。

二、数据库:

1、数据库(Data base)是一个关系(relation)的集合。

2、数据库内每个关系由 属性(Attribute),元组(Tuple),域(Domain),和 元素(Component)组成。

3、属性 是一个关系内每一列的列名。关系模式中的属性是集合,而不是列表。 可是为了讲述关系,常常赋予属性一个“标准”顺序。当需要介绍具有一组属性的关系模式时,常以这个标准次序显示关系或关系的任意一行。

3、元组 是每个关系中一组属性的关系模式。

4、域 关系模型要求元组的每个分量具有原子性。也就是说,它必须属于某种元素类型,如 integer 或String, 而不能记录、集合、列表、数组或其他任何可以被分解成更小分量的组合类型。

 

如:

表示一个关系Movies 的关系模式为:

Movies(title: string, year: integer, length:integer, genre: string)。

5、关系的等价描述:

在一个关系中元组的顺序与属性的顺序可以改变,即有不同的排列方式,而关系不会改变。但重新排序关系模式时,要记住属性是列标题。因此,改变属性次序,也要改变它们所在列的次序。

6、关系的实例:

一个给定关系的元组的集合叫做关系的实例。

7、在表示关系模式(Schema)时在属性名下划线可以表示该属性集是该关系的主键。

三、代数查询语言:

个人理解代数查询语言就是SQL语言的伪代码。

1、  关系代数的操作符:

(1)       并(Union)、交(intersection)、差(minus)

(2)       除去某些行或者列的操作用“选择” 和  “投影”来表示。选择除去了某些行,投影除去了某些列。

(3)       组合两个关系的操作 包括 笛卡尔积(Cartesian Product)和其他许多连接(join)操作,包括Theta-join, Natural join。

(4)       “重命名”(renaming)操作。不影响关系中的元组对关系或者属性进行重命名。

注:

         人们一般把关系代数的表达式称为 查询(query)。

 四、数据库语言SQL:

1、SQL即 Structured Query Language 结构化查询语言。

2、SQL存在很多版本,但都要符合ANSI(美国国家标准机构)

         A、在1992年c采纳的对ANSI SQL进行修改的标准,称为SQL-92 或 SQL2

         B、最近的SQL-99(也称为SQL3)标准。SQL-99对SQL2进行了扩充,引入了对象关系特征和许多其他功能。

3、SQL consists of:

         A:  data definition language

         B:  data manipulation language

         C:  data control language

4、SQL数据库语言-Database Definition的关键字与语法:

(1)Creating Database:

         语法:

                   CREATE DATABASE <name>;

                   注:

                            <name> is the name of the actual database.

(2) Related Commands:

        语法:

A、   STOP DATABASE;

---closes the currently active database

B、   DROP DATABASE<name>

---erases the named database

C、   SHOW DATABASE;

---lists all the databases

(3)Create a Table:

         A.例如:

                   CREATE TABLE Book

                   (

 Book_no integer NOT NULL,

 Title varchar(20) NOT NULL,

 Subject char(12)

 PRIMARY KEY(Book_no);

 )

         B. 语法:

                            表用保留字CREATE TABLE后跟关系名以及括起来属性名与类型组成来定义。

                            注:  例子中NOT NULL表明Book_no 和 Title 必须有数据。

         C. char(),varchar(),与nvarchar()的区别:

l  Char(n)表示长度为n的字符串,如果长度不到n 会自动补值,如果超出长度会截取长度为n的字符串

l  Varchar(n)表示可变长度为n的非unicode表的字符串

l  Nvarchar(n)表示可变长度为n的unicode表的字符串

(5)       Altering Table:

A. 语法:

ALTER TABLE<table_name>

                       ADD <columns>;

注: <table_name> is the name of the table to alter

             <columns> is one or more attributes to “alter”

  1. B.  例子:

             ALTER TABLE Book

                       ADD Author char(20) NOT NULL;

(6) Deleting Tables:

       (1)语法:

                         DROP TABLE<table_name>;

        (2)例子:

                          DROP TABLE Book;

5. SQL中的数据类型:

                CHAR(n); 字符串

VARCHAR(n); 字符串

BIT(n); 位串

BIT VARING(n) ; 位串

INT; 整数型

INTEGER;整数型

SHORT;整数型

FLOAT;浮点型

REAL; 浮点型

DOUBLE PRECISION;浮点型

DATE; 日期型

和 TIME.时间型

  6. SQL数据库语言-Database Manipulation的关键字与语法:

(1)SQL中的简单查询:

           A. SQL中的简单查询和关系代数中的选择(Selection) 和 投影(Projection)类似。

 B. SQL查询语句的典型格式: select-from-where

(2)查询语句的三个保留字:SELECT、FROM和WHERE。

     SELECT 后跟投影属性。

     FROM  后跟需要查询的关系名。

     WHERE 后跟选择元组的条件。

(3)例:

                   SELECT  title,length

        FROM   Movies

                   WHERE  studioName – ‘Disney’ AND year = 1990;

   这个例子表示查询关系Movies中 studioName为 Disney 年份为1990 的电影,并选择title 和 length 输出。

注:  SQL中字符串用单引号, 如‘Disney’;

           当不需要投影 或者 不需要 选择时  SELECT与 WHERE 后加 * 号, 表示空值。