SQlite数据库相关语法知识

1、SQLite3是一款开源的嵌入式关系型数据库,可移植性好、易使用、内存开销比较小

SQLite3是无类型的,意味着你可以保存任何类型的数据到任意表的任意字段中

2、 SQLite3常用的5种数据类型:text(文本)、integer(整型)、real(浮点值)、blob(二进制)

3、 在iOS中使用SQLite3,首先要添加库文件libsqlite3.dylib和导入主头文件

4、 创建或打开数据库

// path为:~/Documents/person.db

sqlite3 *db;

int  result = sqlite3_open([path UTF8String], &db);

代码解析:sqlite3_open()将根据文件路径打开数据库,如果不存在,则会创建一个新的数据库。如果result等于常量SQLITE_OK,则表示成功打开数据库。数据库文件的路径必须以C字符串(而非NSString)传入

关闭数据库:sqlite3_close(db);

5、执行创表语句

char *errorMsg;  // 用来存储错误信息

char *sql = "create table if not exists t_person(id integer primary key autoincrement, name text, age integer);";

int result = sqlite3_exec(db, sql, NULL, NULL, &errorMsg);

代码解析:sqlite3_exec()可以执行任何SQL语句,比如创表、更新、插入和删除操作。但是一般不用它执行查询语句,因为它不会返回查询到的数据

sqlite3_exec()还可以执行的语句:

①开启事务:begin transaction;

②回滚事务:rollback;

③提交事务:commit;

6、基本操作

①创建表:

(1) table if not exists 表名 (字段名1 字段类型1, 字段名2 字段类型2, …) ;

(2)create table 表名 (字段名1 字段类型1, 字段名2 字段类型2, …) ;

特别说明:(1)就算声明为integer类型,还是能存储字符串文本(主键除外)

(2)建表时声明啥类型或者不声明类型都可以,也就意味着创表语句可 以这么写:create table t_student(name, age);(为了保持良好的编程规范、方便程序员之间的交流,编写建表语句的时候最好加上每个字段的具体类型)

②删除表:

(1)drop table 表名 ;

(2)drop table if exists 表名 ;

③插入数据:

insert into 表名 (字段1, 字段2, …) values (字段1的值, 字段2的值, …) ;

注意:数据库中的字符串内容应该用单引号 ’ 括住

④更新数据:

update 表名 set 字段1 = 字段1的值, 字段2 = 字段2的值, … ;

⑤删除数据:

delete from 表名 ;

⑥条件语句的常见格式:

where 字段 = 某个值 ;   // 不能用两个 =

where 字段 is 某个值 ;   // is 相当于 =

where 字段 != 某个值 ;

where 字段 is not 某个值 ;   // is not 相当于 !=

where 字段 > 某个值 ;

where 字段1 = 某个值 and 字段2 > 某个值 ;  // and相当于C语言中的 &&

where 字段1 = 某个值 or 字段2 = 某个值 ;  //  or 相当于C语言中的 ||

⑦查询语句:

select 字段1, 字段2, … from 表名 ;

select * from 表名;   //  查询所有的字段

⑧起别名:格式(字段和表都可以起别名)

select 字段1 别名 , 字段2 别名 , … from 表名 别名 ;

select 字段1 别名, 字段2 as 别名, … from 表名 as 别名 ;

select 别名.字段1, 别名.字段2, … from 表名 别名 ;

⑨计算记录的数量:格式

select count (字段) from 表名 ;

select count ( * ) from 表名 ;

⑩排序:

查询出来的结果可以用order by进行排序

select * from t_student order by 字段 ;

select * from t_student order by age ;

默认是按照升序排序(由小到大),也可以变为降序(由大到小)

select * from t_student order by age desc ;  //降序

select * from t_student order by age asc ;   // 升序(默认)

也可以用多个字段进行排序

select * from t_student order by age asc, height desc ;

先按照年龄排序(升序),年龄相等就按

7、limit:使用limit可以精确地控制查询结果的数量,比如每次只查询10条数据

格式:select * from 表名 limit 数值1, 数值2 ;

示例:select * from t_student limit 4, 8 ;(可以理解为:跳过最前面4条语句,然后取8条记录)

8、建表的约束:

建表时可以给特定的字段设置一些约束条件,常见的约束有

not null :规定字段的值不能为null

unique :规定字段的值必须唯一

default :指定字段的默认值(建议:尽量给字段设定严格的约束,以保证数据的规范性)

SQlite数据库相关语法知识

时间: 2024-08-25 01:25:18

