NULL: 空值 INTEGER: 整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8个字节 REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号 TEXT: 文本,值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE). BLOB: 值是BLOB数据,如何输入就如何存储,不改变格式 SQL语句中部分的带双引号或单引号的文字被定义为文本,如果文字没带引号并没有小数点或指数则被定义为整数,如果文字没带引号但有小数点或指数则被定义为实数,如果值是空则被定义为空值,BLOB数据使用符号X'ABCD'来标识。smallint 16位的整数。 interger 32位的整数。 decimal(p,s) 精确值p是指全部有几个十进制数,s是指小数点后可以有几位小数。如果没有特别指定,则系统会默认为p=5 s=0 。 float 32位元的实数。 double 64位元的实数。 char(n) n 长度的字串,n不能超过 254。 varchar(n) 长度不固定且其最大长度为 n 的字串,n不能超过 4000。 graphic(n) 和 char(n) 一样,不过其单位是两个字节, n不能超过127。这个形态是为了支持两个字节长度的字体,如中文字。 vargraphic(n) 可变长度且其最大长度为n的双字元字串,n不能超过2000 date 包含了 年份、月份、日期。 time 包含了 小时、分钟、秒。 timestamp 包含了 年、月、日、时、分、秒、千分之一秒。
3、表操作
建立表create table table_name(field type1,fieldtype1,….);table_name是要创建数据表的名称,field是数据库表内字段名字,type则是字段类型。例如:CREATE TABLE student( ID INTEGER PRIMARY KEY, LastName varchar(255), FirstName varchar(255));删除表DROP TABLE tableName;查看表SELECT * FROM tablename WHERE someField = 'value' COLLATE NOCASE;
4、字段操作
A、向表中添加新记录insert into tabelname values (value1, value2,…);实例:insert into people values(1,'A',10);insert into people values(2,'B',13);insert into people values(3,'C',9);insert into people values(4,'C',15);insert into people values(5,NULL,NULL);字符串要用单引号括起来B、查询表中所有记录select * from tablename ;实例: select * from people;按某个字段查询表中没有重复的条目SELECT distinct someField FROM tableC、按指定条件查询表中记录select * from tablename where field=value;实例:在表中搜索名字是A的项所有信息select * from people where name='A';在表中搜索年龄>=10并且<=15的项的所有信息 select * from people where age>=10 and age<=15;在表中搜索名字是C的项,显示其name和ageselect name,age from people where name='C';显示表中的前2项所有信息 select * from people limit 2;显示以年龄排序表中的信息 select * from people order by age;D、按指定条件删除表中记录delete from where 实例:删除表中名字是'C'的项delete from pople where name='C';E、更新表中记录update set , … where ; 实例:将表中年龄是15并且ID是4项,名字改为CYGupdate people set name='CYG' where id=4 and age=15;用一张表TableB里的一个字段fieldB内容给另外一张表TableA里的一个字段fieldA赋值:UPDATE TableA SET fieldA = TableB.fieldB如果是同一张表TableA中,用一个字段field1的值给表中的另外一个字段field2值赋值:UPDATE TableA SET field2 = field1如果需要把一个字符串('someString')和一个字段field1的值进行连接,然后赋值给一个字段field2:UPDATE TableA SET field2 = field1 || 'someString'F、在表中添加字段alter table add column ;实例:在people表中添加一个addr字段alter table people add column addr;G、删除表中的一个字段删除people表中字段addr,操作流程如下:将people表重命名为temp重新创建people表将temp表中的相应字段内容复制到people表中删除temp表SQL语句如下:alter table people rename to temp;create table people(id,name,age);insert into people select id,name,age from temp;drop table temp;H、表的导入把一张表TableA里的数据导入到另外一张表TableB中(两张表中的结构和字段必须一样):INSERT INTO TableB SELECT * FROM TableA
5、分组统计
CREATE TABLE COMPANY(ID INT NOT NULL, NAME VARCHAR(20),AGE INT,ADDRESS VARCHAR(20),SALARY DECIMAL(7,2));GROUP BY 进行分组统计数据,命令如下: SELECT NAME, SUM(SALARY) SALARY_SUM, COUNT(1) COUNT_NUM FROM COMPANY GROUP BY NAME;
6、排序
ORDER BY 进行排序,命令如下: SELECT NAME, SUM(SALARY) SALARY_SUM, COUNT(1) COUNT_NUM FROM COMPANY GROUP BY NAME ORDER BY SALARY_SUM ASC;