LinuxC10.SQLite3.0章节

上传人:E**** 文档编号:91286855 上传时间:2019-06-27 格式:PPT 页数:31 大小:339KB
返回 下载 相关 举报
LinuxC10.SQLite3.0章节_第1页
第1页 / 共31页
LinuxC10.SQLite3.0章节_第2页
第2页 / 共31页
LinuxC10.SQLite3.0章节_第3页
第3页 / 共31页
LinuxC10.SQLite3.0章节_第4页
第4页 / 共31页
LinuxC10.SQLite3.0章节_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《LinuxC10.SQLite3.0章节》由会员分享,可在线阅读,更多相关《LinuxC10.SQLite3.0章节(31页珍藏版)》请在金锄头文库上搜索。

1、第十章 SQLite3数据库,本章目标,了解数据库系统的基本概念和基本原理 掌握SQLite3数据库的各种命令 掌握SQLite3各类DDL语句,掌握表、索引、视图、触发器等概念,数据库系统结构图,数据库系统,数据库 管理系统 DBMS,数据库,系统客户端,应用程序,文件 操作系统,注意:现实社会中,经常将数据库系统简称为“数据库”,数据库的基本概念,数据库系统和数据库管理系统 数据库(DATABASE)和表(TABLE) 数据模型:关系模型/网状模型/层次模型 关系模型: 元组/记录(RECORD) 字段(FIELD) 关键字(KEY) 候选码 ,数据库的基本概念(1),完整性约束:数据完整

2、性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。数据完整性分为四类: 实体完整性(Entity Integrity) 域完整性(Domain Integrity) 参照完整性(Referential Integrity) 用户定义的完整性(User-definedIntegrity),数据库的基本概念(2),实体完整性(Entity Integrity):实体完整性规定表的每一行在表中是唯一的实体。 在数据表中可以对相应字段进行如下约束来实现实体完整性: UNIQUE(唯一约束) PRIMARY KEY(主键约束) IDENTITY(标

3、识列),数据库的基本概念(3),域完整性(Domain Integrity):是指数据库表中的列必须满足某种特定的数据类型或约束。 域完整性有以下几种约束: CHECK(检查约束) FOREIGN KEY(外键约束) DEFAULT(默认值约束) NOT NULL(不为空值约束),数据库的基本概念(4),参照完整性(Referential Integrity):是指两个表的主关键字和外关键字的数据应对应一致。 参照完整性作用表现在如下几个方面: 禁止在从表中插入包含主表中不存在的关键字的数据行 禁止会导致从表中的相应值孤立的主表中的外关键字值改变 禁止删除在从表中的有对应记录的主表记录,数据库

4、的基本概念(5),用户定义的完整性(User-defined Integrity):是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 数据库系统提供了定义和检验这类完整性的机制,以便用统一的系统方法来处理它们,而不是用应用程序来承担这一功能。其它的完整性类型都支持用户定义的完整性。,SQLite3数据库简介,SQLite第一个Alpha版本诞生于2000年5月. 至今已经有10个年头了. SQLite也迎来了一个版本 SQLite 3已经发布. SQLite是一款轻型的数据库,是遵守ACID的关系式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多

5、嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。,创建SQLite数据库,在Linux命令行下,启动sqlite3 示例: #sqlite3 mydb.txt 说明: 打开数据库文件mydb.txt,数据库名默认为main。如果mydb.txt不存在,则新建文件,附加数据库Attach,附加数据库Attach

6、语句: 是指附加已经存在的数据库,使得多个数据库并存,由sqlite统一管理 命令格式: ATTACH DATABASE database-filename AS database-name 示例: sqliteattach database mydb.dat as mydb 注意:文件名有.符号,需要用引号 分离数据库Detach语句 命令格式: DETACH DATABASE database-name,SQLite3点命令,注意:SQLite3 命令以”.”号开始,而SQL操作语句以”;”结束,SQLite数据库逻辑对象,表TABLE 索引INDEX 视图VIEW 触发器TRIGGER

