菜单

ubuntu下采取SQLite3的骨干命令

2018年11月16日 - sqlite

参考资料:
http://www.sqlite.com.cn/MySqlite/4/378.Html

#apt-get install sqlite3

);

1)建立数据表
create table table_name(field1 type1, field2 type1, ...);
table_name是要创建数据表名称,fieldx是数据表内字段名称,typex则是字段类型。
例,建立一个简单的学生信息表,它包含学号与姓名等学生信息:
create table student_info(stu_no interger primary key, name text);

2)添加数据记录
insert into table_name(field1, field2, ...) values(val1, val2, ...);
valx为需要存入字段的值。
例,往学生信息表添加数据:
Insert into student_info(stu_no, name) values(0001, alex);

3)修改数据记录
update table_name set field1=val1, field2=val2 where expression;
where是sql语句中用于条件判断的命令,expression为判断表达式
例,修改学生信息表学号为0001的数据记录:
update student_info set stu_no=0001, name=hence where stu_no=0001;

4)删除数据记录
delete from table_name [where expression];
不加判断条件则清空表所有数据记录。
例,删除学生信息表学号为0001的数据记录:
delete from student_info where stu_no=0001;

5)查询数据记录
select指令基本格式:
select columns from table_name [where expression];
a查询输出所有数据记录
select * from table_name;
b限制输出数据记录数量
select * from table_name limit val;
c升序输出数据记录
select * from table_name order by field asc;
d降序输出数据记录
select * from table_name order by field desc;
e条件查询
select * from table_name where expression;
select * from table_name where field in ('val1', 'val2', 'val3');
select * from table_name where field between val1 and val2;
f查询记录数目
select count (*) from table_name;
g区分列数据
select distinct field from table_name;
有一些字段的值可能会重复出现,distinct去掉重复项,将列中各字段值单个列出。

6)建立索引
当说数据表存在大量记录,索引有助于加快查找数据表速度。
create index index_name on table_name(field);
例,针对学生表stu_no字段,建立一个索引:
create index student_index on student_table(stu_no);
建立完成后,sqlite3在对该字段查询时,会自动使用该索引。

7)删除数据表或索引
drop table table_name;
drop index index_name;

sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);      
          // 长整型数据

 
3、sqlite3指令
sql的下令格式:所有sql指令都是坐分公司(;)结尾,两独减号(–)则意味着注释。
如:

int sqlite3_step(sqlite3_stmt*);                    //
如果查询及一行数,就见面回SQLITE_ROW

sqlite>.database

   SELECT * FROM
t_person WHERE age < 100 ORDER
BY age DESC, name ASC; // 先随年龄降序,再依名升序。  

 
翻指定表的创始语句:

|总结 

3.3 sqlite3时时因此命令

    UPDATE t_person SET
age = 12 WHERE name = ‘小明’; //
把表中name字段值是小明的age值改吧12。  

 
翻开数据库文件信息命令(注意命令前带字符’.’):

特点:不区分轻重缓急写,每条语句后加”;”结尾。

#sqlite3 test.db

 

#sqlite3 -version

1、导入libsqlite3.dylib库,包含头文件#import <sqlite3.h>。

该语句创建一个记下学生信息的数据表。
 
3.1 sqlite3存储数据的型
NULL:标识一个NULL值
INTERGER:整数品类
REAL:浮点数
TEXT:字符串
BLOB:二前进制数

不时因此术语表(table)、字段(column,列,属性)、记录(row,record)。

1、安装sqlite3
ubuntu下安装sqlite3直接当极端运行命令:

   SELECT count(name)
FROM t_person ren WHERE ren.age > 80; 

网平台:ubuntu10.04

   SELECT * FROM
t_person WHERE age < 80; 

翻版本信息:

   DELETE FROM
t_person WHERE age = 25; //
删除表中字段age等于25底当即长长的记下。 

查阅所有表的创造语句:

简介
sqlite3相同暂缓重要用于嵌入式的轻量级数据库,本文旨在为熟悉sqlite3基本命令提供技术文档。
     备注:本文所有操作都于root用户下进行。

   SELECT count(*)
FROM t_person ren WHERE ren.age > 80; 

3.2 sqlite3储存数据的律规范
Sqlite常用约束原则如下:
PRIMARY KEY – 主键:
1)主键的值必须唯一,用于标识每一样长达记下,如学员的学号
2)主键同时也是一个目录,通过主键查找记录速度比快
3)主键如果是整数类型,该列的价值好自动增长
NOT NULL – 非空:
格列记录不可知啊空,否则报错
UNIQUE – 唯一:
除开主键外,约束其他列的数码的值唯一
CHECK – 条件检查:
格该列的价必须符合条件才不过存入
DEFAULT – 默认值:
列数据被的价值基本还是平的,这样的字段列可若为默认值

   SELECT t.name
t_name, t.age t_age, tc.name c_name FROM t_student t, t_class tc
WHERE t.class_id = tc.id; //
查询所有学员对应的班级 

以sql语句的形式列出表内容:
sqlite>.dump table_name

设置显示信息的分隔符:
sqlite>.separator symble
Example:设置显示信息以‘:'分隔
sqlite>.separator :

