首先说说怎么用SQL语句创建数据库,创建数据库的语句有如下几种:
1. CREATE TABLE(创建新表)
2. CREATE INDEX(增加索引)
3. DROP INDEX(删除索引)
4. CONSTRAINT(约束语句)
5. ALTER TABLE(修改表)
6. DROP TABLE(删除表)
CREATE TABLE语句:
在数据库中生成新表,表中字段的类型能够为:INTEGER(整型)、LONG(长整型)、 SINGLE(单精度浮点数)、DOUBLE(双精度浮点数)、DATETIME(日期型,也能够写成DATE)、BIT(布尔型)、 TEXT(字符串型,最大255个字节)、MEMO(字符串型,最大可达1.2G字节)、 COUNTER(自动递增长整型,可确定记录的唯一性)、CURRENCY(货币型,精确到小数点左边15位,右边4位)、 BINARY(字节型,最大255个)、LONGBINARY(用于OLE对象)、GUID(全局唯一标识符)。
生成表NewTable,该表有文本字段Field1和整型字段Field2,表名和字段名能够随便您取,不区分大小写,但是,有些保留字不能用作表名字段名,比如Number
CREATE TABLE NewTable(Field1 TEXT(30), Field2 INTEGER);
CREATE INDEX语句:
INDEX是为了加快查找记录的速度,或是为了增加字段约束关系而配置的。
创建索引语句执行前表中能够有记录,但存在的记录必须满足该索引语句的约束关系,否则语句不能执行,另外要注意的是在同一个数据库中(而不但仅是在同一个表中),索引名不能相同,否则语句也会失败。
生成字段Field1的索引字段NewIndex,两条语句作用相同
生成后Field1字段能够有相同的值,能够有空值(NULL)
CREATE INDEX NewIndex ON NewTable (Field1);
CREATE INDEX NewIndex ON NewTable (Field1) WITH IGNORE NULL;
生成字段Field1的索引字段NewIndex,注意,每个表里只能有一个主索引(PRIMARY)。生成后Field1字段不能有相同的值,不能有空值(当然,假如是TEXT类型,能够有一个空串,但是空串不是空值)
CREATE INDEX NewIndex ON NewTable(Field1) WITH PRIMARY;
字段Field1不能有相同的值,但能够有空值(两个空值不算相同的值)
CREATE UNIQUE INDEX NewIndex ON NewTable(Field1);
字段Field1能够有相同的值,但不能有空值
CREATE INDEX NewIndex ON NewTable(Field2) WITH DISALLOW NULL
能够在索引语句中加入ASC(升序)或DESC(降序)来控制记录排列顺序假如不使用顺序字,SQL则默认使用ASC顺序
CREATE INDEX NewIndex ON NewTable(Field1 ASC, Field2 DESC);
DROP INDEX语句:
删除表NewTable中的索引NewIndex,语句执行前索引NewIndex必须存在
DROP INDEX NewIndex ON NewTable;
CONSTRAINT语句:
CONSTRAINT子句用于创建数据库完整性的索引,他和INDEX语句作用相同,有些地方能够互相替代,他能够使用PRIMARY KEY(主关键字),UNIQUE(唯一)和FOREIGN KEY(外部关键字),和INDEX相比不能使用IGNOR NULL和DISALLOW NULL,但多了FOREIGN KEY(这也是他最强大的地方)。另外, CONSTRAINT语句必须和CREATE TABLE或ALTER TABLE语句一起使用。
生成表NewTable,主关键字段是Field1,主索引是NewPK
CREATE TABLE NewTable(Field1 LONG CONSTRAINT NewPK PRIMARY KEY, Field2 MEMO, Field3 DATETIME);
生成索引为NewUK的表NewTable,Field1不能有相同值,能够有空值
CREATE TABLE NewTable(Field1 INTEGER CONSTRAINT NewUK UNIQUE);
生成多列的主索引,两条记录的Field1和Field2不能全部相同,也不能为空值
CREATE TABLE NewTable(Field1 INTEGER, Field2 CURRENCY, CONSTRAINT NewPK PRIMARY KEY(Field1, Field2));
生成多列的UNIQUE索引,两条记录的Field1和Field2不能全部相同注意,假如两条记录其中一个字段相同而另一个字段都是空值,那也算两个字段不同
CREATE TABLE NewTable(Field1 INTEGER, Field2 CURRENCY, CONSTRAINT NewUK UNIQUE(Field1, Field2));
要在几个不同的表之间建立联系,就要使用FOREIGN KEY REFERENCES子句,他能够限定某个表的字段内容必须存在于另外一个表中。
第一个例子:
首先,生成主关键字段为Field1的表NewTable1
CREATE TABLE NewTable1(Field1 INTEGER CONSTRAINT NewPK PRIMARY KEY);
然后,再生成外部索引,两个表的Field1必须类型相同,并且第一个表的Field1是主关键字段或UNIQUE字段。生成外部索引后,表NewTable2要增加记录,他的Field1字段值必须已存在于表NewTable1的Field1字段中。
下面两条语句作用相同,因为Field1是NewTable1的主关键字段,能够省略不写
CREATE TABLE NewTable2(Field1 INTEGER CONSTRAINT NewFK REFERENCES NewTable1);
CREATE TABLE NewTable2(Field1 INTEGER CONSTRAINT NewFK REFERENCES NewTable1(Field1));
第二个例子:
首先,生成主关键字段为Field1和Field2的表NewTable1
CREATE TABLE NewTable1(Field1 INTEGER, Field2 TEXT(20), CONSTRAINT NewPK PRIMARY KEY(Field1, Field2));
然后,生成多列外部索引
CREATE TABLE NewTable2(Field1 INTEGER, Field2 TEXT(20), CONSTRAINT NewFK FOREIGN KEY(Field1, Field2) REFERENCES NewTable1(Field1, Field2));
ALTER TABLE语句:
在表生成之后,假如想修改表的结构,就使用这条语句,他能增加或删除字段连同约束关系。
给表NewTable增加日期型字段Field3,语句执行前表NewTalbe必须没有字段Field3
ALTER TABLE NewTable ADD COLUMN Field3 DATE;
删除表NewTable中的字段Field3,语句执行前字段Field3必须存在表NewTable中
ALTER TABLE NewTable DROP COLUMN Field3;
给表NewTable增加NewUK约束关系
ALTER TABLE NewTable ADD CONSTRAINT NewUK UNIQUE(Field1,Field2);
删除表NewTable的NewUK约束关系
ALTER TABLE NewTable DROP CONSTRAINT NewUK;
DROP TABLE语句:
删除表NewTable,语句执行前表NewTable必须存在
DROP TABLE NewTable;
用SQL创建数据库
来源:互联网
作者:west263.com
时间:2008-04-02
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD

