Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

1 第 5 章 SQL 语句基础 在 Oracle 数据库中,为了方便管理用户所创建的 数据库对象,引入了模式的概念,这样用户所创建的 数据库对象就都属于该用户模式。对于一般的用户而 言,数据库中的数据是以表、视图行等方式存储的( 表和视图就是最基本的用户模式对象),用户只需要 根据自己的需求查询数据库,然后由数据库根据请求.
JSP 与数据库 SQL 语言简介 SQL 语言简介 JDBC 简介 JDBC 简介 使用 JDBC 连接数据库 使用 JDBC 连接数据库 访问数据库 数据库访问应用举例.
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
淘宝海量数据产品技术架构 张轩丞(朋春) 淘宝网-数据平台与产品部.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
数据库技术 实践.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
Chap 11 SQL基本查詢指令.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
文科计算机小公共课规划教材 Access 程序设计.
第一讲 数据查询优化.
第6章 数据展示和输出功能 创建和使用报表 报表(Report)是以打印格式展示数据的一种有效方式。在报表中,可以展示图形、文字标题、字段数据或汇总数据等形式的信息,并可以控制各种数据的大小和外观。 利用报表,还可以按照数据之间的逻辑关系和所需的方式来组织数据之间的排版布局,对数据进行多级汇总和统计,或以图形方式展示数据。
计算机应用基础 上海大学计算中心.
第3章 数据查询与SQL命令.
資料庫管理 資管二 賴柏融.
数据库管理软件 Access 2003的使用 安丘市职业中专 雷云龙 1.
查询数据.
第五讲 利用视图进行查询优化.
關聯式資料庫.
Oracle数据库入门.
Access 2007 進銷存管理系統實作 文魁資訊股份有限公司.
第六章 學習SQL語言.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
課程名稱:資料庫系統 授課老師:李春雄 博士
Chapter 12 T-SQL 語法與 ASP.NET.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
SQL Server 2000 数据库入门.
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
5 数据库管理与保护 数据库运行的最小逻辑工作单位是事务,所有对数据库的操作,都以事务作为一个整体来执行或撤销。
第九章 進階的查詢技巧.
SQL SERVER 一些经典语句 1.
MySQL 結構化查詢語言 MySQL.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
iRepor报表设计基础 IReport安装 普通实体报表 数据结果集报表 工作流主从报表 饼状图报表 柱状图,曲线图报表 条形码报表
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
数据库应用技术 SQL Server 2005.
第20章 MySQL数据库.
ORACLE 第九讲 触发器.
MySQL开发规范 DB组-张浩.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
数据库技术.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
CS, ZJU 4/18/2019 Chapter 7 数据库.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
学习目标 1、什么是表连接 2、表连接类型 3、表连接区别.
查询与视图 蔡海洋.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
第三章 SQL Server数据管理.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
資料庫應用與實作 一到六章重點、習題.
第4章 数据查询.
第 9 章 查詢資料- 善用 SELECT 敘述.
Presentation transcript:

Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)

SQL 基础知识 表的基础知识 Insert Select ,内外连接 Update / Delete 子查询 Union Debug 方法 数据备份方法

认识一下表

认识一下表的定义( SQL ) 数据类型( ‘’ ,转义字符),主键, Not Null,Index,Unique

认识一下表的定义(式样书)

INSERT 语句 基本语法 ( 列出所有字段 ) INSERT INTO TBL 名 { 字段名 1 ,字段名 2… 字段名 n} VALUES { 字段值 1 ,字段值 2… 字段值 n} 功能 将字段值插入所选表的相应位置的字段名中 错误可能 ( 1 )字段名和字段值没有一一对应,表现为数量不一致,类型不一致 (前后颠倒,非数值没加 ’’ ,非数值放入数值) ( 2 )一意性制约,输入值与 DB 中存在的主键等具有唯一性的字段的值 是一样的

INSERT 语句(继续) 活用语法 1 INSERT INTO TBL 名 { 字段名 1} VALUES { 字段值 1} 功能 将字段值插入所选表的相应位置的字段名中,没有列出的字段,都插入 Null 错误可能 ( 1 )未选择的字段中有 not null 制约 活用语法 2 INSERT INTO TBL 名 VALUES { 字段值 1 ,字段值 2… 字段值 n} 功能 默认选择了该表的所有字段 错误可能 ( 1 )所有字段都需要有字段值,字段值个数不够 注意:基本语法的错误都会发生在活用语法上

