大多数SQL数据库引擎使用静态类型。而SQLite使用动态类型。他们的主要的区别是:动态不用定义数据类型的长度。
序号 |
名称 |
说明 |
备注 |
1 |
NULL |
该值是一个NULL值 |
|
4 |
INTEGER |
该值是个带符号的整数,根据该值的大小在1,2,3,4,6,或8个字节的存储。 |
|
5 |
REAL |
该值是一个浮点值,存储为8字节IEEE浮点数。 |
|
6 |
TEXT |
该值是一个文本字符串,使用数据库编码(UTF-8,UTF-16BE或UTF-16LE)。 |
对应于char、varchar、varchar2 |
7 |
BLOB |
该值是一个存储blob的数据。 |
|
注:
1. 布尔类型的数据,请使用Integer;把相应的值设置为0(false)或1(true)即可。
2. 日期和时间类型的数据
(1) 使用Text
例如:ISO8601("YYYY-MM-DD HH:MM:SS.SSS")。
(2) 使用Real
例如:儒略天数(天文学使用)
(3) 使用Integer
例如:Unix时间(起始1970-01-0100:00:00 UTC)
-------------------------------------------------------转载请注明:xiaobin_hlj80----
我们以联系人管理为例子,来设计一个以联系人为核心表的若干数据表。
这个图表是根据PowerDesgner16.1的CDM创建的。
在使用的时候需要注意两点:
1. 在CDM中设置主键时
Tool->Model Options...
选中Category中的“Model Settings”,在“Data Item”中的“Unique code”取消勾选。
2. 在CDM->PDM时
Tool->Check Model...
在Options选项卡中,去掉“Entity Attribute”勾选
请看下图:
我们使用SQLite Manager来建数据库与数据表。
我使用的firefox当前版本为V15.0.1。
SQLite Manager当前的版本为V0.7.7。
关于:SQLite Manager是一个firefox的一个插件。可以在firefox的Add-ons搜索到,正常安装这个插件即可。
根据PDM的数据表,如下图:
PowerDesigner现在还不支持SQLite,不过只要我们生成兼容SQL92的SQL语句即可。
生成SQL文件:
/*==============================================================*/ /* DBMS name: MySQL 5.0 */ /* Created on: 2012-9-19 10:35:37 */ /*==============================================================*/ drop table if exists ContactPerson; drop table if exists ContactWay; drop table if exists FamilyInfo; drop table if exists IM; drop table if exists bloodDict; drop table if exists compInfo; drop table if exists diplomaDict; drop table if exists faithDict; drop table if exists nationDict; drop table if exists politicalDict; drop table if exists sexDict; drop table if exists statureDict; drop table if exists telephoneComp; /*==============================================================*/ /* Table: ContactPerson */ /*==============================================================*/ create table ContactPerson ( firstName text, middName text, lastName text, aliasName text, birthday date, sex int, nation int, stature int, bloodType int, bodyWeight text, diploma int, endSchool text, political int, faith int, govLabour int, personID text not null, compID int, familyID int, primary key (personID) ); /*==============================================================*/ /* Table: ContactWay */ /*==============================================================*/ create table ContactWay ( email text, mobilePhone text, contactID int not null, personID text, primary key (contactID) ); /*==============================================================*/ /* Table: FamilyInfo */ /*==============================================================*/ create table FamilyInfo ( peopleCount int, state text, province text, city text, postalCode text, streetAddr text, telephones int, familyID int not null, personID text, primary key (familyID) ); /*==============================================================*/ /* Table: IM */ /*==============================================================*/ create table IM ( msnID text, qqID text, momoID text, miliaoID text, weixinID text, imID int not null, contactID int, primary key (imID) ); /*==============================================================*/ /* Table: bloodDict */ /*==============================================================*/ create table bloodDict ( id int not null, name text, primary key (id) ); /*==============================================================*/ /* Table: compInfo */ /*==============================================================*/ create table compInfo ( name text, state text, province text, city text, postalCode text, address text, homepage text, department text, telephones int, fax int, duties text, compID int not null, personID text, primary key (compID) ); /*==============================================================*/ /* Table: diplomaDict */ /*==============================================================*/ create table diplomaDict ( id int not null, name text, primary key (id) ); /*==============================================================*/ /* Table: faithDict */ /*==============================================================*/ create table faithDict ( id int not null, name text, primary key (id) ); /*==============================================================*/ /* Table: nationDict */ /*==============================================================*/ create table nationDict ( id int not null, name text, primary key (id) ); /*==============================================================*/ /* Table: politicalDict */ /*==============================================================*/ create table politicalDict ( id int not null, name text, primary key (id) ); /*==============================================================*/ /* Table: sexDict */ /*==============================================================*/ create table sexDict ( id int not null, name text, primary key (id) ); /*==============================================================*/ /* Table: statureDict */ /*==============================================================*/ create table statureDict ( id int not null, name text, primary key (id) ); /*==============================================================*/ /* Table: telephoneComp */ /*==============================================================*/ create table telephoneComp ( id int not null, compID int, name text, primary key (id) ); alter table ContactPerson add constraint FK_FK_ContactPerson_FamilyInfo foreign key (familyID) references FamilyInfo (familyID) on delete restrict on update restrict; alter table ContactPerson add constraint FK_FK_ContactPerson_compInfo foreign key (compID) references compInfo (compID) on delete restrict on update restrict; alter table ContactWay add constraint FK_FK_ContactPerson_ContactWay foreign key (personID) references ContactPerson (personID) on delete restrict on update restrict; alter table FamilyInfo add constraint FK_FK_ContactPerson_FamilyInfo foreign key (personID) references ContactPerson (personID) on delete restrict on update restrict; alter table IM add constraint FK_FK_ContactWay_IM foreign key (contactID) references ContactWay (contactID) on delete restrict on update restrict; alter table compInfo add constraint FK_FK_ContactPerson_compInfo foreign key (personID) references ContactPerson (personID) on delete restrict on update restrict; alter table telephoneComp add constraint FK_FK_compInfo_telephoneComp foreign key (compID) references compInfo (compID) on delete restrict on update restrict;
/*==============================================================*/ /* DBMS name: SQLite 3.7.14 */ /* Created on: 2012-9-19 */ /*==============================================================*/ drop table if exists ContactPerson; drop table if exists ContactWay; drop table if exists FamilyInfo; drop table if exists IM; drop table if exists bloodDict; drop table if exists compInfo; drop table if exists diplomaDict; drop table if exists faithDict; drop table if exists nationDict; drop table if exists politicalDict; drop table if exists sexDict; drop table if exists statureDict; drop table if exists telephoneComp; /*==============================================================*/ /* Table: ContactPerson */ /*==============================================================*/ create table ContactPerson ( firstName TEXT, middName TEXT, lastName TEXT, aliasName TEXT, birthday TEXT, sex INTEGER, nation INTEGER, stature INTEGER, bloodType INTEGER, bodyWeight TEXT, diploma INTEGER, endSchool TEXT, political INTEGER, faith INTEGER, govLabour INTEGER, personID TEXT not null, compID INTEGER, familyID INTEGER, primary key (personID), foreign key (compID) references compInfo(compID) foreign key (familyID) references familyInfo(familyID) ); /*==============================================================*/ /* Table: ContactWay */ /*==============================================================*/ create table ContactWay ( email TEXT, mobilePhone TEXT, contactID INTEGER not null, personID TEXT, primary key (contactID), foreign key (personID) references ContactPerson(personID) ); /*==============================================================*/ /* Table: FamilyInfo */ /*==============================================================*/ create table FamilyInfo ( peopleCount INTEGER, state TEXT, province TEXT, city TEXT, postalCode TEXT, streetAddr TEXT, telephones INTEGER, familyID INTEGER not null, personID TEXT, primary key (familyID), foreign key (personID) references ContactPerson(personID) ); /*==============================================================*/ /* Table: IM */ /*==============================================================*/ create table IM ( msnID TEXT, qqID TEXT, momoID TEXT, miliaoID TEXT, weixinID TEXT, imID INTEGER not null, contactID INTEGER, primary key (imID), foreign key (contactID) references ContactWay(contactID) ); /*==============================================================*/ /* Table: bloodDict */ /*==============================================================*/ create table bloodDict ( id INTEGER not null, name TEXT, primary key (id) ); /*==============================================================*/ /* Table: CompInfo */ /*==============================================================*/ create table CompInfo ( name TEXT, state TEXT, province TEXT, country TEXT, postalCode TEXT, address TEXT, homepage TEXT, department TEXT, telephones INTEGER, fax INTEGER, duties TEXT, compID INTEGER not null, personID TEXT, primary key (compID), foreign key (personID) references ContactPerson(personID) ); /*==============================================================*/ /* Table: diplomaDict */ /*==============================================================*/ create table diplomaDict ( id INTEGER not null, name TEXT, primary key (id) ); /*==============================================================*/ /* Table: faithDict */ /*==============================================================*/ create table faithDict ( id INTEGER not null, name TEXT, primary key (id) ); /*==============================================================*/ /* Table: nationDict */ /*==============================================================*/ create table nationDict ( id INTEGER not null, name TEXT, primary key (id) ); /*==============================================================*/ /* Table: politicalDict */ /*==============================================================*/ create table politicalDict ( id INTEGER not null, name TEXT, primary key (id) ); /*==============================================================*/ /* Table: sexDict */ /*==============================================================*/ create table sexDict ( id INTEGER not null, name TEXT, primary key (id) ); /*==============================================================*/ /* Table: statureDict */ /*==============================================================*/ create table statureDict ( id INTEGER not null, name TEXT, primary key (id) ); /*==============================================================*/ /* Table: TelephoneComp */ /*==============================================================*/ create table TelephoneComp ( id INTEGER not null, compID INTEGER, name TEXT, primary key (id), foreign key (compID) references compInfo(compID) );