文章目录
- 1、什么是信息?
- 2、 数据库模型
- 3、sqLite 数据库
- 4、 SQL 语句基础
- 5、对数据库文件 SQL 语句:
- 6、创建表:create 语句
- 7、创建表:create 语句(设置主键)
- 8、查看表: .table
- 9、修改表: alter语句
- 10、删除表:drop table 语句
- 11、插入新行:insert into 语句(全部赋值)
- 12、插入新行:insert into 语句 (部分赋值)
- 13、修改表中的数据: update 语句
- 14、删除表中的数据:delete 语句
- 15、查询:select 语句(基础)
- 16、匹配条件语法:(提高)
- 17、事务:
- 练习题:
- 18、 函数和聚合
- 19、数据分组 group by
- 20、过滤分组 having
- 21、约束
- 22、联结表(多表操作)
- 23、视图(虚拟的表)
- 24、触发器概念
- 日志
- 25、查询优化-索引
- 26、SQLite C编程
sqlite
1、什么是信息?
信息是指对现实世界存在方式或运动状态的反映。
什么是数据?
数据是指存储在某一媒体上,能够被识别的物理符号:
数据的概念在数据处理领域已经被大为拓宽,不仅包括字符组成的文本形式的数据
信息与数据的关系:
信息与数据是相互依赖存在的,数据是信息的载体,信息是数据的内涵。
数据处理是指数据及信息相互转换的过程。
从数据处理的角度而言,信息是一种被加工成特定形式的数据。
数据管理的几个阶段
人工管理->文件管理->数据库管理系统
2、 数据库模型
数据库管理系统根据数据模型对数据进行存储和管理
数据模型应满足三方面要求:
一是能比较真实地模拟现实世界:
二是容易为人所理解,
三是便于在计算机上实现
数据结构、数据操作和完整性约束是构成数据模型的三要素
完整性约束:
数据完整性约束指的是为了防止不符合规范的数据进入数据库。
在用户对数据进行插入、修改、删除等操作时,DBMS 自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。
3、sqLite 数据库
SQLite 是一个开源的、内嵌式的关系型数据库,第一个版本诞生于 2000年5月,目前最高版本为 SQLite3。
下载地址:http://www.sqlite.org/download.html
学习网站:http://www.runoob.com/sqlite/sqlite-tutorial.htm!
安装方法(ubuntu12.04 下):
字符界面
sudo apt-get install sqlite3
图形界面
sudo apt-get install sqliteman
SQLite 特性:
零配置 可移植 灵活
自由的授权
可靠 紧凑 简单 易用
4、 SQL 语句基础
SQL是一种结构化査询语言(Structured Query Language)的缩写,SOL 是一种专门用来与数据库通信的语言
SQL 目前已成为应用最广的数据库语言:
SQL已经被众多商用数据库管理系统产品所采用,不同的数据库管理系统在其实践过程中都对 SOL规范作了某些改编和扩充。故不同数据库管理系统之间的 SOL语言不能完全相互通用。
SQLite 数据类型
一般数据采用固定的静态数据类型,而 SOLite 采用的是动态数据类型,会根据存入值自动判断。
SQLite 具有以下五种基本数据类型:
1、integer:带符号的整型(最多 64 位)。
2、real:8字节表示的浮点类型。
3、text:字符类型,支持多种编码(如 UTF-8、UTF-16),大小无限制。
4、blob:任意类型的数据,大小无限制。 BLOB(binary large object)二进制大对象,使用二进制保存数据
5、null表示空值
5、对数据库文件 SQL 语句:
1、创建、打开数据库:
sqlite3 *.db
提示:
当*.db 文件不存在时,sqlite 会创建并打开数据库文件。
当*.db 文件存在时,sqlite 会打开数据库文件。
2、退出数据库命令:
.quit 或 .exit
SQL 的语句格式:
所有的 SQL语句都是以分号结尾的,SQL语句不区分大小写。两个减号"- -”则代表注释。
关系数据库的核心操作:
一、创建、修改、删除表
二、添加、修改、删除行
三、查表
对数据库中表及内容操作的语句:
6、创建表:create 语句
语法: create table 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,…);
创建一表格该表包含3列,列名分别是:“id”、“addr” “name”
在终端下输入:
sqlite> create table persons (id integer, name text, addr text);
7、创建表:create 语句(设置主键)
在用 sglite 设计表时,每个表都可以通过 primary key 手动设置主键,每个表只能有一个主键,设置为
主键的列数据不可以重复。
语法:create table 表名称(列名称1数据类型 primary key,列名称 2 数据类型,列名称3 数据类型,…);
在终端下输入:
sqlite>create table persons(id integer primary key,name text,addr text);
8、查看表: .table
查看数据表的结构:
.schema[表名]
9、修改表: alter语句
在已有的表中添加或删除列以及修改表名。
10、删除表:drop table 语句
用于删除表(表的结构、属性以及表的索引也会被删除)
语法:
drop table 表名称:
11、插入新行:insert into 语句(全部赋值)
给一行中的所有列赋值。
语法
insert into 表名 values (列值 1,列值 2,列值 3,列值 4,…);
注意:
当列值为字符串时要加上""号。
在终端下输入:
sqlite>create table persons (id integer,name text, addr text);
sqlite>insert into persons values(1,'lucy','beijing');
12、插入新行:insert into 语句 (部分赋值)
给一行中的部分列赋值
语法: insert into 表名(列名 1,列名 2,…) values (列值 1,列值 2,…);
在终端下输入:
sqlite> insert into persons(id,name) values(l,'peter');
13、修改表中的数据: update 语句
使用 where 根据匹配条件,查找一行或多行,根据查找的结果修改表中相应行的列值(修改哪一列由
列名指定)。
语法:
update 表名 set 列1= 值1 [,列 2= 值2,…][匹配条件];
匹配: where 子句
where 子句用于规定匹配的条件。
匹配条件语法:
(基础)
where 列名 操作符 列值
在终端下输入:
sqlite> update persons set id=2,addr='tianjing' where name='peter ';
14、删除表中的数据:delete 语句
使用 where 根据匹配条件,查找一行或多行,根据查找的结果删除表中的查找到的行。
语法:
delete from 表名[匹配条件]:
注意:
当表中有多列、多行符合匹配条件时会删除相应的多行。
在终端下输入:
sqlite>delete from persons where name='peter';
15、查询:select 语句(基础)
用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。
语法:
1、select*from 表名「匹配条件]:
2、select 列名 1[,列名 2,...] from 表名[匹配条件];
提示:星号(*)是选取所有列的通配符。
在终端下输入:
sqlite>select *from persons where id=1;
16、匹配条件语法:(提高)
数据库提供了丰富的操作符配合 where 子句实现了多种多样的匹配方法
如:
一、in 操作符
二、and 操作符
三、or 操作符
四、between and 操作符
五、like 操作符
六、not 操作符
in 允许我们在 where 子句中规定多个值。
匹配条件语法:
where 列名 in(列值 1,列值 2…)
例:
select*firom 表名 where 列名 in (值 1,值 2,...);
and 可在 where 子语句中犯两个或多个条件结合起来(多个条件之间是与的关系)。
匹配条件语法:
where 列1=值1[and 列2= 值 2 and …]
例
1、select * from 表名 where 列1 = 值1[and 列2= 值 2 and …];
2、select 列名1[,列名2,…] from 表名 where 列1= 值1 [and 列2= 值2 and …];
在终端下输入:
sqlite> select * from persons where id=l and addr='beijing';
匹配条件语法:
where 列名between A and B
例:
1、select*from 表名 where 列名 between A and B;
2、select 列名1[,列名2,fiom 表名 where 列名 between A and B:
注:
匹配字符串时会以 ascii 顺序匹配。
在终端下输入:
sqlite>s