SQLite3数据库
2017-02-24 本文已影响0人
LY2528
数据库相关
- navicat工具创建的数据库(SQLite3)
- 属性的类型(5种)
- blob 二进制类型
- integer 整型
- real 浮点型
- text 文本类型
- null 空
- 主键
- 主键(primary key)用来唯一的标示某一条记录
- 主键可以是一个字段或多个字段
- 主键设计的原则
- 主键应当是对用户没有意义
- 永远也不要更新主键
- 主键不应该包含动态变化的数据
- 主键应当有计算机自动生成
- 属性的类型(5种)
- 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;
- 注意: 要带上你要删除数据的条件
- 插入数据 insert
- 条件语句
- 作用:如果只想更新或删除一些满足特定条件的记录,那就必须在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) 计算某个字段的最小值
- count(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的外键
- 作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据.使两张表形成关联,外键只能引用外表中的列的值或使用空值