sqlite :数据类型、关键词及创建、修改、删除数据表

时间:2021-06-06 22:16:22

一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种数据类型:

1.NULL:空值。
2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。
3.REAL:浮点数字,存储为8-byte IEEE浮点数。
4.TEXT:字符串文本。
5.BLOB:二进制对象。

但实际上,sqlite3也接受如下的数据类型:
 smallint 16 位元的整数。
 interger 32 位元的整数。
 decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。
 float  32位元的实数。
 double  64位元的实数。
 char(n)  n 长度的字串,n不能超过 254。
 varchar(n) 长度不固定且其最大长度为 n 的字串,n不能超过 4000。
 graphic(n) 和 char(n) 一样,不过其单位是两个字元 double-bytes, n不能超过127。这个形态是为了支援两个字元长度的字体,例如中文字。
 vargraphic(n) 可变长度且其最大长度为 n 的双字元字串,n不能超过 2000
 date  包含了 年份、月份、日期。
 time  包含了 小时、分钟、秒。
 timestamp 包含了 年、月、日、时、分、秒、千分之一秒。

datetime 包含日期时间格式,必须写成'2010-08-05'不能写为'2010-8-5',否则在读取时会产生错误!

1、创建数据表

  现在在school里创建三个数据表 school(学校)、s_class(班级)、s_student(学生)

   1)选择数据库

  sqlite>sqlite3 school.db

   2) 创建数据表

  sqlite>create table school(id integer primary key autoincrement,sname nvarchar(50),saddr nvarchar(150),sMemo nvarchar(300));

  sqilte>create table s_class(id integer primary key autoincrement,schoolid integer,sname nvarchar(50),sMemo nvarchar(300),dDate datetime);

  sqlite>create table s_student(id integer primary key autoincrement,schoolid integer,sname nvarchar(20),smobile nvarchar(30),saddr nvarchar(150),sOne nvarchar(30),sTwo nvarchar(30),sThree nvarchar(30),sFour nvarchar(30),sFive nvarchar(30));

  3)查看当前数据,查看当前数据的数据表,查看当前数据表结构

  查看当前数据库

  sqlite>.databases

  查看当前数据库表

  sqlite>.table

  查看数据表结构

  sqlite>.schema school

  修改表结构

  sqlite不能直接删除字段,能添加字段

  sqlite>alter table s_class  add column bDo int default 0;

  删除字段需要到处sql,然后再导入数据(形似mysql)

  删除数据表

  sqlite>drop table s_class;