设置显示模式:
sqlite>.mode mode_name
Example:默认为list,设置为column,其他模式可通过.help查看mode相关内容
sqlite>.mode column

输出帮助信息:
sqlite>.help

设置每一列的显示宽度:
sqlite>.width width_value
Example:设置宽度为2
sqlite>.width 2

列出当前显示格式的配置:
sqlite>.show

退出sqlite终端命令:
sqlite>.quit
或
sqlite>.exit

      int nByte,                                            //
SQL语句之极端充分字节长度

 
2 、sqlite3常用命令
当前目录下起或者打开test.db数据库文件,并跻身sqlite命令终端,以sqlite>前缀标识:

sqlite>create studen_table(Stu_no interger PRIMARY KEY, Name text NOT NULL, Id interger UNIQUE, Age interger CHECK(Age>6), School text DEFAULT 'xx小学);

关键字:select、insert、update、delete、from、creat、where、desc、order、by、group、table、alter、view、index等,数据库中无可知下要字命名表和字段。

sqlite>.schema table_name

实际SQLite是无类型的,建表时声称的种类是为便利程序员之间的交流,是同样种可以的编程规范。

sqlite>.schema

乃可能感兴趣的篇章:

    const char *filename,                              //
数据库的文本路径

   DELETE FROM
t_person WHERE age > 12 AND age
< 15; //
删除表中年龄超过12都小于15之笔录。 

   DELETE FROM
t_person; // 删除表中的保有记录。 

   SELECT name, age
nianling FROM t_person ren WHERE ren.age > 80 AND nianling < 90; 

3.反省SQL语句之合法性(查询前的备)

   SELECT name, age
FROM t_person WHERE age < 80; 

   SELECT * FROM
t_person WHERE name like ‘%明%’; 

const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
     // 字符串数据

 

    sqlite3*,                                                  //
一个开拓的数据库实例 

仓储类型:integer(整型)、real(浮点型)、text(文本字符串)、blob(二进制数据)。

|SQLite3简介 

 

    sqlite3_stmt **ppStmt,                          //
sqlite3_stmt实例,用来博数据库数据

    const char *sql,                                       //
需要执行的SQL语句

数码定义语句(DDL:Data Definition
Language)

   CREATE TABLE IF NOT
EXISTS t_person (id integer
PRIMARY KEY AUTOINCREMENT, name text NOT NULL, age integer NOT
NULL); 

   SELECT * FROM
t_person WHERE age < 100 ORDER
BY age DESC, name ASC LIMIT 3,
5; //
先筛选,后排序,再分页。 

 

|SQLite3的使用 

4.查询一行数

4、执行回数据的SQL语句(查)。

    const char **pzTail

 

 

数量查询语句(DQL:Data Query
Language)

    const char *zSql,                                   //
需要检讨的SQL语句

  CREATE TABLE IF NOT
EXISTS t_class (id integer PRIMARY
KEY AUTOINCREMENT, name text NOT NULL UNIQUE);

   CREATE TABLE IF NOT
EXISTS t_student (id integer
PRIMARY KEY AUTOINCREMENT, name text NOT NULL, age integer NOT NULL,
class_id integer NOT NULL, CONSTRAINT fk_student_class FOREIGN KEY
(class_id) REFERENCES t_class(id)); 

    sqlite3 **ppDb                                       // 数据库实例

1.打开数据库

);

数码操作语词(DML:Data Manipulation
language)

   DROP TABLE IF EXISTS
t_person; 

2.执行外SQL语句

   SELECT * FROM
t_student WHERE class_id = (SELECT id FROM t_class WHERE name = ‘四班’); // 查询四班的持有学员

    UPDATE t_person SET
name = ‘小明’, age = 10; //
把表中name字段的价值周转移化小明,age字段的价周改成为10。  

   CREATE TABLE IF NOT
EXISTS t_person (id integer
PRIMARY KEY AUTOINCREMENT, name text NOT NULL UNIQUE, age integer NOT
NULL DEFAULT 30); 

5.用stmt获得有平等字段的价值(字段的下标从0开始)

int sqlite3_column_int(sqlite3_stmt*, int iCol);                    
              // 整型数据

int sqlite3_open(

外键:用外键约束好为此来树表及申内的关系,一般是一模一样张表的某字段,引用在其它一样张表的主键的字段。

);

SQLite3只是一个轻型的嵌入式数据库引擎,占用资源非常低,处理速度比Mysql还抢,专门用来移动装备上开展适宜的数量存取,它就是一个文书,不欲服务器进程。

2、打开或者创造数据库。

5、关闭数据库:sqlite3_close(db)。

|SQL(structured
query language)语句 

字段约束:

    void *,                                                   //
回调函数的第1个参数

   INSERT INTO
t_person (name, age) VALUES (‘大明’, 22); 

    int (*callback)(void*,int,char**,char**),   //
SQL语句执行了后底回调

    sqlite3 *db,                                           //
数据库实例

const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);          
         // 二前进制文本数

int sqlite3_exec(

3、执行不返数据的SQL语句。

    char **errmsg                                        // 错误信息

double sqlite3_column_double(sqlite3_stmt*, int iCol);              
         // 浮点数据

int sqlite3_prepare_v2(

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图