全面掌握MS ACCESS SQL(09)
时 间:2017-12-29 16:08:33
作 者:Big Young ID:252 城市:襄阳
摘 要: 用SQL删除数据库表,即DROP TABLE语句的使用。
正 文:
第四节 用SQL删除数据库表
前面说过,表是数据库的最基本对象,数据全部存储在表中,数据库的管理与操作最终都会涉及到表的操作,表的创建、修改及删除是最常见的事情,在讨论了表的创建与修改之后,我们再来看一下表的删除问题,这个在编程中经常会用到,如过渡性的临时表,用后都是需要删除(大多数据库系统都支持在内存中创建临时表,退出时会自动释放,但ACCESS却不支持这一特性,所有的表都是在库文件中创建,都是正式表,不删除会一直存在)。
一、删除表的SQL语句的语法
Drop TABLE table_name;
参数说明:语句中的table_name是要删除的表的名称。
Drop TABLE语句用于删除表(表的结构、属性以及索引也会被删除),删除内容和定义,释放空间。简单来说就是把整个表去掉,以后要新增数据是不可能的,除非新增一个表。例如:学生管理数据中,一个班的学生数据单独放在一个表中,包括学生的各个方面的数据,表名为“class”这时用Drop TABLE class,就是把整个班移除,学生的信息数据全部都消失了。所以这里特别提醒大家删除表时一定要小心谨慎,只有确认确实是不需要的表再实施删除操作,删除时一定要先备份数据。
另外,“Drop TABLE”语句不能用于除去由“FOREIGN KEY”约束引用的表。必须先除去引用的“FOREIGN KEY”约束或引用的表。除去表时,表上的规则或默认值将解除绑定,任何与表关联的约束或触发器将自动除去。如果重新创建表,必须重新绑定适当的规则和默认值,重新创建任何触发器并添加必要的约束。在系统表上不能使用Drop TABLE语句。
二、删除表语句Drop TABLE示例
示例一,空表的删除。我们先来测试一下空白表的删除操作。首先来建立一个空表,名称为“学生”,我们用下面的SQL语句来操作:
Create TABLE 学生
(
学号 TEXT(10) PRIMARY KEY,
姓名 TEXT(4) NOT NULL,
性别 TEXT(1),
出生年月 DATETIME,
住址 TEXT(50),
电话 TEXT(11)
);
上面的语句执行后,表被创建,我们在导航窗格中可以看到名为“学生”的表,这个表中目前还没有数据任何数据,是一个真正的空白表,下面我们来测试一下对其进行删除操作:
Drop TABLE 学生;
命令运行后,“学生”表被删除,导航窗格中再看不到表名了,为了确认表确实被我们删除了,我们可以再执行一次“Drop TABLE 学生;”命令,系统会弹出一个错误提示框,告诉你“学生”表不存在。
示例二,删除有数据的表。现在我们来创建一个“客户”表,用如下语句:
Create TABLE 客户
(
编号 INTEGER NOT NULL,
姓名 TEXT(50) NOT NULL,
电话 TEXT(11),
地址 TEXT(50)
);
这时我们在导航窗格中看到了“客户”表的名字,表明表已创建。我们再来插入一些数据,用以下的语句来插入:
Insert INTO 客户 (编号,姓名,电话,地址) VALUES (1, "张三", "07103511057", "湖北襄阳东街26号");
Insert INTO 客户 (编号,姓名,电话,地址) VALUES (2, "李四", "07103511058", "湖北襄阳西东街66号");
Insert INTO 客户 (编号,姓名,电话,地址) VALUES (3, "王五", "18903511088", "湖北襄阳西东街346号");
这三条命令执行下来,表中有了三条记录,我们用查询语句证实一下:
我们用“Select * FROM 客户;”查询一下,显示结果如下表:
编号 |
姓名 |
电话 |
地址 |
1 |
张三 |
07103511057 |
湖北襄阳东街26号 |
2 |
李四 |
07103511058 |
湖北襄阳西东街66号 |
3 |
王五 |
18903511088 |
湖北襄阳西东街346号 |
这说明表中的数据是存在的,表不为空。这时我们再来删除一下看看情况是什么样的:
Drop TABLE 客户;
执行后,表被删除了,再查询,表不存在了,原来的数据也没有了。这说明“Drop TABLE”不仅删除了表的结构,也删除了附加在表上的一切特性包括其中存储的数据,这提醒我们删除表一定要慎重,一定要先备份再删除否则后果非常严重哟。
示例三,删除系统表测试。ACCESS是关系型数据库管理系统,它对自身的管理也采用了关系数据表来进行的,它的对象、属性等系统的特征都是记录在内部的表中,这些表称为系统表,由系统自动创建和维护,用户不能直接删除与修改。
我们在ACCESS系统的导航窗格中点击鼠标右键,在弹出的菜单中选择“导航选项……”命令,会弹出一个“导航选项”对话框,在此对话框中我们勾选“显示隐藏对象”和“显示系统对象”两个复选框后,再“确定”后,我们在导航窗格中会看上去许多以“MSys”开头的表,这些都系统自动创建和由系统自己维护的,我们只能查询,不能直接删除与修改,下面我们来测试一下看是不是这样。
我们在SQL视图中键入“Drop TABLE MSysAccessStorage;”并执行,我们会看到一个错误对话框出现,告诉我们“由于表‘MSysAccessStorage’ 下被别的用户或进程使用,数据库引擎无法锁定它。”这表明我们不能删除系统的表,我们再试一下:“Drop TABLE MSysACEs;”这时还是会弹出一个错误提示框,上显示“没有使用‘MSysACEs’对象的必要权限,请让系统管理员或安装此对象的人为您设置适当的权限。”我们不是不能删除系统的表。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)