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

来源:互联网 发布:淘宝怎么删差评 编辑:程序博客网 时间:2024/05/02 05:06


一.SQLite 简介

目标

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

简介

  • 是一款轻量级数据库
  • 设计目标是嵌入式
  • 占用资源少
  • 处理速度快
  • 当前版本 3.13,MAC 内置已经安装了 SQLite

官方网站:http://www.sqlite.org/

什么是 SQLite

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

    • 自给自足
      • 不需要任何外部的依赖
    • 无服务器
      • 不需要一个单独的服务器进程或操作的系统
    • 零配置
      • 不需要安装或管理
      • 一个完整的 SQLite 数据库就是一个单一的磁盘文件
    • 轻量级
      • 完全配置时小于 400K,省略可选功能配置时小于 250K
    • 事务性支持
    • 非常适合用于移动端的本地数据存储
  • 服务端使用的数据库,如:OrcalSQL ServerMySQL...则需要独立的服务器,安装,配置,维护……

关系型数据库的特点

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

术语

  • 字段(Col / Field):一个字段存储一个值,可以存储 INTEGERREALTEXTBLOBNULL 五种类型的数据
    • 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_studentORDER BY id ASC LIMIT 30, 10;/* 排序 */SELECT * FROM t_studentWHERE score > 50ORDER BY age DESC;SELECT * FROM t_studentWHERE score < 50ORDER BY age ASC , score DESC;/* 计量 */SELECT COUNT(*)FROM t_studentWHERE age > 50;/* 别名 */SELECT name as myName, age as myAge, score as myScoreFROM t_student;SELECT name myName, age myAge, score myScoreFROM t_student;SELECT s.name myName, s.age myAge, s.score myScoreFROM t_student sWHERE s.age > 50;/* 查询 */SELECT name, age, score FROM t_student;SELECT * FROM t_student;

    删除表

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




0 0