Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
连接符操作 • 将列、字符串连接在一起,作为一个新列。 • 连接符为两个竖线:“||” • 最终形成的列为字符表达式。 SELECT last_name||job_id AS "Employees" FROM employees;
原义字符串(Literal Character Strings) • 原义字符指字符、数字,或者日期。 • 日期和字符需要使用单引号封装。 • 每行数据显示一次。 SELECT last_name ||' is a '||job_id AS "Employee Details" FROM employees; …
使用比较运算符 SELECT last_name, salary FROM employees WHERE salary <= 3000 ;
使用比较运算符 • 使用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, 101, 201) ;
使用比较运算符 • LIKE 操作符筛先符合查找字符串的数据行。 • 查找条件可以包括字符或数字: • “%”表示数字0或者多个字符。 • “_”表示一个字符。 SELECT first_name FROM employees WHERE first_name LIKE 'S%' ;
使用比较运算符 • 可以同时使用 (%, _) 匹配符: • 使用 ESCAPE “\”标识符查找值中含有“%”和“_”字符的数据。 SELECT last_name FROM employees WHERE last_name LIKE '_o%' ; SELECT last_name FROM employees WHERE last_name LIKE '%SA\_%' ESCAPE '\';
使用比较运算符 • 使用IS NULL 操作检验是否有Null值 SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL ;
逻辑运算符 Operator Meaning AND 如果前后两个条件都为真,则返回TRUE OR 如果前后两个条件有一个为真,则返回TRUE NOT 如果条件为假,则返回TRUE
使用逻辑运算符 • AND 需要前后两个条件为TRUE: SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 AND job_id LIKE '%MAN%' ;
使用逻辑运算符 • OR 需要前后两个条件有一个为TRUE: SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 OR job_id LIKE '%MAN%' ;
使用逻辑运算符 • NOT 操作符可以与IN, BETWEEN, LIKE, and NULL配合使用: • ... WHERE job_id NOT IN ('AC_ACCOUNT', 'AD_VP') • ... WHERE salary NOT BETWEEN 10000 AND 15000 • ... WHERE last_name NOT LIKE '%A%‘ • ... WHERE commission_pct IS NOT NULL
运算符的优先级规则 优先级 运算符 1 四则运算 2 连接运算符 3 比较运算符 4 IS[NOT]NULL, LIKE, [NOT]IN 5 [NOT]BETWEEN 6 Not equal to 7 NOT • 8 AND • 9 OR 可以使用括号改变默认的优先级别
排序ORDER BY • 排序使用ORDER BY 子句: • ASC: 升序(默认行为) • DESC: 倒序 • 如果不使用ORDERBY ,相同的两次查询返回的结果顺序可以不一样。 • 使用NULLFIRST和NULLLAST指定NULL值在排序中的位置。 • ORDER BY 子句中的每个列都可以单独指定排序顺序。
排序ORDER BY • 默认的排序为升序: • 数字是最小的值在前 (1 to 999). • 日期的值最早的在前(01-JAN-11在01-JAN-12之前) • 字符按字母表顺序(“A” 最前,“Z” 最后). • Null 值在升序时显示在最后面,在降序时显示在最前面 • 可以使用一个不在SELECT列表中的列来排序
替换变量Substitution Variables • 替换变量临时保存数据,使用“&”和“&&”符号 • 替换变量可用于: • WHERE 条件子句 • ORDER BY 子句 • 列表达式 • 表名 • 整个SELECT语句 SELECT employee_id, last_name, job_id, &&column_name FROM employees ORDER BY &column_name ;
数据类型的隐式转换 … where hire_date > '01-JAN-90' From To VARCHAR2 or CHAR NUMBER VARCHAR2 or CHAR DATE … where name_varchar > 2345 From To NUMBER VARCHAR2 or CHAR DATE VARCHAR2 or CHAR 不建议使用隐式转换,可能导致SQL的性能下降
条件表达式Conditional Expressions • IF-THEN-ELSE的逻辑判断 • 有两种方法: • CASE • DECODE CASE expr WHEN comparison_expr1 THEN return_expr1 [WHEN comparison_expr2 THEN return_expr2 WHEN comparison_exprn THEN return_exprn ELSE else_expr] END DECODE(col|expression, search1, result1 [, search2, result2,...,] [, default])
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.