您的位置:首页 > 数据库

SQLite简介、常用SQL语句、SQL使用速查

2016-09-12 10:32 627 查看



一.SQLite 简介

目标

知道 SQLite 基本概念
知道关系型数据库的基本概念和术语

简介

是一款轻量级数据库
设计目标是嵌入式的
占用资源少
处理速度快
当前版本 3.13,MAC 内置已经安装了 SQLite
官方网站:http://www.sqlite.org/

什么是 SQLite

SQLite
 是一个 SQL 数据库引擎,具有:

自给自足
不需要任何外部的依赖

无服务器
不需要一个单独的服务器进程或操作的系统

零配置
不需要安装或管理
一个完整的 SQLite 数据库就是一个单一的磁盘文件


轻量级
完全配置时小于 400K,省略可选功能配置时小于 250K

事务性支持
非常适合用于移动端的本地数据存储

服务端使用的数据库,如:
Orcal
SQL Server
MySQL
...则需要独立的服务器,安装,配置,维护……

关系型数据库的特点



一个 
列/字段(COL)
 存储一个值,类似于对象的一个属性
一 
行(ROW)
 存储一条记录,类似于一个对象
一个 
表(TABLE)
 存储一系列数据,类似于对象数组
多个 
 之间存在一定 
关系
,类似于对象之间的关系,例如:一条微博数据中包含用户记录

术语

字段(
Col / Field
):一个字段存储一个值,可以存储 
INTEGER
REAL
TEXT
BLOB
NULL
 五种类型的数据
SQLite 在存储时,本质上并不区分准确的数据类型
数据库主要的目的是做数据的检索,通常不会把无法检索的二进制数据保存在数据库中

主键:
Primary Key
唯一
标示一条记录的字段,具有以下特点:
名字:xxx_id
类型:Integer
自动增长
准确数值由数据库决定,程序员不用关心

外键:
Foreign Key
,对应其他关系表的标示,利用
外键
 可以和另外一个
建立起"关系"
方便数据维护
节约存储空间

二.常用 SQL 语句

目标

知道 SQL 语句的三个分类
掌握常用 SQL 语句的基本语法结构
做到能够基本看懂简单的 SQL 语句

在数据库开发中,针对数据库的操作都是通过 SQL 语句执行的
作为移动端的程序员,需要掌握简单/常用 SQL 语句的编写和维护能力

SQL 语句分类

DDL - 数据定义语言

命令描述
CREATE创建一个新的表,一个表的视图,或者数据库中的其他对象
ALTER修改数据库中的某个已有的数据库对象,比如一个表
DROP删除整个表,或者表的视图,或者数据库中的其他对象
不需要记忆,可以直接从客户端软件复制/粘贴

DML - 数据操作语言

命令描述
INSERT新增
UPDATE修改
DELETE删除
需要掌握,语法固定,简单

DQL - 数据查询语言

命令描述
SELECT查询
需要掌握一些简单的查询指令

三.SQL使用 速查

创建表

/*
创建数据表

CREATE TABLE '表名' (
'字段名' 类型(INTEGER, REAL, TEXT, BLOB)
NOT NULL    不允许为空
PRIMARY KEY    主键
AUTOINCREMENT 自增长,
'字段名2' 类型,
...
)

注意:在开发中,如果是从 Navicat 粘贴的 SQL,需要自己添加一个指令
IF NOT EXISTS 加在表名前,如果数据表已经存在,就什么也不做
*/

CREATE TABLE IF NOT EXISTS "T_Person" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT,
"age" INTEGER,
"heigth" REAL
)

/* 简单约束 */
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER
);

CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT UNIQUE,
age INTEGER
);

/* 添加主键 */
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER,
score REAL
);

/* 添加主键 */
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER,
name TEXT,
age INTEGER,
score REAL,
PRIMARY KEY(id)
);




插入

INSERT INTO t_student
(age, score, name)
VALUES
('28', 100, 'zhangsan');

INSERT INTO t_student
(name, age)
VALUES
('lisi', '28');

INSERT INTO t_student
(score)
VALUES
(100);




修改

UPDATE t_student
SET name = 'MM'
WHERE age = 10;

UPDATE t_student
SET name = 'WW'
WHERE age is 7;

UPDATE t_student
SET name = 'XXOO'
WHERE age < 20;

UPDATE t_student
SET name = 'NNMM'
WHERE age < 50 and score > 10;

/*更新记录的name*/
UPDATE t_student SET name = 'zhangsan';




删除

DELETE FROM t_student;

DELETE FROM t_student WHERE age < 50;




查询

/* 分页 */
SELECT * FROM t_student
ORDER BY id ASC LIMIT 30, 10;

/* 排序 */
SELECT * FROM t_student
WHERE score > 50
ORDER BY age DESC;

SELECT * FROM t_student
WHERE score < 50
ORDER BY age ASC , score DESC;

/* 计量 */
SELECT COUNT(*)
FROM t_student
WHERE age > 50;

/* 别名 */
SELECT name as myName, age as myAge, score as myScore
FROM t_student;

SELECT name myName, age myAge, score myScore
FROM t_student;

SELECT s.name myName, s.age myAge, s.score myScore
FROM t_student s
WHERE s.age > 50;

/* 查询 */
SELECT name, age, score FROM t_student;
SELECT * FROM t_student;




删除表

/*删除表*/
DROP TABLE IF EXISTS t_student;


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: