数据库及SQL语言介绍ppt课件.ppt
数据库及数据库及SQL语言介绍语言介绍 数据库基本概念数据库基本概念q数据库:储存在计算机内、有组织、可共享的数据库:储存在计算机内、有组织、可共享的相关数据集合;简言之:数据(信息)的集合相关数据集合;简言之:数据(信息)的集合qDBMS-DataBase Management Systemv处理数据库访问的软件。处理数据库访问的软件。v提供面向用户的接口功能、面向系统的维护功能。提供面向用户的接口功能、面向系统的维护功能。v提供一个方便、有效存取数据库信息的环境提供一个方便、有效存取数据库信息的环境q数据库系统:用于组织和存取大量数据(信息)的管理系统;方便多用户使用计算机软、硬件资源的系统;数据库系统构成数据库系统构成数据库数据库最终用户最终用户应用系统应用系统应用开发工具应用开发工具DBMS操作系统操作系统数据库管理员数据库管理员DBA应用程序员应用程序员数据库系统的特点数据库系统的特点q相对于文件系统,数据库系统有如下特点:相对于文件系统,数据库系统有如下特点:v数据、程序的独立性数据、程序的独立性v数据的充分共享数据的充分共享v有效地访问数据有效地访问数据v减少应用程序的开发时间减少应用程序的开发时间v数据的一致性和安全性数据的一致性和安全性v统一的数据管理统一的数据管理v并发的数据访问并发的数据访问数据模型数据模型q数据模型v数据库系统的核心v对客观事物及其联系的数据的描述v实体模型的数据化,表示实体之间的联系的模型q当前流行的数据模型:v关系v层次v网状关系数据模型关系数据模型q将数据抽象成一个或多个表,一组有关联的表组成一个数据库,这些表相互独立,没有任何层次、物理关系q表中每一行为一条记录,描述一条数据或信息,对应一个实体的具体值q表中每一列为一个属性,有固定的数据类型,对应一个实体的某个特征SQL语言的发展语言的发展q1974年,由年,由Boyce和和Chamberlin提出提出q19751979,IBM San Jose Research Lab的关系数的关系数据库管理系统原型据库管理系统原型System R实施了这种语言实施了这种语言qSQL-86是第一个是第一个SQL标准标准qSQL-89、SQL-92(SQL2)、SQL-99(SQL3)q商用产品支持情况商用产品支持情况v大部分大部分DBMS产品都支持产品都支持SQL,成为操作数据库的,成为操作数据库的标准语言标准语言v有方言,支持程度不同有方言,支持程度不同q交互式交互式SQLv一般DBMS都提供联机交互工具v用户可直接键入SQL命令对数据库进行操作v由DBMS来进行解释q嵌入式嵌入式SQLv能将SQL语句嵌入到高级语言(宿主语言,如C)v使应用程序充分利用SQL访问数据库的能力、宿主语言的过程处理能力v一般需要预编译,将嵌入的SQL语句转化为宿主语言编译器能处理的语句SQL语言的形式语言的形式SQL语言的功能(分类)语言的功能(分类)q从功能上分为4种类型,一共用了9个动词v数据查询语言QL v数据定义语言DDLv数据操纵语言DML v数据控制语言DCL数据定义语言数据定义语言DDLq数据定义语言用来创建、修改、删除数据库中的各种实体,如:数据库(Database),表(Table)、视图(View)、索引(Index)、同义词(Synonym)、存储过程(procedure)等vCREATE语句:建立各种实体vALTER语句:修改已经建立的各种实体vDROP语句:删除已经建立的各种实体DDL-创建新表创建新表q 语法 CREATE TABLE table-name (column_name datatype NULL|NOT NULL ,column_name datatype NULL|NOT NULL)q 示例create table Person(id char(20)not null,name char(32)not null,age integer birth char(16)not null,sex char(4)province char(10);DDL-创建索引创建索引q 语法 CREATE UNIQUE INDEX index-name ON table-name(column_name,column_name)q 示例create index NAME_PERSON_INDEX on PERSON(name);create unique index ID_PERSON_INDEX on PERSON(id);DDL-删除表、索引删除表、索引q 语法DROP TABLE table-nameDROP INDEX index-name示例DROP TABLE PERSONDROP INDEX ID_PERSON_INDEX数据操纵语言数据操纵语言DMLq数据操纵语言用来添加、修改、删除数据库中的数据记录(行)vINSERT语句:添加新的数据(记录)到数据库vUPDATE语句:修改数据库中现有的行vDELETE语句:删除数据库中现有的行DML 添加记录添加记录q 语法 INSERT INTO table-name(column1,column2 VALUES(constans1,constants)q 示例insert info PERSON(id,name,sex,birth,age,province)VALUES(1234567890,张三,男,20080101,1,beijing”)insert info PERSONVALUES(1234567890,张三,1,20080101,1,男beijing”)DDL-删除记录删除记录q 语法 DELETE FROM table-name WHERE search_contitionsq 示例DELETE FROM PERSONWhere id=12345DDL-更新记录更新记录q 语法 UPDATE table-name SET column_name=expression WHERE search_contiditions q 示例UPDATE PERSONSET name=abcWHERE id=12345数据查询语言数据查询语言QL 概述概述q 语法 SELECT select_list 确定检索的列 FROM table_list/view_list 指定列所在的表/视图 WHERE search_contiditions 选择、限定要查看的行 ORDER BY order_by_listq 示例 SELECT*FROM table/view_list SELECT column_name,column_name FROM table/view_list数据查询语言数据查询语言QL WHERE子句子句 q比较运算符(=、=、=、)vSELECTvFROM PERSONvWHERE age 10q逻辑运算符(AND、OR、NOT)vSELECTvFROM PERSONvWHERE age 10 AND age=男q范围(BETWEEN、NOT BETWEEN)vSELECTvFROM PERSONvWHERE age BETWEEN 10 AND 20q列表(IN、NOT IN)vSELECTvFROM PERSONvWHERE province IN(beijing,shanghai)q未知值(IS NULL、IS NOT NULL)vSELECTvFROM PERSONvWHERE province IS NULLq字符匹配(LIKE、NOT LIKE)vSELECTvFROM PERSONvWHERE name LIKE abc%数据查询语言数据查询语言QL ORDER BY子句子句 qORDER BY可以有一个或多个元素(order_by_list)q多个元素,用逗号分开q能以升序(ASC)或降序(DESC)排列q空值排序v并非所有系统都用相同方式vsql-92规定:空值应大于所有非空值或小于所有非空值qORDER BY列表可以包括如下表达式v一个列名v一个列名和算术运算或函数v一个显示标签v一个位置编码(SELECT列表中的序号,从1开始)ORDER BY子句子句-Examplesq示例SELECT FROM PERSONORDER BY birthSELECT id,name,age FROM PERSONORDER BY 3SELECT FROM PERSONORDER BY birth DESC数据控制语言数据控制语言DCLq用来管理事物的提交和回退用来授予或收回访问数据库的某种权限对数据库进行监视等。具体语法格式如下q给与用户访问表的权限vGRANT tab-privilege ON table-name TO PUBLIC|user-listq给用户授权vGRANT db-privilege TO PUBLIC|user-listq撤销权限vREVOKE tab-privilege ON table-name|db-privilege FROM PUBLIC|user-list数据控制语言数据控制语言DCL 权限列表权限列表