Insert 语句(继续) 活用语法 3 INSERT INTO TBL 名 SELECT 项目1,项目2...项目n FROM TBL 名2 功能 将 Select 语句的执行结果直接插入表中 错误可能 ( 1 )作业: Select 语句本身认为没有问题的情况下 ,列出能想到的所有的错误可能。

SELECT 语句 基本语法 SELECT 项目1,项目2...项目n FROM TBL 名 WHERE 选择条件 GROUP BY 分组条件 HAVING 分组后的选择条件 ORDER BY 排序条件( ASC( 默认 ),DESC ) SELECT 功能 选出客户希望的列,可以用*指代所有的列,也可以自己定义一个数据库里 并不存在的字段(列别名) SELECT * FROM TBL SELECT 1 AS Separator FROM TBL SELECT A. *, 项目 FROM TBL AS A (实际项目里要用真实执行后的 SQL 进行调式) 错误可能 ( 1 )表内该字段不存在,特别是使用了表别名的情况 ( 2 )少逗号,多逗号

SELECT 语句( FROM ) FROM 功能 提供选择范围,可以写多个表,可以用表别名 SELECT * FROM TBL1, TBL2 SELECT * FROM TBL1 A, TBL2 AS B 错误可能 ( 1 )表名不存在 ( 2 )少逗号,多逗号 ( 3 )别名和表名之间需要有一个空格 高级应用(内连接,外连接) ( 1 )内连接 :若不满足条件, TBL1 , TBL2 数据都不能选出 SELECT * FROM TBL1 INNER JOIN TBL2 ON 条件 ( 2 )左外连接 :若不满足条件, TBL1 的数据也能选出, TBL2 的字段值 为NULL SELECT * FROM TBL1 LEFT OUTTER JOIN TBL2 ON 条件 ( 3 )右外连接 :若不满足条件, TBL2 的数据也能选出, TBL1 的字段值 为NULL SELECT * FROM TBL1 RIGHT OUTTER TBL2 ON 条件

SELECT 语句( FROM 继续) 练习

SELECT 语句( SELECT + FROM ) SELECT + FROM 功能 自由选择组合不同表的字段 SELECT * FROM TBL1, TBL2 SELECT A. 项目 1, B. 项目 2, 项目 3 FROM TBL1 AS A, TBL2 AS B 错误可能 ( 1 )项目和表的从属关系有错误 ( 2 )上述项目 3 的情况,如果多表里有同样字段会有问题

Select 语句( WHERE ) WHERE 功能 满足条件的数据才能被选出 SELECT * FROM TBL1 WHERE 选择条件1 AND (选择条件2 OR 选 择条件3) 错误可能 ( 1 )语法miss 各种条件语句 ( 1 )关系比较 =,<>,, =, IS NULL,IS NOT NULL,BETWEEN…AND… , IN , NOT IN, LIKE 问题: NULL 可以比较吗? TBL1. 项目名 <>Null Null=Null 吗? 例: 1)项目1 <> 项目 2 ,项目1 IS NULL 2) BETWEEN :项目1 BETWEEN “A” AND “C” 3) IN :项目1 IN (值1,值2,值3) 注意 ‘’ 4) LIKE : ”%” 代表任意数量的任意字符(包括 0 个), ”_” 代表一个任意字符 项目1 LIKE’% 值1 %’ (部分一致),项目1 LIKE’% 值1 % 值2% ’ ,项目 1 LIKE’ 值1 %’ (前方一致) ,项目1 LIKE’ 值1 ’ (完全一致、项目1 = 值1 ) 项目1 LIKE ‘_’ ‘_’ 代表一位任意字符(必须一位) 转义字符 where USERID like

