Sqlite数据库基本操作
建立数据表
假设要建一个名叫film的数据表,只要键入以下指令就可以了:
create table film(title, length, year, starring);
这样就建立了一个名叫film的数据表,里面有name、length、year、starring四个字段。
这个create table指令的语法为:
create table table_name(field1, field2, field3, ...);
table_name是数据表的名称,fieldx(field1, field2, field3, ...)则是字段的名字。sqlite3与许多SQL数据库软件不同的是,它不在乎字段属于哪一种数据型态:sqlite3的字段可以储存任何东西:文字、数字、大量文字(blub),它会在适时自动转换。
如果表不存在,则创建数据表,存在则不创建数据表。命令:
create table if not exists film(title, length, year, starring);
建立索引
如果数据表有相当多的数据,我们便会建立索引来加快速度。好比说:
create index film_title_index on film(title);
意思是针对film数据表的name字段,建立一个名叫film_name_index的索引。这个指令的语法为
create index index_name on table_name(field_to_be_indexed);
一旦建立了索引,sqlite3会在针对该字段作查询时,自动使用该索引。这一切的操作都是在幕后自动发生的,无须使用者特别指令。
加入一条数据
接下来要加入数据了,加入的方法为使用insert into指令,语法为:
insert into table_name values(data1, data2, data3, ...);
例如可以加入
insert into film values ('Silence of the Lambs, The', 118, 1991, 'Jodie Foster');
insert into film values ('Contact', 153, 1997, 'Jodee Foster');
insert into film values ('Crouching Tiger, Hidden Dragon', 120, 2000, 'Yun-Fat Chow');
insert into film values ('Hours, The', 114, 2002, 'Nicole Kidman');
如果该字段没有数据,可以填NULL。
查询数据
讲到这里,终于要开始介绍SQL最强大的select指令了。首先简单介绍select的基本句型:
select columns from table_name where expression;
最常见的用法,当然是倒出所有数据库的内容:
select * from film;
如果数据太多了,我们或许会想限制条数:
select * from film limit 10;
或是照着电影年份来排列:
select * from film order by year limit 10;
或是年份比较近的电影先列出来:
select * from film order by year desc limit 10;
或是只想看电影名称跟年份:
select title, year from film order by year desc limit 10;
查所有茱蒂佛斯特演过的电影:
select * from film where starring='Jodie Foster';
查所有演员名字开头叫茱蒂的电影('%' 符号便是 SQL 的万用字符):
select * from film where starring like 'Jodie%';
查所有演员名字以茱蒂开头、年份晚于1985年、年份晚的优先列出、最多十条,只列出电影名称和年份:
select title, year from film where starring like 'Jodie%' and year >= 1985 order by year desc limit 10;
有时候我们只想知道数据库一共有多少条数据:
select count(*) from film;
有时候我们只想知道1985年以后的电影有几部:
select count(*) from film where year >= 1985;
(进一步的各种组合,要去看SQL专书,不过你大概已经知道SQL为什么这么流行了:这种语言允许你将各种查询条件组合在一起──而我们还没提到「跨数据库的联合查询」呢!)
如何更改或删除数据
了解select的用法非常重要,因为要在sqlite更改或删除一条数据,也是靠同样的语法。
例如有一条数据的名字打错了:
update film set starring='Jodie Foster' where starring='Jodee Foster';
就会把主角字段里,被打成'Jodee Foster'的那条(或多条)数据,改回成Jodie Foster。
delete from film where year < 1970;
就会删除所有年代早于1970年(不含)的电影了。
如何更改数据表名
alter table AAA rename to BBB;
把AAA数据表改名为BBB
如何在数据表中增加一个字段
alter table AAA add column ccc;
在AAA数据表里增加一个ccc的字段
如何在数据表中删除一个字段
ALTER TABLE的SQLite SQLite支持ALTER TABLE的一个有限子集。在ALTER SQLite中允许一个表或一个新列添加到现有表。删除列,或者添加或从表中删除约束。
sqlite中是不支持删除有值的列操作的,所以alter table table_name drop column col_name这个语句在sqlite中是无效的,而替代的方法可以如下:
1.根据原表创建一张新表
2.删除原表
3.将新表重名为旧表的名称
示例例子如下
1.创建一张旧表Student,包含id(主码),name, tel
create table student (id integer primary key,name text,tel text)
2.给旧表插入两个值
insert into student(id,name,tel) values(101,"Jack","110")
insert into student(id,name,tel) values(102,"Rose","119")
3.接下来我们删除电话这个列,首先根据student表创建一张新表teacher
create table teacher as select id,name from student
4.然后我们删除student这个表
drop table if exists student
5.将teacher这个表重命名为student
alter table teacher rename to student
结果演示:
select * from student order by name desc(desc降序, asc升序)
如何删除数据表
drop table AAA;
删除AAA数据表
附录:
上面只列出了常用的SQL语句,如未发现你需要的SQL语句,请自行百度搜索,关键字可以为“sqlite xxxx”,其中xxxx表示的是你要的功能。如果你愿意分享的话,可以在博客下面回复。
相关推荐
SQLite数据库常见的SQL语句
SQLite SQL 语句使用总结 SQLite 是一个软件库,用于实现自包含、非服务式、零配置、事务化的 SQL 数据库引擎。SQLite 直接读写原始的磁盘文件,一个拥有多个表、索引、触发器和视图的完整 SQL 数据库就包含在一个...
总结来说,这个压缩包提供了全面的中国行政区域数据,以SQLite3数据库的形式,以及可移植的SQL插入语句,为需要中国地理信息的项目提供了便利。无论是用于数据存储、分析还是数据迁移,这个资源都能发挥重要的作用。
总结来说,C#中不写SQL语句的数据库操作主要依赖于ORM框架,如Entity Framework、NHibernate和Dapper,它们提供了面向对象的接口,简化了数据库交互。此外,存储过程和ADO.NET的DataSet/DataTable也是可行的解决方案...
SQLite 记录 历史服务器地址 方便下次操作 ,消息框返回每个数据库执行语句的 影响行数。SQL语句 包含 delete drop truncate 关键字时需要 勾选 相应的 checkbox,防止误操作 vs2012 开发 framework 2.0
在SQLite3中,实现数据库文件自收缩通常有两种方式:VACUUM操作和PRAGMA语句。 1. VACUUM操作: VACUUM是一个内置的SQL命令,它的主要作用是重新组织数据库的存储结构,清理并回收不再使用的页面,同时也会收缩...
在Android平台上,SQLite数据库是应用开发中常用的本地数据存储方式,尤其对于那些不需要实时网络连接的应用,SQLite提供了高效且可靠的解决方案。本资料“安卓SQLite数据库相关-在Android平台上动态执行SQL语句.rar...
在Node.js环境中,SQLite3是一个常用的轻量级数据库,它不需要单独的服务进程,可以直接在内存中或磁盘上创建数据库文件。本篇文章将深入探讨如何使用`node-sqlite3`库来操作SQLite3数据库,并对其进行封装,以便于...
本文将深入讲解如何使用SQL语句来操作SQLite数据库,以实现对Android应用数据的有效管理。 首先,我们需要在Android项目中创建SQLite数据库。这通常通过继承`SQLiteOpenHelper`类来完成。`SQLiteOpenHelper`提供了...
在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储和管理应用程序中的数据。SQLite具有高效、可靠且易于集成的特点,使得它成为Android应用数据...
- 包含的`sqlite3.h`头文件提供了所有必要的函数声明,如`sqlite3_open()`用于打开数据库,`sqlite3_exec()`执行SQL命令,`sqlite3_prepare_v2()`编译SQL语句等。 - `sqlite3.c`可能是SQLite3的源代码或者是一个...
在 SQLite3 中可以直接执行 SQL 语句来创建表、插入数据等操作。例如: ```sql sqlite> CREATE TABLE tbl1 (one VARCHAR(10), two SMALLINT); sqlite> INSERT INTO tbl1 VALUES ('hello!', 10); sqlite> INSERT INTO...
`sqlite3_analyzer-3.7.1-win32.zip`是SQLite分析工具,用于分析数据库的内部结构,帮助优化数据库性能。它可以提供关于表、索引、B树结构等的详细信息。 `sqlite-3_7_2.zip`和`sqlitedll-3_7_2.zip`可能是SQLite的...
SQLite命令行功能简介 DML/DDL语句的使用和以前一致,不做介绍 ... 打印创建数据库表的SQL语句 .separator STRING 用指定的字符串代替字段分隔符 .show 打印所有SQLite环境变量的设置 .quit 退出命令行接口
android中 sqlite数据库操作中常用的SQL 语句,留下备用,防止出错
Python的sqlite3模块提供了一系列操作数据库的接口,允许Python程序通过简单的API调用来执行SQL语句,从而实现数据库的操作。这些操作不仅包括基本的增删改查,还可以进行复杂的查询和事务管理。在Python中使用...