(1)第一种方式:sqlite3 databaseName.db --直接创建数据库
(2)第二种方式:**.open** databaseName.db --如果数据库不存在,就创建之后打开它
创建成功之后,可以使用.databases 来查看是否在数据库列表中
.databases
**attach database** 'test.db' as 'test'; ------记得一定要加分号;,否则sqlite认为命令没有结束
如果分离已连接的数据库,则使用**detach database** 'test'; ----同样记得加分号;
(1) **create table** test.tbl1(id INT,name text, address text); -----创建一张表
创建之后可以使用**.tables** 查看是否创建成功 ;
使用.schema table_name 查看完整的表的信息;
drop table table_name; -------记得一定要加分号;
语法:insert into table_name
insert into company [(colum1, colum2, colum3, …)] values(value1, value2,value3,…);
在这里colum1,colum2,colum3是表中列的名称;
如果要向表中的每一列都添加数据,可以省略前面的列的名称:insert into compay values (value1,value2,value3,…);
语句:select colum1,colum2,colum3,… from table_name;
此处colum1,colum2,colum3表的每列的名字,也是我们想要获取的表相应列的数据;
如果我们获取表中所有的数据可以使用:select * from table_name;
select datetime(‘now’,‘localtime’);
在sqlite中 where语句的语法: select colum1,colum2,colum3 from tbl_name where [condition];
在sqlite 中 可以使用 and 或者 or 连接where中的多个条件:
例:
select colum1,solum2 from tbl_name where [condition1] and [condition2];
select colum1,solum2 from tbl_name where [condition1] or [condition2];
sqlite 中可以使用update 来修改表中已有的记录,可以使用where 子句选定指定条件的数据,否则整个表都会被修改;
使用例:
update tbl_name set colum1 = value1, colum2 = value2,colum3 = value3,… where [condition];
sqlite 中可以使用delete 删除表中的已有数据,可以使用where 子句选定指定条件的数据,否则整个表都会被修改;
使用例:
delete from tbl_name where [condition];
sqlite 中使用like 可以匹配通配符制定模式的文本值,如果搜索表达式和模式表达式匹配,like 运算符将返回1;
与like运算符使用的通配符通常有:
百分号:(%);百分号代表零个、一个或多个数字或字符;
下划线:(_); 下划线代表一个单一的数字或字符
sqlite 中glob是用来匹配通配符指定模式的文本值,如果搜索表达式和模式表达式匹配,glob运算符返回1;
glob和like的区别就是glob是大小写敏感的;
与glob运算符使用的通配符有:
**星号:(*)**; 星号代表 零个、一个或多个数字或字符;
**问号:(?)**; 问号代表一个单一的数字或字符;
使用场景:
指定返回表中从某一行开始num行的数据;
select colum1,colum2,colum3, from tbl_name limit [num of rows] offset []roe num];
例:
(1)select * from tbl_name limit 6; ----限制返回的数据不超过6行;
(2)select * from tbl_name limit 3 offset 4;
sqlite 中可以指定按照一列或者多列按照升序或者降序排列数据;
使用语法:
select colum_list from tbl_name [where condition] [order by colum1,colum2,…,column] [asc] [desc];
注:asc 是升序排列;desc是降序排列;
例:
(1)select * from tbl_name order by age;
(2)select * from tbl_name order by age,name asc;
sqlite 中group by 和 select 一起使用,对表中的相同的数据进行分组;
在select 中 group by 子句放在where子句之后 , order by 子句之前;
使用场景:
如果表中有相同名字的两行数据,则可以使用group by 语句;
select name, sum(salary) from tbl_name group by name;
sqlite 中having子句可以指定条件来过滤将出现在最终结果中的分组结果;
where 在所选列上设置条件; having 子句是在group by子句创建的的分组上设置条件;
语法:
select column1, column2 from table1, table2 where [ conditions ] group by column1, column2 having [ conditions ] order by column1,column2;
21 sqlite 中distinct 语句
sqlite 中 distinct 和 select 一起使用 来消除表中所有重复的记录;
语法:
select distinct colum1, colum2,colum3 from tbl_name where [condition];
下面是sqlite 在c/c++编程中使用的接口:
2.执行sql的命令:
3.关闭数据库
参考:
https://www.runoob.com/sqlite/sqlite-c-cpp.html