SQL基础培训PPT课件.ppt
《SQL基础培训PPT课件.ppt》由会员分享,可在线阅读,更多相关《SQL基础培训PPT课件.ppt(204页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主要内容l基本的SELECT语句l约束和排序数据l单行函数l多表显示数据、组函数合计数据l创建和管理表l子查询&操纵数据l内置约束l创建视图l其他数据库对象基本的select语句 目标完成本课后, 您应当能够:列出SQL SELECT语句的功能执行基本的SELECT语句SQL SELECT语句的功能 列选择:你能够使用SELECT语句的列选择功能选择表中的列,这些列是你想要用查询返回的。当你查询时,你能够选择你查询的表中指定的列。 行选择:你能够使用SELECT语句的行选择功能选择表中的行,这些行是你想要用查询返回的。你能够使用不同的标准限制你看见的行。 连接:你能够使用SELECT语句的连接
2、功能来集合数据,这些数据被存储在不同的表中,在它们之间可以创建连接。在后面的课程中你将学到更多关于连接的内容。 基本SELECT语句 SELECT *| DISTINCT column|expressionalias,. FROM table; SELECT 确定哪些列FROM 确定哪张表 选择所有列与指定列 SELECT * FROM departments; 用跟在SELECT关键字后面的星号 (*),你能够显示表中数据的所有列。 SELECT department_id, location_id FROM departments; 你能够用SELECT语句来显示表的指定列,指定列名之间用
3、逗号分隔。写SQL 语句SQL 语句对大小写不敏感SQL 语句可以写成一行或多行关键字不能简写或分开折行子句通常放在不同的行缩进用于增强可读性 算术表达式用算术运算符创建数字和日期数据的表达式 操作 说明 + 加 - 减 * 乘 / 除 使用算术运算符 SELECT last_name, salary, salary + 300 FROM employees; 优先级优先级: 乘法和除法比加法和减法的优先级高 相同优先级的运算符从左到右计算 圆括号用于强制优先计算,并且使语句更 清晰 SELECT last_name, salary, 12*salary+100 FROM employees;
4、空值 null 是一个未分配的、未知的,或不适用的值 null不是0,也不是空格 包含空值的算术表达式计算结果为空 SELECT last_name, job_id, salary, commission_pct FROM employees;定义列别名列别名: 改变列标题的名字 可用于计算结果 紧跟在列名后面在列名和别名之间可以有选项AS 关键字 如果别名中包含有空格、或者特殊字符、或者大小写敏感,要求用双引号 SELECT last_name AS name, commission_pct comm FROM employees; 连字运算符连字运算符: 连接列或者字符串到其它的列 用两个
5、竖线表示(|) 构造一个字符表达式的合成列 SELECT first_name|last_name AS Employees FROM employees;文字字符串 文字字符串是包含在SELECT列表中的一个字符串,一个数字或者一个日期 日期和字符的文字字符串值必须用单引号括起来 每个文字字符串在每行输出一次 SELECT last_name| is a |job_id AS Employee Details” FROM employees;约束和排序数据 目标完成本课后, 您应当能够执行下列操作:用一个查询限制返回的行用一个查询分类返回的行 限制选择的行 用WHERE子句限制返回的行 SE
6、LECT * |DISTINCT column|expressionalias,. FROM table WHERE condition(s); WHERE子句跟着子句跟着FROM子句子句 WHERE 限制查询满足条件的行 condition 由列名、表达式、常数和比较操作组成 WHERE子句能够比较列值、文字值、算术表达式或者函 数,WHERE子句由三个元素组成: 列名 , 比较条件 , 列名、常量或值列表 。使用WHERE子句 SELECT employee_id, last_name, job_id, department_id FROM employees WHERE departme
7、nt_id = 90 ;字符串和日期字符串和日期的值放在单引号中字符值区分大小写,日期值是格式敏感的日期的默认格式是DD-MON-RR. SELECT last_name, job_id, department_id FROM employees WHERE last_name = Whalen; 比较条件 运算 含义 = 等于 大于 = 大于等于 小于 = 小于等于 不等于比较条件被用于一个表达式与一个值或与另一个表达式的比比较条件被用于一个表达式与一个值或与另一个表达式的比较。较。 . WHERE hire_date=01-JAN-95 . WHERE salary=6000 . WHER
8、E last_name=Smith 其它比较条件操作操作 含义含义 BETWEEN.AND. 在两个值之间(包含) IN(set) 匹配一个任意值列表 LIKE 匹配一个字符模板 IS NULL 是一个空值 使用使用BETWEEN条件条件: SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500;使用使用IN条件条件 SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 10
9、1, 201);其它比较条件使用使用LIKE条件条件使用LIKE条件执行有效搜索串值的通配符搜索搜索条件既可以包含文字也可以包含数字: %表示任意顺序的零个或多个字符 _表示一个字符 SELECT first_name FROM employees WHERE first_name LIKE S%; 使用使用NULL条件条件用IS NULL操作来测试空值 SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL; NULL条件,包括IS NULL条件和IS NOT NULL条件。 逻辑条件 运算 含义 AND 如果
10、两个组成部分的条件都为真,返回TRUE OR 如果两个组成部分中的任一个条件为真,返回TRUE NOT 如果跟随的条件为假,返回TRUE 可以在WHERE子句中用AND和OR运算符使用多个条件。 使用使用AND操作操作:AND要求两个条件同时为真 SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary =10000 AND job_id LIKE %MAN%; 逻辑条件使用OR操作:OR操作要求两者之一为真即可 SELECT employee_id, last_name, job_id, salary
11、FROM employees WHERE salary = 10000 OR job_id LIKE %MAN%; 使用NOT操作 SELECT last_name, job_id FROM employees WHERE job_id NOT IN (IT_PROG, ST_CLERK, SA_REP); 注:NOT运算符也可以用于另一个SQL运算符,例如,BETWEEN、LIKE、和NULL。优先规则 求值顺序 1 算术运算 2 连字操作 3 比较操作 4 ISNOTNULL, LIKE, NOTIN 5 NOT BETWEEN 6 NOT逻辑条件 7 AND逻辑条件 8 OR逻辑条件 使
12、用圆括号改变优先规则 ORDER BY子句用ORDER BY子句排序行 ASC: 升序排序,默认 DESC: 降序排序ORDER BY子句在SELECT语句的最后 SELECT last_name, job_date FROM employees ORDER BY hire_date ;语法 : SELECT expr FROM table WHERE condition(s) ORDER BY column, expr ASC|DESC; 单行函数 目标完成本课后,您应当能够执行下列操作:描述在SQL 中可用的函数的变量类型在SELECT语句中使用字符,数字和日期函数描述转换函数的使用 SQ
13、L 函数 函数是SQL的一个非常强有力的特性,函数能够用于下面的目的: 执行数据计算 修改单个数据项 操纵输出进行行分组 格式化显示的日期和数字 转换列数据类型 SQL函数有输入参数,并且总有一个返回值。 注:在本课中讲述的大多数函数是针对SQL的Oracle版的。 SQL 函数 (续) 有两种截然不同的函数: 单行函数 多行函数 单行函数 这些函数仅对单个行进行运算,并且每行返回一个结果。有不同类型的单行函数,本课下面的函数类型: 字符 数字 日期 转换 多行函数 这些函数能够操纵成组的行,每个行组给出一个结果,这些函数也被称为组函数。多行函数在后面的课程中介绍。单行函数单行函数:操纵数据项
14、接受多个参数并返回一个值作用于每一个返回行每行返回一个结果可以修改数据类型可以嵌套接受多个参数,参数可以是一个列或者一个表达式单行函数(续) 单行函数的特性包括: 作用于查询中返回的每一行 每行返回一个结果 可能返回一个与参数不同类型的数据值 可能需要一个或多个参数 能够用在SELECT、WHERE和ORDER BY子句中,可以嵌套 。function_name(arg1, arg2,.) function_name 是函数的名字。 arg1, arg2 是由函数使用的任意参数,可以由一个列名或者一个表达式提供。 单行函数(续) 本课包括下面的单行函数: 字符函数:接受字符输入,可以返回字符或
15、者数字值 数字函数:接受数字输入,返回数字值 日期函数:对DATE数据类型的值进行运算 (除了MONTHS_BETWEEN函数返回一个数字,所有日期函数都返回一个DATE数据类型的值。) 转换函数:从一个数据类型到另一个数据类型转换一个值 通用函数: NVL 、 NVL2、 NULLIF、 COALSECE、 CASE 、 DECODE字符函数 单行字符函数接受字符数据作为输入,既可以返回字符值也单行字符函数接受字符数据作为输入,既可以返回字符值也可以返回数字值。字符函数可以被分为下面两种:可以返回数字值。字符函数可以被分为下面两种: 大小写处理函数 字符处理函数大小写处理函数如下:大小写处理
16、函数如下:LOWER(column|expression) 转换字符值为小写 UPPER(column|expression) 转换字符值为大写 INITCAP(column|expression) 转换每个单词的首字母值为大写,所有 其它值为小写 字符处理函数如下:字符处理函数如下:CONCAT(column1|expression1 ,column2|expression2) 连接第一个字符值到第二个字符值;等价于连接运算符 (|) SUBSTR(column|expression,m ,n) 从字符值中返回指定的字符,开始位置在 m,n字符长度 (如果 m 是负数,计数从字符值末尾开始;
17、如果 n 被忽略,返回到串结束的所有字符)。 LENGTH(column|expression) 返回表达式中的字符数INSTR(column|expression, string, ,m, n ) 返回一个命名串的数字位置。随意地,你可以提供一个位置m作为查找的开始,在字符串中第n次发现的位置。m和n的默认值是1,意味着在起始开始查找,并且报告第一个发现的位置。 LPAD(column|expression, n, string) RPAD(column|expression, n, string) 填充字符值左、右调节到n字符位置的总宽度 TRIM(leading|trailing|bot
18、h , trim_character FROM trim_source) 使你能够从一个字符串修整头或尾字符(或两者)。如果trim_character或trim_source是字符文字,你必须放在单引号中。 REPLACE(text, search_string, replacement_string) 从字符串查找一个文本表达式,如果找到,用指定的值串代替它 字符函数(续)大小写处理函数这些函数转换字符串的大小写这些函数转换字符串的大小写 函 数 结 果LOWER(SQL Course) sql courseUPPER(SQL Course) SQL COURSEINITCAP(SQL C
19、ourse) Sql Course LOWER:转换大小写混合的字符串为小写字符串 UPPER:转换大小写混合的字符串为大写字符串 INITCAP:将每个单词的首字母转换为大写,其他字母为小写 SELECT The job id for |UPPER(last_name)| is |LOWER(job_id) AS EMPLOYEE DETAILS FROM employees; 字符处理函数 函 数 结 果CONCAT(Hello, World) HelloWorldSUBSTR(HelloWorld,1,5) HelloLENGTH(HelloWorld) 10INSTR(HelloWor
20、ld, W) 6LPAD(salary, 10,*) *24000RPAD(salary, 10, *) 24000 *TRIM(H FROM HelloWorld) elloWorld数字函数ROUND:四舍五入指定小数的值 ROUND(45.926, 2) 45.93 TRUNC(45.926, 2) 45.92 MOD(1600, 300) 100 ROUND(column|expression, n) 四舍五入列、表达式或值为n位小数位,或者,如果n被忽略,无小数位。(如果n是负值,小数点左边的数被四舍五入) TRUNC(column|expression,n) 截断列、表达式或值到n
21、位小数,或者,如果n被忽略,那么n默认为0 MOD(m,n) 返回m除以n的余数 使用ROUND函数 SELECT ROUND(45.923,2), ROUND(45.923,0),ROUND(45.923,-1) FROM DUAL;使用TRUNC函数 SELECT TRUNC(45.923,2), TRUNC(45.923),TRUNC(45.923,-2) FROM DUAL;使用MOD函数 SELECT last_name, salary, MOD(salary, 5000) FROM employees WHERE job_id = SA_REP;注:MOD函数经常用于确定一个值是奇
22、数还是偶数 日期的使用 Oracle 数据库用内部数字格式存储日期:世纪,年,月,日,小时,分钟和秒 默认日期显示格式是DD-MON-RR. SELECT last_name, hire_date FROM employees WHERE last_name like G%; SYSDATE函数返回: Date Time SYSDATE是一个日期函数,它返回当前数据库服务器的日期和时间。 SELECT SYSDATE FROM DUAL; 用日期计算从日期加或者减一个数,结果是一个日期值两个日期相减,得到两个日期之间的天数用小时数除以24,可以加小时到日期上 既然数据库以数字方式存储日期,你就
23、可以用算术运算符进行计算,例如,加或减。你可以加或减数字常数以及日期。 你可以进行下面的运算: 运算 结果 说明 date + number 日期 加一个天数到一个日期上 date - number 日期 从一个日期上减一个天数 date - date 天数 用一个日期减另一个日期 date + number/24 日期 加一个小时数到一个日期上 日期函数 函 数 说 明 MONTHS_BETWEEN 两个日期之间的月数ADD_MONTHS 加日历月到日期NEXT_DAY 下个星期几是几号LAST_DAY 指定月的最后一天ROUND 四舍五入日期TRUNC 截断日期日期函数(续) MONTHS
24、_BETWEEN(date1, date2):计算date1和date2之间的月数,其结果可以是正的也可以是负的。如果date1大于date2,结果是正的,反之,结果是负的。结果的小数部分表示月的一部分。 ADD_MONTHS(date, n):添加n个日历月到date。n的值必须是整数,但可以是负的。 NEXT_DAY(date, char):计算在date之后的下一个周(char)指定天的日期。char的值可能是一个表示一天的数或者是一个字符串。 LAST_DAY(date):计算包含date的月的最后一天的日期 ROUND(date,fmt):返回用格式化模式fmt四舍五入到指定单位的
25、date ,如果格式模式 fmt 被忽略,date被四舍五入到最近的天。 TRUNC(date, fmt):返回用格式化模式fmt截断到指定单位的带天的时间部分的date,如果格式模式fmt被忽略,date被截断到最近的天。 使用日期函数MONTHS_BETWEEN (01-SEP-95,11-JAN-94) 19.6774194ADD_MONTHS (11-JAN-94,6)11-JUL-94NEXT_DAY (01-SEP-95,2) 下个星期五是几号 08-SEP-95LAST_DAY(01-FEB-95) 28-FEB-95使用日期函数(续)假定假定SYSDATE = 25-JUL-9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 基础 培训 PPT 课件
限制150内