SELECT 语句( WHERE 继续) ( 2 )条件组合 AND, OR, (),NOT 例: WHERE (NOT( 条件1 AND 条件 2 ) ) OR 条件 3 (项目1=值1 OR 项目1 =值2 )==项目1 IN (值1,值2 ) 以下部分,在 SELECT 语句中也可以使用 ( 3 )数值相关 +,-,*,/,MOD,NVL 例: NVL (项目1, “” )( Oralce 专用), select nvl(sexual,'NULL2'), usertbl.* from usertbl MOD (项目1,2) ( 4 )文本相关 (参见 cse 帮助) ( 5 )日期相关(参见 cse 帮助) sysdate 要问清用 app server 还是 DB server

SELECT 语句( GROUPBY ) GroupBy 是分组语句, 可以结合使用 SUM ,AVG、MIN、MA X等分组函数。 Having 是 GroupBy 的条件

SELECT 语句(子查询) Select 语句本身可以作为子查询,查询结果来 充当 From 表, Where 条件 select B.username,role from usertbl B, (select max(username) AS username from usertbl group by role) A where A.username = B.username select username,role from usertbl, where username in (select max(username) from usertbl group by role)

SELECT 语句(伪列) Oracle 中存在一些系统默认的,但是不会被 直接 Select * 出来的列,称为伪列。 RowID 数据的物理地址,在数据没有被移动过的前 提下,这个数据是不会改变的。而且没有 重复。可以活用当作不会改变的主键。 RowNum 数据的行数,可以活用做选取限定条的数据 SELECT rowid,rownum FROM usertbl WHERE RowNum<2

UPDATE / DELETE 语句 UPDATE TBL 名 SET 项目名 1 =项目值 1, 项目名 2 =项目值 2 WHERE 条件 DELETE TBL 名 WHERE 条件 数据库如有没有自动提交功能,需要手动的调用 COMMIT, ROLLBACK 命令来提交或者取消修改。 如果没有提交的话,只能在自己的进程里看到修正,在外部是看不到的。 另外,提交以后就不能再修改,所以,在书写上述命令时, (1)写出 WHERE 条件 (2)在上面加上 SELECT * 来确认取出数据就是自己想要修正/删除的数据 (3)换成 UPDATE , DELETE 语句并执行 (4)再次确认修正/删除操作是自己想要的范围 (5) COMMIT 或 ROLLBACK 在多人使用一个数据库的时候,上述的谨慎绝对不是多余的。

CASE 语句 SELECT * FROM usertbl WHERE role= CASE WHEN 1<>1 THEN 'T' WHEN 2>1 THEN 'S' END AND versionno=0 IF(No==0){ No=1; } IF(No==1){ }

UNION ( ALL ) SELECT * FROM TBL1 UNION SELECT * FROM TBL2 … UNION SELECT * FROM TBLN ORDER BY 排序条件 功能 把多个查询结果合并到一个表中 游戏规则 ( 1 )每个 SELECT 语句中的选择项目的数量必须一致,对 应位置的项目类型或者一致,或者可以转换 ( 2 ) UNION 会清除掉重复记录 UNION ALL 不会,所以性能上好一点

UNION ( ALL )(继续)

Debug 方法

数据备份方法

数据备份方法(继续)

数据导入方法 数据导入前,需要用 delete 命令删除掉重复数据。 否则,主键重复的数据不会被更新。

作业 将下列需求写成 SQL 验证用户修正密码的正确性(不能等于最近三次的密码) 按照教师和学生的顺序,选出所有人的用户 ID 和用户名,不显示系统管理员 选出 MAXT 下面所有学生中最新的学生的用户 ID 和用户名 选出用户 ID 以A到C为首的用户 ID 和用户名,用用户 id (升)和 Role (降)排序 选出用户 ID 里含有 ‘_’ 的用户 ID 和用户名 为了验证上述 SQL 的正确性,应该准备什么数据?分条写清楚。(用 cse 的导出功能) 回答下列问题 子查询里能不能看到外部查询的内容? EXISTS 和 in 的区别是什么? 内外连接,子查询, Union, 如何决定该选哪个? SELECT 语句本身认为没有问题的情况下 (P8) ,列出能想到的所有的错误可能。 问题: NULL 可以比较吗? TBL1. 项目名 <>Null Null=Null 吗? NOT ( 条件 1 AND 条件 2) 换成不使用 AND 只使用 OR 的条件