SQlite数据库相关语法知识的相关文章

sqlite 数据库 相关知识

一基本简单介绍 SQLite 是一个自持的(self-contained).无server的.零配置的.事务型的关系型数据库引擎.由于他非常小,所以也能够作为嵌入式数据库内建在你的应用程序中. SQLite 被应用在 Solaris 10操作系统.Mac OS 操作系统.iPhone 和 Skype 中. QT4 .Python . PHP 都默认支持 SQLite ,Firefox Amarok 等流行的应用程序在内部也使用了 SQLite. SQLite   数据库引擎实现了基本的 SQL-

mysql数据库相关基础知识01

数据库的简介 1.什么是数据库:数据仓库.访问必须只能用SQL语句来访问.数据库也是一个文件的系统. 2.数据库的作用:存储数据的作用.开发任何的应用,都有数据库. 3.关系型的数据库:数据库中保存的都是实体与实体之间的关系. 4.常见的数据库 * Java开发,必用的两个数据库Oracle和MySQL * Oracle数据库(甲骨文) 大型的数据库,收费的. * MySQL数据库 小型的数据库,免费开源的.被Oracle收购了(在6.x版本下开始收费了) * SQLServer 微软的数据库

数据库相关基础知识总结

一.事务 所谓事务(Transcation),它是一个操作序列,这些操作要么全部执行,要么不执行,它是个不可分割的工作单位.事务的四大特性: 1 ACID四大特性 Atomicity(原子性) 原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生. Consistency(一致性) 一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏.这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性. Isolation(隔离性) 多个事务并发访问时,事务

mysql数据库相关基础知识02

聚集函数 1.count 记数 2.sum 求和 3.avg * 语法:select avg(列名) from 表名: 4.max * 求最大值 5.min * 求最小值 练习 求一个班级数学平均分? select avg(ifnull(math,0)) from stu; 求一个班级总分平均分 select avg(ifnull(math,0)+english+chinese) from stu; 求班级英语最高分和最低分 select max(english) from stu; selec

sqlite数据库相关总结

1. sqlite是轻量型.关系型管理系统,是嵌入式的,占用资源低.可移植性强,比mySql处理速度快,现在主流的版本是sqlite3 2. sqlite中的数据类型有TEXT(字符串,采用UTF-8,UTF-16编码).(REAL)浮点型.(INTEGER)有符号的整型.(BLOB)大二进制数据,能存放任何二进制数据.还有其他几个不常用的( (VARCHAR.CHAR.CLOB)会转化成TEXT的类型    (FLOAT DOUBLE)转化成REAL类型   (NUMERIC)转化成INTEG

[python] 专题九.Mysql数据库编程基础知识

在Python网络爬虫中,通常是通过TXT纯文本方式存储,其实也是可以存储在数据库中的:同时在WAMP(Windows.Apache.MySQL.PHP或Python)开发网站中,也可以通过Python构建网页的,所以这篇文章主要讲述Python调用MySQL数据库相关编程知识.从以下几个方面进行讲解: 1.配置MySLQ 2.SQL语句基础知识 3.Python操作MySQL基础知识 4.Python调用MySQL示例 一. 配置MySQL 首先下载mysql-5.0.96-winx64,安装

专题九.Mysql数据库编程基础知识

https://blog.csdn.net/Eastmount/article/details/52156383 这篇文章主要讲述Python调用MySQL数据库相关编程知识.从以下几个方面进行讲解: 1.配置MySLQ 2.SQL语句基础知识 3.Python操作MySQL基础知识 4.Python调用MySQL示例 一. 配置MySQL 原文地址:https://www.cnblogs.com/chenhuan123/p/12038446.html

程序员面试笔试宝典学习记录(三)(数据库相关知识)

关系数据库系统与文件数据库系统的区别如下: (a)关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构化. (b)关系数据库系统中,用户看到的逻辑结构是二维表,而文件数据库系统中,基本元素是文件. (c)文件数据库系统可以实现多媒体文件管理,支持C/S工作模式. acid,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability). 数据查询:select sele

Python数据库相关(SQLServer/sqlite/MySQL/access)

1.用pymssql连接SQL Server. 1).pymssql的pypi地址:https://pypi.python.org/pypi/pymssql. 2).pymssql官网:http://pymssql.org/ . 3).python 使用pymssql连接sql server数据库. 2.用sqlite3模块连接sqlite.从Python 2.5开始,sqlite3成为内置模块,无需额外安装. 1).官方文档:https://docs.python.org/2/library/