Notes de base de données d'étude -oracle (7)

Le langage de requête SQL sous-jacente --DQL

1) La sélectionner la langue de requête de base ... de ... où ...;

  • (1) à partir des mots - clés
    spécifiés dans la requête à partir de laquelle la table
  • (2) utilisent un problème d'alias
    les colonnes à l'intérieur de l' instruction select, sélectionnez une requête donnée
    syntaxe: Après la mise à écrire un alias, séparés par un espace, au milieu peut être ajouté ou non ajouté comme mot - clé.
    Remarque: Si vous voulez alias de caractères sensibles à la casse, ou alias contient des caractères ou des espaces, il doit être entre guillemets doubles.
列明 别名
列明 as 别名
select empno, ename, sal*12 from emp;
select empno as id, ename name, sal*12 as totalSal from emp;
select empno as "id", ename "name", sal*12 as "年薪" from emp;
  • (3) sélectionner clause pour
    sélectionner une colonne à interroger
    si elle est toutes les colonnes de la table, dans le dos de select *
    S'il est une des colonnes spécifiques, écrire clairement sélectionner derrière ces colonnes, séparées par des virgules.
select * from...
select id, name,age as 别名 from ....
  • (4) où la clause
    where utilisée pour rendre les conditions dans les limites de la requête
    ( le cas échéant avec la clause select, update, suppression) a
    souligné:
    ① dans la clause where, et si la condition est relativement nombre, vous pouvez utiliser un seul
    guillemets ne le font pas;
    ② dans la clause where, si cette chaîne, la date et le nombre de types de
    données sont comparées, il doit être placé entre guillemets simples.
查询在部门10下面的所有员工信息
select * from emp where deptno=10;
select * from emp where deptno='10';
查询员工表中职位是SALESMAN的职员
select * from emp where job='SALESMAN';
select * from emp where job=SALESMAN;   ORA-00904: "SALESMAN": 标识符无效

2) requête dans Oracle ---- clause where

  • (1)> <> = <= =! = Équivalent <>
查询员工表薪水低于2000的员工信息
select * from emp where sal<2000;
select * from emp where sal+nvl(comm,0)<2000;
查询员工表中不属于部门10的员工信息
select * from emp where deptno!=10;
select * from emp where deptno<>10;
查询员工表中在2002年1月1日以后入职的员工信息,比较日期类型数据
SELECT ENAME,SAL,HIREDATE FROM emp 
WHERE HIREDATE > TO_DATE('2002-1-1','YYYY-MM-DD');
  • (2) et ou ou des mots - clés
    dans l'opération SQL, si le résultat souhaité est retourné doit répondre à un certain nombre de conditions, et utilisé pour connecter ces conditions,
    l'opération de SQL, si le résultat souhaité est retourné est l' une d'une pluralité de conditions sont satisfaites , ou utilisé pour connecter ces conditions.
查询底薪大于1000并且职位是'CLERK'的员工信息
select * from emp where sal>1000 and job='CLERK'; 正确
SELECT * FROM EMP WHERE SAL>1000 AND JOB='CLERK'; 正确
select * from emp where sal>1000 and job='clerk';   错误
select * from emp where sal>1000 and lower(job)='clerk'; 正确
select * from emp where sal>1000 and initcap(job)='Clerk';  正确
select job, upper(job), lower(job), initcap(job) from emp;
查询底薪大于1000或者职位是'CLERK'的员工信息
select * from emp where sal>1000 or lower(job)='clerk';
select * from emp where sal>1000 or job='CLERK';
  • (3) les conditions d'utilisation comme - recherche floue
    générique floue de requête correspondant:
    %: 0 pour représenter une pluralité de caractères
    _: représente un seul caractère
select * from emp where ename='SMITH';    精确值查询
select * from emp where ename like '_A%';   员工姓名中第二个字母是A的  模糊匹配查询
模糊匹配查询     查询员工姓名中包含A的所有信息
select * from emp where ename like '%A%';
模糊匹配查询    查询员工姓名中是S结尾的员工信息
select * from emp where ename like '%S';
  • (4) et ne sont pas utilisés
    Syntaxe: en (list1, list2, list3 , ...) prend une valeur égale à la liste
    non (list1, list2, list3 ...) ne correspond pas à la liste de données extraites
    liste de paramètres représente une liste de valeurs, chaque liste séparée par des virgules de valeurs
查询职位是MANAGER或者CLERK的员工信息
select * from emp where job='MANAGER' or job='CLERK';
select * from emp where job in('MANAGER', 'CLERK');
查询出不是部门10和不是部门20的员工信息
select * from emp where deptno !=10 and deptno !=20;   正确
SELECT * FROM emp WHERE DEPTNO NOT IN (10,20);    正确
select * from emp where deptno !=10  or deptno !=20;   错误
  • (5) l' utilisation entre a1 et a2
    données (la plage comprise entre a1 et a2, comprenant a1 et a2) une plage de valeurs pour les requêtes qui remplissent les conditions
    utilisées dans le type numérique, de type chaîne, et la gamme de type de données de date.
查询底薪在1500~3000之间的员工信息
select * from emp where sal between 1500 and 3000;
select * from emp where sal>=1500 and sal<=3000;
  • (6) est non nulle est nulle et
    une valeur nulle est une valeur spéciale, ne peut pas être utilisé lorsque l'on compare =.
    Est égal à zéro est nul
    est pas égal à zéro est non nul
查询提成为空的员工信息
select * from emp where comm is null;
查询提成不为空的员工信息
select * from emp where comm is not null;
  • (7) l' utilisation de toute
    toute peut être utilisé seul, avec un opérateur de comparaison besoin >> = << = utiliser avec
>any(list1,list2,list3,....):大于()里的最小值
<any(list1,list2,list3....):小于()里的最大值
>all(list1,list2,list3...):大于()里的最大值
<all(list1,list2,list3...):小于()里的最小值
select * from emp where sal>any(3500,4000,4500);  工资大于3500
select * from emp where sal<any(3500,4000,4500);  工资小于4500
select * from emp where sal>all(3500,4000,4500);    工资大于4500
select * from emp where sal<all(3500,4000,4500);    工资小于3500
any   大于最小的,小于最大的
all     大于最大的,小于最小的
  • (8) Utilisation de la déduplication distinct
    ligne de données peut stocker les mêmes données dans le tableau de données, la requête par défaut est un cas où les données de toutes les lignes.
    Lorsque les données en double n'a pas de sens, vous pouvez utiliser la déduplication distincte.
    Note: distincte devant les noms de colonnes en utilisant la clause select.
select deptno from emp;    查询员工表中的所有部门编号
查看员工表中有哪些部门,过滤重复数据
select distinct deptno from emp;
查询员工表中部门和职位
select deptno, job from emp;
查看每个部门的职位--去掉重复
select distinct deptno, job from emp;
Publié 53 articles originaux · louange gagné 36 · vues 2415

Je suppose que tu aimes

Origine blog.csdn.net/qq_44458489/article/details/104671850
conseillé
Classement