使用 TRUNCATE TABLE 删除所有行,若要删除表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。
该语句总是比不带条件的 DELETE 语句要快,因为 DELETE 语句要记录对每行的删除 *** 作,而 TRUNCATE TABLE 语句只记录整个数据页的释放。TRUNCATE TABLE 语句立即释放由该表的数据和索引占用的所有空间。所有索引的分发页也将释放。
与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义,同其索引和其它相关的对象一起仍保留在数据库中。
必须使用 DROP TABLE 语句才能除去表的定义。
1 创建新数据库
connect 'jdbc:derby:mydb;create=true';
ij> connect 'jdbc:derby:mydb;create=true';
ij>
将在当前目录下建立数据库目录 mydb;如果已经存在数据库 mydb,则提示:
警告 01J01:未创建数据库"mydb",而是建立到现有数据库的连接。
ij> connect 'jdbc:derby:mydb;create=true';
警告 01J01:未创建数据库"mydb",而是建立到现有数据库的连接。
ij>
2 创建新表/删除表
create table mytable(number varchar(4), name varchar(10), age int, address varchar(40));
ij> create table mytable(number varchar(4), name varchar(10), age int, address varchar(40));
已插入/更新/删除 0 行
ij>
现代数据库一般都支持CHAR与VARCHAR字符型字段类型,CHAR是用来保存定长字符,存储空间的大小为字段定义的长度,与实际字符长度无关,当输入的字符小于定义长度时最后会补上空格。VARCHAR是用来保留变长字符,在数据库中存储空间的大小是实际的字符长度,不会像CHAR一样补上空格,这样占用的空间更少。
从以上特点来看,VARCHAR比CHAR有明显的优势,因此大部份数据库设计时都应该采用VARCHAR类型。那为什么还需要CHAR类型呢,个人认为有以下几个原因:
1、为了跟以前版本的数据库进行一个兼容,因为很久以前数据库只支持CHAR类型,有些应用的业务逻辑也只是针对CHAR类型设计的,所以数据库软件也就一直保留CHAR类型。
2、CHAR类型是定长的,一些数据库可以在每条记录中不存储字段长度信息,这样可以节省部份空间,也可以方便做一些内存对齐提高性能,但个人认为这带来的性能提升非常微小,至少ORACLE数据库是没有意义的。
3、还有说法是有些数据经常修改,长度可能变化,会引起碎片,采用CHAR就不会产生碎片,这个说法比较多,但我认为既然长度会变化,那用VARCHAR更能节省内存与存储空间来提升性能,只要数据块预留的空间没有问题,采用VARCHAR性能更好。
对于ORACLE数据库,我找不到充足的理由来使用CHAR类型,而且CHAR还会带来讨厌的空格,有些文章说MYSQL的MYISAM存储引擎在和长度固定的情况下CHAR比VARCHAR好,这个没有测试过,不太了解。
以上就是关于derby中如何删除数据库全部的内容,包括:derby中如何删除数据库、如何确定derby数据库的数据文件位置、Derby 数据库 用什么字段来存取 大字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)