菜鸟学习之路——SQLite数据库的学习

来源:互联网 发布:手机编程前景 编辑:程序博客网 时间:2024/04/28 20:12
我们以前用的plist,useDeafult,归档和解档,虽然可以存放数据,但是只是用来存放小量数据,而且写入写出不方便,有着很大读取文件和写入文件速度的限制性,所以在移动开发中,我们就用到了数据库,SQLite来存储数据,

SQLite:用来存放大批量数据

SQLite将数据划分以下几种存储类型
integer:整型值
real:浮点值
text:文本字符串
blob :二进制数据(比如文件)
但是,实质上SQLite是无类型的,所谓的类型不过是方便以后开发人员的标识而已

SQL语句
1.在程序运行过程中,要想操作(增删改查,CRUD)数据库中的数据,必须使用SQL语句
2.不区分大小写

SQL中常用的关键字
select、insert、update、delete、from、create、where、desc、order、by、group、table、alter、view、index等等
数据库中不可以使用关键字来命名表、字段

数据定义语句
在数据库中创建新表或删除表(create table 或 drop table)

数据库操作语句
添加、修改、删除(insert、update、delete)

数据查询语句
查询获得表中的数据(select)

SQL创建表
CREATE TABLE IF NOT EXISTS t_dog(name text , age integer);
当然,我们之前说过SQLite实质上是无类型的(主键除外),所以我们可以写成CREATE TABLE IF NOT EXISTS t_dog(name, age);
NOT NULL 的意思是以后插入的的数据不能为空
CREATE TABLE IF NOT EXISTS t_dog(name text  NOT NULL, age integer NOT NULL);
UNIQUE 的意思是插入的数据是唯一的,以后插入的数据不能有重复的
CREATE TABLE IF NOT EXISTS t_dog(name text  NOT NULL UNIQUE, age integer NOT NULL);
DEFAULT 的意思是设置默认值,在不修改的情况下就用默认值赋值给数据
CREATE TABLE IF NOT EXISTS t_dog(name text  DEFAULT 1, age integer);
PRIMARY KEY :主键,为每一条数据都设置唯一的标识符,在默认情况下由1开始,并有UNIQUENOT NULL的效果
CREATE TABLE IF NOT EXISTS t_dog(id integer PRIMARY KEY , name text , age integer);
所以在插入数据时,如果想修改id,可以自己设置,那么以后插入数据的id在默认的情况下,由你设置的id数值开始
INSERT INTO t_dog (id,name,age) VALUES (‘10’,狗,20)

SQL删除表
DROP TABLE IF EXISTS t_dog;

SQL插入数据
INSERT INTO t_shop (name,price,left_count) VALUES (‘手机’,2001,500)
注意,数据库中的字符串内容应该用单引号’括住
当然,有可能我们有些数据不确定,我们也可以不插入全部数据
INSERT INTO t_shop (name,left_count) VALUES (‘手机’,500)

SQL更新数据
UPDATE t_shop SET price = 900, left_count = 0;

SQL删除数据
DELETE  FROM t_shop; 

SOL查询数据
SELECT * FROM t_shop WHERE left_count > 800;
AS 意思是为这个name字段设置标识符
SELECT name AS shop_name FROM t_shop WHERE left_count > 800;

SQL数据排序
SELECT * FROM t_shop ORDER BY left_count 通过left_count 排序,默认为升序 ,DESC为降序
SELECT * FROM t_shop ORDER BY left_count DESC
SELECT * FROM t_shop ORDER BY left_count DESC ,price ASC ; 首先通过left_count 进行降序排序,如果遇到大小一样的,则通过price升序排序

SQL精确差数据
LIMT 的意思是跳过前面4条记录,然后取出8条记录
SELECT * FROM t_shop limit 4,8;


SQL外键约束


嵌套查询
SELECT * FROM t_student WHERE class = (SELECT id FROM t_class WHERE name = 'Andiona’);跟表连接一样  


表连接(重点)
s、c 为别名
SELECT s.name , c.name FROM t_student s JOIN t_class c WHERE s.class = c.id AND c.name = 'Andiona';


条件语句
如果只想更新或删除某个固定的记录,那就在DML语句后加上一些条件
条件语句的常见格式
where 字段 = 某个值
例如:UPDATE t_shop set left_count = 0 WHERE price < 1000  ;
  将t_shop表内如果price字段的记录少于1000,就将left_count字段的记录改为0

例如 DELETE FROM t_shop WHERE left_count = 0;
将t_shop表内如果left_count字段的记录为0的那一行删掉

例如 DELETE FROM t_shop WHERE left_count = < 500 AND price < 2000
在SQL中&& 变成了AND  || 变成了OR 





0 0
原创粉丝点击