4.1 SQLite 存储类型
SQLite 存储类型
| 存储类型 | 描述 |
|---|---|
| NULL | 值是一个 NULL 值。 |
| INTEGER | 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。 |
| REAL | 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。 |
| TEXT | 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。 |
| BLOB | 值是一个 blob 数据,完全根据它的输入存储。 |
4.2 创建数据库和创建表
创建了一个 COMPANY 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL
bixiaopeng@bixiaopeng db$ sqlite3 wireless.db SQLite version 3.7.13 2012-07-17 17:46:21 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL);
CREATE TABLE 是告诉数据库系统创建一个新表的关键字。CREATE TABLE 语句后跟着表的唯一的名称或标识。您也可以选择指定带有 table_name 的 database_name。
查看表是否创建成功
sqlite> .tables COMPANY
查看表的完整信息
sqlite> .schema COMPANY CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL);
4.3 插入数据
插入数据,方法一:插入对应的列的值
sqlite> INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) ...> VALUES (1, 'Paul', 32, 'California', 20000.00 );
查询是否插入成功
sqlite> SELECT * FROM COMPANY; 1|Paul|32|California|20000.0
插入数据,方法二:给所有列插入值
sqlite> INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 ); sqlite> SELECT * FROM COMPANY; 1|Paul|32|California|20000.0 7|James|24|Houston|10000.0
用第二种方法多插入几个数据:
sqlite> INSERT INTO COMPANY VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); sqlite> INSERT INTO COMPANY VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); sqlite> INSERT INTO COMPANY VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); sqlite> INSERT INTO COMPANY VALUES (5, 'David', 27, 'Texas', 85000.00 ); sqlite> INSERT INTO COMPANY VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 ); sqlite> SELECT * FROM COMPANY; 1|Paul|32|California|20000.0 7|James|24|Houston|10000.0 2|Allen|25|Texas|15000.0 3|Teddy|23|Norway|20000.0 4|Mark|25|Rich-Mond |65000.0 5|David|27|Texas|85000.0 6|Kim|22|South-Hall|45000.0
4.4 更新数据
//先插入一条数据 sqlite> INSERT INTO COMPANY VALUES (8, 'wirelessqa', 28, 'HZ', 20000.00 ); sqlite> SELECT * FROM COMPANY; ID NAME AGE ADDRESS SALARY 1 Paul 32 California 20000.0 7 James 24 Houston 10000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 8 wirelessqa 28 HZ 20000.0 //更新NAME为wirelessqa的地址为NanJing sqlite> UPDATE COMPANY SET ADDRESS = 'NanJing' WHERE NAME = 'wirelessqa'; 8 wirelessqa 28 NanJing 20000.0 //查看更新后的数据 sqlite> SELECT * FROM COMPANY WHERE NAME = 'wirelessqa'; ID NAME AGE ADDRESS SALARY 8 wirelessqa 28 NanJing 20000.0
4.5 删除数据
//删除ADDRESS为NanJing的这条数据 sqlite> DELETE FROM COMPANY WHERE ADDRESS = 'NanJing'; sqlite> SELECT * FROM COMPANY WHERE ADDRESS = 'NanJing'; sqlite>
4.6 数据查询
4.6.1. SQLite 算术运算符
运算符: + - * / %
sqlite> select 4 + 2; 6 sqlite> select 4 - 2; 2 sqlite> select 4 * 2; 8 sqlite> select 4 / 2; 2 sqlite> select 4 % 2; 0
4.6.2. SQLite 算术运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| == | 检查两个操作数的值是否相等,如果相等则条件为真。 | (a == b) 不为真。 |
| = | 检查两个操作数的值是否相等,如果相等则条件为真 | (a = b) 不为真。 |
| != | 检查两个操作数的值是否相等,如果不相等则条件为真 | (a != b) 为真。 |
| <> | 检查两个操作数的值是否相等,如果不相等则条件为真 | (a <> b) 为真。 |
| > | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (a > b) 不为真。 |
| < | 检查左操作数的值是否小于右操作数的值,如果是则条件为真 | (a < b) 为真。 |
| >= | 检查左操作数的值是否大于等于右操作数的值,如果是则条件为真 | (a >= b) 不为真。 |
| <= | 检查左操作数的值是否小于等于右操作数的值,如果是则条件为真 | (a <= b) 为真。 |
看一下表里现有的数据:
sqlite> .