在数据库中我们处理问题,需要把关系代数表达式转换为SQL语句的形式输入到DBMS中进行操作。
基本表的创建可用CREATE TABLE语句实现,其基本句法如下:
CREATE TABLE〈基本表名〉
(<列名,数据类型>,
……
<完整性约束>,
……)
完整性约束有3种子句:
PRIMARY KEY
FOREIGN KEY…REFERENCE…
CHECK
这里举个例子
create table sc
(s# varchar(20),
c# varchar(20),
primary key(s#,c#)
foregin key (s#) references s(s#),
foregin key (c#) references c(c#))
SQL提供的主要数据类型(也称为“域类型”)有:
(1)数值型 INTEGER(INT),SMALLINT,REAL,DOUBLE PRECISION,FLOAT(n),NUMBERIC(p,d)
(2)字符串型 CHAR (n) ,VARCHAR (n)
(3)位串型 BIT(n) ,BIT VARYING(n)
(4)时间型 DATE,TIME
(5)自定义类型 CREATE DOMAIN PERSON_NAME CHAR(8)
基本表结构的修改
(1)增加新的列用“ALTER … ADD …”语句,其句法如下: ALTER TABLE <基本表名> ADD <列名> <类型>
(2)删除原有的列用“ALTER … DROP …”语句,句法如下: ALTER TABLE <基本表名> DROP <列名>[CASCADE│RESTRICT]
(3)修改原有列的类型、宽度用“ALTER … MODIFY …”语句,句法如下: ALTER TABLE <基本表名> MODIFY <列名> <类型>
基本表结构的修改举例
1.在基本表S中增加一个地址(ADDRESS)列,可用下列语句:
ALTER TABLE S ADD ADDRESS VARCHAR(30);
2. 在基本表S中删除年龄(AGE)列,并且把引用该列的所有视图和约束也一起删除,可用下列语句:
ALTER TABLE S DROP AGE CASCADE;
3. 在基本表S中S# 的长度修改为6,可用下列语句:
ALTER TABLE S MODIFY S# CHAR(6);
聚合函数
COUNT(*) 计算元组的个数
COUNT(列名) 对一列中的值计算个数
SUM (列名) 求某一列值的总和(此列的值必须是数值型)
AVG (列名) 求某一列值的平均值(此列的值必须是数值型)
MAX (列名) 求某一列值的最大值
MIN (列名) 求某一列值的最小值
!!!select语句是我们在操作数据库时最重要的语句这个是很重点的一条!!!
SELECT语句完整的句法如下:
SELECT 目标表的列名或列表达式序列
FROM 基本表名和(或)视图序列
[WHERE 行条件表达式]
[GROUP BY 列名序列
[HAVING 组条件表达式]]
[ORDER BY 列名[ASC|DESC],…]
整个语句的执行过程如下:
(1)读取FROM子句中基本表、视图的数据,执行笛卡尔积操作。
(2)选取满足WHERE子句中给出的条件表达式的元组。
(3)按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。
(4)按SELECT子句中给出的列名或列表达式求值输出。
(5)ORDER子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。
我们一般都是对表进行操作。我们上面讲了如何创建一个表,也讲了对表里面的内容进行查询但是我们也需要对表里面的内容进行修改插入删除等操作。增删改查永远是不变的主题!
一、插入操作:
(1)单元组的插入 INSERT INTO 基本表名 [(列名表)] VALUES (元组值)
(2)多元组的插入 INSERT INTO 基本表名 [(列名表)] VALUES (元组值) , (元组值) ,……, (元组值)
(3)查询结果的插入 INSERT INTO 基本表名 [(列名表)]<SELECT查询语句> 这个语句可把一个SELECT语句的查询结果插到某个基本表中。
(4)表的插入 INSERT INTO 基本表名1 [(列名表)]TABLE 基本表名2 这个语句可把基本表2的值插入到基本表1中。
二、删除操作:
DELETE FROM 基本表名 [WHERE 条件表达式] 其语义是从基本表中删除满足条件表达式的元组。删除语句实际上是“SELECT * FROM 基本表名[WHERE条件表达式]”和DELETE操作的结合,每找到一个元组,就把它删去。应该注意,DELETE语句只能从一个基本表中删除元组。WHERE子句中条件可以嵌套,也可以是来自几个基本表的复合条件。
三、修改操作:
当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下: UPDATE 基本表名 SET 列名=值表达式[,列名=值表达式…]│ROW=(元组) [WHERE 条件表达式] 其语义是:修改基本表中满足条件表达式的那些元组中的列值,需修改的列值在SET子句中指出。