7、,SQLITE_MASTER表,查看数据库所有逻辑对象 sqliteSelect * from sqlite_master sqlite.schema sqlite_master CREATE TABLE sqlite_master ( type text, name text, tbl_name text, rootpage integer, sql text );,SQL92标准,SQL-92概述 ISO/ANSI和IEC共同制定了针对数据库操作的结构化查询语言SQL,92年推出国际标准,称为SQL-92 各关系数据库厂家在遵循SQL-92标准基础上,在自己产品上扩展了SQL;比如:SQL

8、 SERVER-TSQL,ORACLE-PL/SQL等等 SQL92标准包含: 数据定义语言(DDL):例如:CREATE、DROP、ALTER等语句。 数据操作语言(DML):例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。 数据查询语言(DQL):例如:SELECT语句 数据控制语言(DCL):例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句,SQLite数据类型,关系表TABLE,表概述 也称“关系”,是关系型数据库中最常见的,用来存储数据的逻辑对象。 表:表结构和表内数据,如何创建表,语法 CREATE TEMP | TEMPORARY

9、TABLE IF NOT EXISTS table-name ( column-def , column-def* , constraint* ) 说明: column-def :=name type CONSTRAINT name column-constraint* column-constraint :=NOT NULL conflict-clause | PRIMARY KEY sort-order conflict-clause AUTOINCREMENT | UNIQUE conflict-clause | CHECK ( expr ) | DEFAULT value | COLL

10、ATE collation-name,建表示例 1,CREATE TABLE stuInfo /*-创建学员信息表-*/ ( stuNo CHAR(6) primary key, -学号,非空(必填) stuName VARCHAR(20) NOT NULL , -姓名,非空(必填) stuAge INT NOT NULL, -年龄,INT类型默认为4个字节 stuID NUMERIC(18,0), -身份证号 stuSeat SMALLINT IDENTITY (1,1), -座位号,自动编号 stuAddress TEXT -住址,允许为空,即可选输入 ),演示:创建学员信息表tbl_st

11、udent,表的一些特殊说明,表创建时,默认创建了rowid列,作为自增长ID sqlite的是动态的数据类型,而非一般数据库的静态数据类型,改表结构,只能进行表改名或增加字段 语法 ALTER TABLE database-name . table-name alteration alteration :=RENAME TO new-table-name alteration :=ADD COLUMN column-def 示例: Alter table customer add age int;,删除表,语法 DROP TABLE IF EXISTS database-name. tabl

12、e-name 说明 表删除后,表结构和记录都被删除;在默认模式下,数据库文件不会减少,该空间留给后续操作使用 表删除后,表的索引以及触发器也相应被删除,视图的概念,视图是查看数据库表中数据的一种方式。视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力。视图是一种逻辑对象,是一种虚拟表。 使用视图的优点: 简化查询语句 简化权限管理 增加可读性 方便程序的维护 增加数据的安全性和保密性,如何创建视图,通过定义 SELECT 语句以检索将在视图中显示的数据来创建视图。 SELECT 语句引用的数据表称为视图的基表。 创建视图的基本语法如下:,CREATE TEMP | TEMPOR

13、ARY VIEW database-name. view-name AS select-statement,索引INDEX,为什么使用索引? 可以利用索引快速访问数据库表中的特定信息。 什么是索引? 索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。,索引采用的原理,索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。 数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。,创建索引的优缺点,优点: 快速访问数据; 加强数据行的唯一性; 缺点: 占用硬盘存储空间; 在

14、插入、修改、删除数据时将产生额外开销;,如何创建索引,语法 CREATE UNIQUE INDEX IF NOT EXISTS database-name . index-name ON table-name ( column-name , column-name* ) column-name :=name COLLATE collation-name ASC | DESC 选项说明 1、UNIQUE:要求建立唯一索引 2、IF NOT EXISTS:表示存在同名索引,则该命令无效,SQLite不支持的特性,用户自定义函数,存储过程 外键的约束(不过可以通过自定义触发器来替代) right out join/full out join Grant/revoke,VACUUM,整理数据库、表或索引 VACUUM index-or-table-name 说明 不能对附加数据库文件进行操作 若当前有活动事务,该命令无法起作用 对于in-memory数据库,该命令无效,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号