Adaptive Server Anywhere 7.0网上培训教材
热 ★★★★
Adaptive Server Anywhere 7.0网上培训教材
作者:闵涛 文章来源:闵涛的学习笔记 点击数:7844 更新时间:2009/4/22 23:09:43
列
4. 点击 Advanced Table Properties
5. 选择 Global temporary table
6. 点击 OK 建立临时表
建立主键
通常在建表时完成
如果现有的数据都是唯一的,也可以在以后补加
分别使用以下命令:
CREATE TABLE...PRIMARY KEY
ALTER TABLE…ADD PRIMARY KEY
实例:
CREATE TABLE department
(dept_id INTEGER NOT NULL,
dept_name CHAR(20),
dept_id_head INTEGER,
PRIMARY KEY (dept_id));
ALTER TABLE department ADD PRIMARY KEY (dept_id);
声明参照完整性 :
利用建立外键来强制参照完整性被称之为“声明参照完整性”
参照完整性在如下情况下要起作用:
插入一个含有外键的行
主键值被更新
主表中删去一行,其中含有其它表所参照的外键
参照完整性能起以下作用 :
1〉拒绝
不允许对主键进行 UPDATE 或 DELETE
这是缺省动作
2〉设定为空值
把外键设定为空值
3〉设定为缺省值
把外键设定为其缺省值
4〉级联(CASCADE)
使外键行作出级联改变
建立外键 :
举例:
CREATE TABLE department
(dept_id INTEGER NOT NULL,
dept_name CHAR ( 20 ),
dept_id_head INTEGER,
FOREIGN KEY id_fkey(dept_id_head)
REFERENCES employee (emp_id)
ON UPDATE CASCADE ON DELETE SET NULL);
修改和删去外键 :
利用 ALTER TABLE 删去原来的外键,然后再增加新的外键
ALTER TABLE department
DELETE FOREIGN KEY id_fkey;
ALTER TABLE department
ADD FOREIGN KEY id_fkey (dept_id_head)
REFERENCES employee (emp_id)
ON UPDATE CASCADE
ON DELETE CASCADE);
建立索引 :
Adaptive Server Anywhere 在以下情况能自动建立索引:
1〉主键列
2〉唯一性约束
建立索引可能耗费许多的时间和资源 ,表正在使用时不允许建立索引,表中所含数据量越大,则建索引就越费时.
实例
CREATE INDEX lastname ON employee (emp_lname DESC) IN mydata2;
删去索引 :
利用 DROP INDEX
当表正在使用时,禁止删去索引。
如:
DROP INDEX employee.lastname;
建立视图 :
视图一定是针对数据库中的表进行 SELECT操作来实现
例如:
CREATE VIEW deptmgr AS
SELECT emp_fname, emp_lname, dept_name
FROM employee, department
WHERE dept_head_id = emp_id;
修改视图 :
要先删除它,然后再重建。但要注意保留对该视图的访问权
ALTER VIEW 语句与 CREATE VIEW相似
例如:
ALTER VIEW deptmgr AS SELECT emp_fname, emp_lname, dept_name, salary FROM employee, department WHERE dept_head_id = emp_id;
删除视图 :
DROP VIEW deptmgr;
小 结:
1、关系模型.是把数据库看成一个独立于应用和文件系统的实体和结构.
2、主键保证数据库表中的每一行是唯一的。而外键是用来定义表之间的联系.
3、索引的作用是加快对表数据的检索速度.
4、空值代表“未知”,它不同于零和空格.
5、视图是个逻辑的(虚的)表,它的数据派生于一个或多个基表或其它的视图.
6、表,索引和视图都是利用 SQL 数据定义语言 (DDL)来建立的。
7、实体完整性强制实现表中没有两行包含全同的值.
8、参照完整性强制在主键与外键之间保持着合理的连接.
jazy 回复于:2003-02-23 16:16:15
操纵数据:
目 标
1、构造基本的 SELECT, INSERT, UPDATE 和 DELETE 语句。
2、熟悉 Adaptive Server Anywhere支持的主要内置函数。
3、解释连接( join)操作的内涵
4、解释连接操作如何完成
5、解释Adaptive Server Anywhere中所支持的 KEY 及 NATURAL JOIN (自然连接)
6、说明外连接( outer join)所产生的结果
7、解释合并(union)操作的内涵
8、解释子查询的内涵
9、利用批量 INPUT 及OUTPUT函数对表数据进行装入和卸出
10、利用 LOAD 和 UNLOAD 对整个数据库进行装入和卸出
内 容
1、SQL 数据操纵语言(DML)
2、基本的数据操纵语句
3、内置函数
4、对多表数据进行操纵
5、输入和输出表数据
6、卸载和重新装入数据库
SQL 数据操纵语言 :
用于读出,增加,删去或修改数据。
它们大多是在前端应用中被使用,或是独立地执行或是嵌在基于Web的应用中。
缺省情况下,Adaptive Server Anywhere 使用 Watcom SQL方言
在版本 6.0 及 7.0中还支持 Sybase T-SQL语法
基本的数据操纵语句 :
SELECT— 由数据库检索数据
INSERT —向数据库增加数据
UPDATE —对数据库中数据进行修改
DELETE —从数据库中删除数据
利用附加的动词,子句和函数能使功能更完善。
SELECT:
操纵对象可以是表或视图
要求读取满足特定条件的数据
用户必须具有SELECT 权限
基本语法
SELECT [DISTINCT] select-list FROM table-list WHERE search-conditions ORDER BY column-list [DESC]
INSERT:
向表中插入数据 ,一次插入一行,对某几列或所有列插入数据
用户必须具有对该表的 INSERT 权限
基本语法
INSERT [INTO] table-name
[column-name,…] VALUES (expression | DEFAULT, …)
INSERT NULL 和 DEFAULT 值 :
— 插入NULL 值:
INSERT INTO department
VALUES (123, 'Accounting', NULL);
— 插入 DEFAULT 值
INSERT INTO sales_order
(id, cust_id, order_date, fin_code_id, region, sales_rep)
VALUES (987, 65432, DEFAULT,
'ax', 'SEUSA', 196);
注: 在插入时必须使用 NULL 或 DEFAULT
对任何给出名的列都不能忽略其值
对于并未明确给出列名的列无须指定其值
多行插入:
把一个 SELECT 语句的结果集插入到表中
语法
INSERT [INTO] table-name [column-list] SELECT…;
实例
INSERT INTO former_employees
SELECT * FROM employee
WHERE termination_date IS NOT NULL;
UPDATE:
对表中的数据进行更新 ,用 SET子句指定新的值 ,用 WHERE 子句确定要被修改的老的值
用户必须具有对该表的 UPDATE权限
基本语法
UPDATE table-list SET column-name = expression, … [WHERE search-condition]
DELETE:
从表中删去数据 ,仅删去数据本身,而不是表结构。利用 WHERE 子句确定要被删去的行
用户应具有对表的DELETE 权限
基本语法
DELETE [FROM] table-name [WHERE search-condition]
TRUNCATE(截断) :
它不会使触发器被激发
最小化写日志(基本上不写日志)
比 DELETE减少开销 ,不被复制 ,在6.0.3 版中引入选项Truncate_with_auto_commit 它能改善系统性能 ,在 8.0版针对含外键的表提供了快速截断功能
语法
TRUNCATE TABLE table-name;
实例 TRUNCATE TABLE employee;
内置函数:
用于增强 SELECT动词的功能
能够获得不是存储在用户表中的信息,类似于日期这样的系统信息,数据值的统计
函数分类 :
聚合型
数值型
字串型
日期和时间
数据类型转换
系统函数
其它类型
内置函数实例 :
获得在职的女雇员的总数,以及她们参加工作的最早及最晚日期。
SELECT COUNT(*), min(start_date),
max(start_date)
FROM employee
WHERE sex = 'F'
AND termination_date IS NULL;
GROUP BY:
与聚集函数一起使用以指定计算总计时所处的层次
为出现在该 GROUP BY 列名中每个值获得一行结果
数据分组 :
例 1 — 不分组 (在表一级求和)
SELECT COUNT(*) FROM employee;
例 2 — 列出销售代表名单及分派给他们的定单数量
SELECT sales_rep, COUNT(*) FROM sales_order GROUP BY sales_rep;
限制 GROUP BY:
利用 HAVIN子句来限制特定分组的结果集
例3 — 仅列出其定单数量多于50个的那些销售代表的信息
SELECT sales_rep, COUNT(*) FROM sales_order GROUP BY sales_rep HAVING count(*) > 50;
对列名加限制性修饰 :
如果在一个语句中要涉及到不同的表中两个同名列时,应当在列名前加上表名进行限制。
SELECT employee.id, emp_fname, emp_lname FROM employee, manager WHERE employee.id = manager.id
UNION ALL:
UNION ALL 能把两张表中的所有行(包括重复的)全部显示出来 ,它不使用临时表
实例 — 列出客户及联系人的姓名及地址清单:
SELECT fname, lname, address, city, state, zip FROM customer UNION ALL SELECT first_name, last_name, address, city, state, zip FROM contact;
子查询 :
在另一个DML 语句中含有一个或多个 SELECT语句
当一个查询需利用另一个查询的结果才能继续往下处理时,则用到子查询。
结果集中仅可包含一个列
为提高性能所有的子查询都被放入高速缓存
实例 — 列出在 1/1/94以后签单的客户
SELECT * FROM customer WHERE id IN
(SELECT cust_id
FROM sales_order
WHERE order_date > '1994/01/01') ORDER BY customer.company_name;
输入和输出数据 :
利用 INPUT 和 OUTPUT 或 LOAD 和 UNLOAD语句
快速地批量装载
一个文件 <-- --> 一个表
文件格式 :
ASCII, dBASE, dBASEII, dBASEIII, DIF, FIXED, FoxPro, Lotus, WATFILE
INPUT:
把数据从文件读出然后输入到指定的表中
基本语法 :
INPUT INTO table-name [FROM file-name | PROMPT] [BY ORDER | BY NAME] [DELIMITED BY string]
实例
INPUT INTO employee
FROM employee.imp
OUTPUT:
基本语法
SELECT…; OUTPUT TO file-name [FORMAT output-format] [DELIMITED BY string]
实例&n上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
[聊天工具 ]企业邮件系统的利器----FoxMail Server [系统软件 ]OPEN SERVER 5.0.5安装EXP300阵列柜 [系统软件 ]关于Windows2000Server的灾难恢复 [常用软件 ][网络]下载服务革命性风暴Poco Server评测 [C语言系列 ]动态创建SQL Server数据库、表、存储过程等架构信… [C语言系列 ]SQL Server到DB2连接服务器的实现 [C语言系列 ]SQL Server到SYBASE连接服务器的实现 [C语言系列 ]SQL Server到SQLBASE连接服务器的实现 [C语言系列 ]SQL Server连接VFP数据库的实现 [C语言系列 ]ASP+SQL Server之图象数据处理
教程录入:mintao 责任编辑:mintao
上一篇教程: 解决 Error 605 错误的方案 下一篇教程: [转载]PRO*C程序移植为DBLIBRARY/C程序经验谈
【字体:小 大 】【发表评论 】【加入收藏 】【告诉好友 】【打印此文 】【关闭窗口 】
注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
网友评论: (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
同类栏目
赞助链接
500 - 内部服务器错误。
500 - 内部服务器错误。
您查找的资源存在问题,因而无法显示。