SQLite3数据库

数据库相关

  • navicat工具创建的数据库(SQLite3)
    • 属性的类型(5种)
      • blob 二进制类型
      • integer 整型
      • real 浮点型
      • text 文本类型
      • null 空
    • 主键
      • 主键(primary key)用来唯一的标示某一条记录
      • 主键可以是一个字段或多个字段
      • 主键设计的原则
        • 主键应当是对用户没有意义
        • 永远也不要更新主键
        • 主键不应该包含动态变化的数据
        • 主键应当有计算机自动生成
  • SQL语言简介
    • SQL(structured query language)结构化查询语言,是一种对关系型数据进行定义和操作的语言
    • SQL语句中的CURD(Create Retrieve Update Delete)
    • 在SQL语句中不区分大小写,每条语句都必须以分号结尾
  • SQL语句的种类
    • 数据定义语句(DDL Data Definition Language) 包括 crate drop alter 等操作
    • 数据操作语句(DML Data Manipulation Language) 包括 insert delete update等操作
    • 数据查询语句(DQL Data Query Language) select where order by
  • DDL(Data Definition Language)
    • 创建表
      • 格式: create table 表名 (字段名1 字段名1类型,字段名2 字段名2类型);
      • 示例: create table t_stu (name text,score real);
      • 语句优化:
        • 原因:创建表时,最好加个表是否已经存在的判断,防止语句多次执行时发生判断
        • create table if not exists (字段名1 字段名1类型,字段名2 字段名2类型);
    • 删除表
      • 格式: drop table 表名
      • 示例: drop table t_stu
      • 语句优化: drop tabel if exists t_stu
    • 修改表
      • 修改表名
        • alter table 旧表名 rename to 新表名
      • 新增属性
        • alter table 表名 add column 列名 数据类型 限定符
  • 字段类型的约束
    • 简单的约束
      • 不能为空 not null 规定字段的值不能为空
      • 不能重复 unique 规定字段的值必须唯一
      • 默认值 default 指定字段的默认值
    • 主键的约束
      • 在创建表的时候在一个字段类型的后面添加 primary key 表明该字段是这个表的主键
      • 主键字段默认包含了 not null 和 unique 两个约束
      • 如果想要让主键自动增长(必须是integer类型),应该增加autoincrement
  • DML(Data Manipulation Language)
    • 插入数据 insert
      • 格式: insert into 表名(字段1,字段2,...) values (字段1的值,字段2的值,...);
      • 示例: insert into t_stu(name,age) values ('张三',19);
      • 注意点: 数据库中的字符串内容应该用单引号''括住
    • 更新数据 update
      • 格式: update 表名 set 字段1 = 字段1的值,字段2 = 字段2的值,...;
      • 示例: update t_stu set name = '李四',age = 20;
      • 注意:要带上要更新数据的条件语句
    • 删除数据 delete
    • 格式: delete from 表名;
    • 示例: delete from t_stu;
    • 注意: 要带上你要删除数据的条件
  • 条件语句
    • 作用:如果只想更新或删除一些满足特定条件的记录,那就必须在DML语句后加上一些条件
    • 条件语句的常见格式
      • where 字段 = 某个值; // 等于某个值
      • where 字段 is 某个值; // is 相当于 =
      • where 字段 != 某个值; // 不等于某个值
      • where 字段 is not 某个值 // is not 相当于 !=
      • where 字段 > 某个值
      • where 字段1 = 某个值 and 字段2 > 某个值; // and 相当于C语言中的&&
      • where 字段1 = 某个值 or 字段2 = 某个值; // or 相当于C语言中的||
  • DQL(Data Qurey Language)
    • 格式
      • select 字段1,字段2,... from 表名;
      • select * from 表名;
    • 示例:
      • select name,age from t_stu;
      • select * from t_stu;
      • select *from t_stu where age > 10; // 条件查询
  • 查询相关语句
    • 统计
      • count(X)
        • select count(*) from t_stu
        • 计算所有记录个数
        • select count(age) from t_stu
        • 计算age有值的记录个数(Null不计算在内)
      • avg(X) 计算某个字段的平均值
      • sum(X) 计算某个字段的总和
      • max(X) 计算某个字段的最大值
      • min(X) 计算某个字段的最小值
    • 排序
      • 查询出来的结果可以用order by 进行排序 默认按照升序排序(有由小到大 ASC,降序,由大到小 DESC)
      • 示例:
        • select 字段1,字段2 from 表名 order by 字段 ;
        • select * from t_stu order by age asc; // 升序,默认
        • select * from t_stu order by age desc; 降序
      • 也可以用多个字段进行排序
        • select * from t_stu order by age asc,score desc // 先按照age升序排序,age相等就按照score降序排序
    • limit分页
      • 使用limit可以准确地控制查询结果的数量,比如每次只查询10条数据
      • 格式: select * from 表名 limit 数值1,数值2;
      • 示例:select * from t_stu limit 4,8; // 可以理解为跳过最前面4条语句,然后取8条记录
      • limit 常用来做分页查询,比如每页固定显示5条数据,那么应该这样取数据 第n页
      • select * from t_stu limit (n-1)*count count; // count为每页固定显示的数据
  • 多表查询
    • 格式:select 字段1,字段2,...from 表名1,表名2;
    • 别名:可以给表或者字段单独起别名 as 可以省略
    • 示例:select 字段1 as 字段名1,字段2 as 字段名2 from 表名1 as 别名1,表名2 as 别名2;
    • 表链接查询
      • 格式: select 字段1,字段2,...from 表名1,表名2 where 表名.id = 表名2.id;
      • 外键
        • 如果表1的主关键字是表2中的字段,则称该字段为表2的外键
        • 作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据.使两张表形成关联,外键只能引用外表中的列的值或使用空值

你可能感兴趣的:(SQLite3数据库)