数据库

1>SQLite语句的关键字: select insert update delete from create where desc order by group table alter view index...

2>SQLite数据存储的类型integer :整型值real :浮点值text :文本字符串blob :二进制数据 ( 比如文件 )

3>创表(CREAT)

直接创建  CREAT TABLE 表名 (字段名1 字段类型1,字段名2 字段类型2,...);

判断表是否存在,不存在时再创建 CREAT TABLE IF NOT EXISTS 表名(字段1 字段类型1,字段名2  字段类型2...);

示例:CREAT TABLE t_stdent ( id integer,name text,age inetger,score real);

4>删表(DROP)

直接删除 DROP TABLE 表名;

判断是否存在,存在直接删除 DROP TABLE IF EXISTS 表名;

示例:DROP TABLE t_student;

5>插入数据(INSERT INTO)

INSERT INTO 表名(字段1,字段2,...)VALUES (字段1的值,字段2的值,...);

示例:INSERT INTO t_student(name,age)VALUES(‘ZY’,18);

注意:数据库的字符用单引号’ ‘;

6>更新数据(UPDATE)

UPDATE 表名 SET 字段1 = 字段1的值,字段2 = 字段2的值,...;

示例:UPDATE t_student SET name =‘jack’,age = 20;

注意:上行示例代码执行完毕之后,会将表中的name值UPDATE为 jack age 的值 20.

7>删除数据(DELETE)

DELETE FROM 表名;

示例:DELETE FROM t_student;

注意:上行示例代码会将t_student表中所以记录都删掉.

8>条件语句,用于只是要修改或删除某些记录的限制语句

常见格式:

WHERE 字段 = 某个值; //切记不是两个 =

WHERE 字段 IS 某个值; // IS 相当于 =

WHERE 字段 != 某个值;

WHERE 字段 IS NOT 某个值; // IS NOT 相当于 !=

WHERE 字段1 = 某个值;

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

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

示例:

将t_student表中年龄大于10并且姓名不等于 jack 的记录的年龄都改成 5

UPDATE t_student SET age = 5 WHERE age > 10 AND name != ‘jack’;

删除t_student表中年龄小于等于10或者年龄大于30的记录

DELETE FROM t_student WHERE age <= 10 OR age > 30;

将表中的某个字段的值就行修改(必须在特定的条件上)

UPDATE t_student SET score = age WHERE name = ‘jack'

将t_student表中名字等于jack的记录的score字段在的值都改为age字段的值

9>DQL语句

格式:

SELECT 字段1,字段2,...FROM 表名;

SELECT * FROM 表名; // 查询所以字段

示例:

SELECT name ,age FROM t_student;

SELECT *FROM t_student;

SELECT *FROM t_student WHERE age > 10;

10>起别名

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

SELECT 字段1 别名, 字段2 别名,...FROM 表名 别名;

SELECT 字段1 别名, 字段2 AS 别名,..FROM 表名 AS 别名;

SELECT 别名.字段1 ,别名.字段2,...FROM 表名 别名;

示例:

SELECT name myname, age myage FROM t_student;

给name起个叫做 myname 的别名,给age起个叫做myage 的别名;

SELECT s.name , s.age FROM t_student s;

给t_student表起个别名叫做s ,利用s来引用表中的字段

11>计算记录的数量

格式:

SELECT count (字段) FROM 表名;

SELECT count ( * ) FROM 表名;

示例:

SELECT count (age) FROM t_student;

SELECT count ( * ) FROM t_student WHERE score >= 60;

12>排序

查询出来的结果可以使用OEDER 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, height DESC;

13>LIMIT

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

格式:SELECT * FROM 表名 LIMIT 数值1,数值2;

示例:SELECT * FROM t_student LIMIT 4,8;

上行代码执行完查询的结果是:跳过最前面的4条记录,然后取8条记录

注意:LIMIT后面的数值1不写的话,默认是第一个记录

LIMIT 常做为分页查询,比如每页固定显示5条数据,那么应该这样取数据

第一页:LIMIT 0 , 5;

第二页:LIMIT 5 , 5;

第三页:LIMIT 10 , 5;

第 n 页:LIMIT: 5* (n - 1) , 5;

SELECT *FROM t_student LIMIT 7;  相当于 SE;ECT * FROM t_student LIMIT 0 , 7;

表示取最前面的7条记录

14>简单的约束

建表时可以指定特定的约束条件,常见的约束:

NOT NULL :规定字段的值不能为NULL

UNIQUE : 指定字段的值必须唯一

DEFAULT : 指定字段的默认值

注意:尽量给字段设定严格的约束,以保证数据的规范性

示例:

CREATE TABLE t_student ( id integer , name text NOT NULL UNUQUE ,age integer NOT NULL DEFAULT 1);  name 字段不能为NULL ,并且唯一  age 字段不能为NULL ,并且默认为1

15>主键

主键: Primary Key 简称PK 用来唯一地标示某一条记录

例如t_student可以增加一个id 字段作为主键,相当于人的身份证

主键可以是一个字段或多个字段

主键的设计原则:

1.主键应是对用户没有意义的 2.永远不要更新主键 3.主键不应包含动态变化的数据 4.主键应由计算机自动生成

在创表的时候用PRIMARY KEY 声明一个主键

CREAT TABLE IF NOT EXISTS t_student ( id integer PRIMARY KEY , name text NOT NULL ,age integer NOT NULL DEFAULT 1.0 ); integer 类型作为t_student表的主键

主键字段

只要声明为PRIMARY KEY ,就说明是一个主键字段

主键字段默认就包含了NOT NULL 和 UNIQUE这两个约束

如果想要让主键自动增长 ( 必须是 integer 类型 ) ,增加AUTOINCREMENT 约束

示例: CREATE TABLE IF NOT EXISTS t_student ( id integer PRIMARY KEY AUTOINCREMENT , name text NOT NULL ,age integer NOT NULL DEFAULT 1.0);

16>外键约束

利用外键约束可以用来建立与表之间的联系

外键的一般情况是:一张表的某个字段,引用着另一张表的主键字段

新建一个外键

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

t_student 表中有一个叫做fk_t_student_class_id_t_class_id的外键

这个外键的作用是用 t_student 表中的 class_id 字段引用t_class表的 id 字段

17>表连接查询

什么是表连接查询

需要联合多张表才能查到想要的数据

表连接的类型

内连接 : INNER JOIN 或者JOIN 显示的是左右表都有完整字段的记录

左外连接: LEFT OUTER JOIN 保证左表数据的完整性

示例:查询20130901班的所有学生

SELECT s.name , s.age FROM t_student s ,t_class c WHERE s.class_id = c.id AND c.name = ‘10230901’;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • 什么是SQLite?数据库存储数据的步骤 ●SQLite是一款轻型的嵌入式数据库,它占用资源非常的低,在嵌入式设备...
    飞行的猫阅读 2,490评论 1 7
  • 一、SQL语句 如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句 1.什么是SQL SQL(st...
    无沣阅读 1,138评论 0 0
  • iOS-数据库 -sql 先从数据库语句-SQL语句 1、在程序运行过程中,要想操作(增删改查,CRUD)数据库中...
    一轮圆月阅读 610评论 0 4
  • 万物和谐 品味天下 天義顺普洱 静真
    你心中的那一杯茶阅读 120评论 0 1
  • 黑色的毛呢大衣在暗夜里随风摆动,额前的刘海早已剪短,英挺的眉毛下璀璨如星辰般夺目的双眼,彼时已经长成成熟男人模样的...
    快落碎冰冰阅读 292评论 0 0