departamento de caso de consulta mysql, dados da tabela emp

departamento de caso de consulta mysql, dados da tabela emp

Mesa de departamento

CREATE TABLE DEPT (
DEPTNO INT PRIMARY KEY, - número do departamento
DNAME VARCHAR (14), - nome do departamento
LOC VARCHAR (13) - endereço do departamento
) charset = utf8;

INSERIR EM VALORES DE DEPTO (10, 'CONTABILIDADE', 'NOVA YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERIR EM VALORES DE DEPTO (30, 'VENDAS', 'CHICAGO');
INSERIR EM VALORES DE DEPTO (40, 'OPERAÇÕES', 'BOSTON');

Mesa de funcionários

CREATE TABLE EMP
(
EMPNO INT PRIMARY KEY, - Número do funcionário
ENAME VARCHAR (10), - Nome do funcionário
JOB VARCHAR (9), - Trabalho
MGR DOUBLE, - Número do líder direto
HIREDATE DATE, - Horário de entrada
SAL DOUBLE, - Salário
COMM DOUBLE, - Bonus
DEPTNO INT, - número do departamento
FOREIGN KEY (DEPTNO) REFERENCES DEPT (DEPTNO)) charset = utf8;

SELECT * FROM emp;

INSERT INTO EMP VALUES
(7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, NULL, 20);
INSERT INTO EMP VALUES
(7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600,300,30);
INSERT INTO EMP VALUES
(7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250,500,30);
INSERT INTO EMP VALUES
(7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, NULL, 20);
INSERT INTO EMP VALUES
(7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250,1400,30);
INSERT INTO EMP VALUES
(7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, NULL, 30);
INSERT INTO EMP VALUES
(7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, NULL, 10);
INSERT INTO EMP VALUES
(7788, 'SCOTT', 'ANALYST', 7566, '1987-07-13', 3000, NULL, 20);
INSERT INTO EMP VALUES
(7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000, NULL, 10);
INSERT INTO EMP VALUES
(7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500,0,30);
INSERT INTO EMP VALUES
(7876, 'ADAMS', 'CLERK', 7788, '1987-07-13', 1100, NULL, 20);
INSERT INTO EMP VALUES
(7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, NULL, 30);
INSERT INTO EMP VALUES
(7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, NULL, 20);
INSERT INTO EMP VALUES
(7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, NULL, 10);

Escala de salário

CREATE TABLE SALGRADE
(GRADE INT, - 工资 等级
LOSAL DOUBLE, - 最低 工资
HISAL DOUBLE) charset = utf8; - 最高 工资
INSERIR EM VALORES DE SALGRADA (1.700,1200);
INSERIR EM VALORES DE SALGRADA (2.1201.1400);
INSERIR EM VALORES DE SALGRADA (3.1401.2000);
INSERIR EM VALORES DE SALGRADA (4.2001.3000);
INSERIR EM VALORES DE SALGRADA (5.301.999);

Caso de consulta:

Consultar uma única coluna
SELECT nome da coluna FROM tabela;
 Consultar o nome do funcionário
SELECT ename FROM emp;
Consultar várias colunas
SELECT coluna 1, coluna 2, coluna 3 ... FROM tabela;
 Consultar o nome do funcionário e trabalho
SELECT ename, trabalho FROM emp;
consultar todas as colunas
o SELECT * o FROM da tabela;
 consultar todas as informações dos funcionários
SELECT * FROM emp;
remover dados duplicados
SELECT DISTINCT coluna 1, coluna 2 ... o FROM da tabela;
 consultar a tabela emp que negocia
SELECT DISTINCT job FROM emp;
query Quatro operações aritméticas O
Mysql suporta quatro operações aritméticas diretamente na consulta [+, - ,, /]
Query o salário anual de cada funcionário
SELECT ename, sal
12 FROM emp;
query alias
Selecione a coluna 1 AS alias 1, coluna 2 alias 2… DA Tabela;
 Consultar o salário anual de cada funcionário
SELECT nome do ename, sal * 12 AS salário anual FROM emp;
classificar consulta
SELECT * FROM tabela ORDER BY coluna 1 ASC, coluna 2 DESC ...
 Consultar o nome e o salário do funcionário, classificar em ordem decrescente de salário
SELECT ename, sal FROM emp ORDER BY sal DESC;
 Classificar por vários campos: consultar o nome do funcionário, data de entrada e salário, classificar em ordem crescente de salário e data de entrada
SELECT ename, emp.HIREDATE, sal FROM emp ORDER BY sal ASC, emp.HIREDATE ASC;
consulta de paginação
SELECT * FROM tabela LIMIT início, tamanho
da
página ;  Consultar os três primeiros registros da tabela de funcionários SELECT ename, emp.HIREDATE, sal FROM emp LIMITE 3; - 3 retirado antes da gravação
 consulta à tabela de funcionários três registros do meio, começando do quinto para receber
SELECT ename, emp.HIREDATE, sal fROM emp LIMIT 5,3; - 5 é o número da linha, número da linha de 0
 consulta Os 10 registros no meio da tabela de funcionários são retirados do quinto,
SELECT ename, emp.HIREDATE, sal FROM emp ORDER BY sal LIMIT 5,10 em ordem crescente de salário ;
use nomes de coluna totalmente qualificados para consultar
SELECT tabela 1 . Coluna 1, Tabela 1. Coluna 2 ... DA tabela;  Consultar
nome e salário do funcionário
SELECT nom.emp.emp.sal FROM emp;
consultar tabela alias consulta
SELECT a. Coluna 1, a. Coluna 2… DA Tabela a ;

Pesquise o nome e o salário do funcionário SELECT e.ename, e.sal FROM emp e;
cláusula WHERE
Selecione * da tabela onde a condição é ordenada por coluna1…;

Use operadores de comparação para consultar
 Consultar informações do funcionário cujo número de funcionário é 7566
SELECT * FROM emp e WHERE e.EMPNO = 7566;  Consultar informações do funcionário
que não seja um vendedor
SELECT * FROM emp e WHERE e.JOB! = 'VENDEDOR';
SELECT * FROM emp e WHERE e.JOB <> 'VENDEDOR';  Consultar
informações de funcionários cujo salário é inferior a 3200
SELECT * FROM emp e WHERE e.SAL <3200;  Consultar
informações de funcionários cujo salário é superior a 3200
SELECT * FROM emp e WHERE e. SAL> 3200;  Consultar
informações do funcionário com salário menor ou igual a 2.000
SELECT * FROM emp e WHERE e.SAL <= 2000;  Consultar
informações do funcionário com salário maior ou igual a 2.000
SELECT * FROM emp e WHERE e. SAL> = 2000;
escopo Consulta Consultar
informações do funcionário com salário entre 2000 e 3000
SELECT * FROM emp e WHERE e.SAL ENTRE 2000 E 3000; consulta
nula / não vazia
Consultar informações do funcionário com bônus
SELECT * DE emp e ONDE e.COMM NÃO É NULO;
 Consultar informações do funcionário sem bônus
SELECT * FROM emp e WHERE e.COMM IS NULL;
muitas condições -E
consulta de informações do funcionário Vendedor  maior que 1200 Salários
SELECT * WHERE e.SAL the FROM EMP E> = e.JOB the AND 1250 'Salesman';
 consultar informações do funcionário data de entrada do vendedor com salário maior que 1200 antes de maio de 1981 de
SELECT * FROM emp e WHERE e.SAL> 1250 AND e.JOB = 'vendedor' AND e.HIREDATE <'1981-5-1';
Multi- consulta de condição- OU Query
informações sobre funcionários cujo salário é maior que 4500 ou vendedor
SELECIONE * FROM emp e WHERE e.SAL> 4500 OR e.JOB = 'vendedor';
Query informações sobre três funcionários: 7566, 7788 e 7956
SELECIONE * DE emp e ONDE e.EMPNO = 7566 OU e.EMPNO = 7788 OU e.EMPNO = 7839;
IN
consulta de palavra-chave  Consultar informações de três funcionários : 7566, 7788, 7956
SELECIONE * DE emp e ONDE e.EMPNO IN ( 7566,7788,7839,777);
NÃO consulta de palavra-chave
A consulta não é a informação dos três funcionários 7566, 7788, 7956
SELECT * FROM emp e ONDE e.EMPNO NOT IN (7566,7788,7839);
Consulta difusa Query
informações do funcionário com A no nome
SELECT * FROM emp e WHERE e.ENAME LIKE '% a%'; Nome da consulta
Employee informações que terminam com A em
SELECT * FROM emp e WHERE e.ENAME LIKE '% a';  Consultando
informações de funcionários começando com A no nome
SELECT * FROM emp e WHERE e.ENAME LIKE'a% ';  Consultando
nome O segundo letter é a informação do funcionário de A
SELECT * FROM emp e WHERE e.ENAME LIKE ' a%';



A terceira letra do nome da consulta é a informação do funcionário de A SELECT * FROM emp e WHERE e.ENAME LIKE '__ a%' ;  Consultar informações do funcionário cujo nome é _ como a segunda letra SELECT * FROM emp e WHERE e.ENAME LIKE ' / _%' ESCAPE '/';
Combinação consulta-conjunto de resultados combinados

 Consulta de informações de funcionários com salário acima de 1200
SELECT ename, sal FROM emp e WHERE e.SAL> 1200;
 Consulta de informações de funcionários com salário acima de 3000
SELECT ename, sal FROM emp e WHERE e.SAL> 3000;


-Merge o conjunto de resultados: remove dados duplicados SELECT ename, sal FROM emp e WHERE e.SAL> 1200
UNION
SELECT ename, sal FROM emp e WHERE e.SAL> 3000;

- Conjunto de resultados combinados: não remover dados duplicados
SELECT ename, sal FROM emp e WHERE e.SAL> 1200
UNION ALL
SELECT ename, sal FROM emp e WHERE e.SAL> 2000 ORDER BY sal;
função de agrupamento

- Função de soma SUM (): Encontre a soma de todos os salários
SELECT SUM (sal) FROM emp;
- Encontre a soma dos salários do departamento 20
SELECT SUM (sal) FROM emp WHERE emp.DEPTNO = 20;
- Encontre a função média AVG (): encontre o salário médio de todos
SELECT AVG (sal) FROM emp;
- encontre o salário médio do departamento 20
SELECT AVG (sal) FROM emp ONDE emp.DEPTNO = 20;
- encontre a função de valor máximo MAX (): query Salário máximo
SELECT MAX (sal) FROM emp;
- Consultar o salário máximo do departamento 20
SELECT MAX (sal) FROM emp WHERE emp.DEPTNO = 20;
- Encontrar o valor mínimo função MIN (): Consultar o salário mínimo
SELECT MIN ( sal) FROM emp;
- Consultar o salário mínimo do departamento 20
SELECT MIN (sal) FROM emp WHERE emp.DEPTNO = 20;
- Encontrar o número total de linhas função count (): consultar quantos funcionários a empresa possui
SELECT COUNT (empno ) FROM emp;
- Consulta o número de pessoas no departamento 20
SELECT COUNT (empno) FROM emp WHERE emp.DEPTNO = 20;

Consulta de grupo
 Consultar o salário mínimo de cada departamento
SELECT deptno, MIN (sal) xyz FROM emp GROUP BY deptno;
 Consultar o salário máximo de cada departamento
SELECT deptno, MAX (sal) xyz FROM emp GROUP BY deptno;
 consultar cada O número de pessoas no departamento
SELECT deptno, COUNT (empno) xyz FROM emp GROUP BY deptno;
 Consultar quantas pessoas estão em cada
categoria de trabalho em cada departamento SELECT deptno, job, COUNT (empno) FROM emp e GROUP BY e.DEPTNO , e.JOB;
 Consultar o salário mínimo e o número do departamento de cada departamento
SELECT deptno, MIN (sal) FROM emp e GROUP BY e.DEPTNO;

Exercício de função de grupo: exibir a soma do nome do trabalho da equipe não comercial e o salário mensal dos funcionários envolvidos no mesmo trabalho
SELECIONE e.JOB, SUM (sal) FROM emp e ONDE e.JOB <> GRUPO 'vendedor' POR e.JOB;
Consulta de agrupamento: Filtre as condições de agrupamento. Filtre
os dados após o agrupamento. Use a cláusula HAVING -
exiba o nome do trabalho da equipe não comercial e a soma dos salários mensais dos funcionários
envolvidos no mesmo trabalho - e satisfaça que a soma dos salários mensais para o mesmo trabalho seja superior a 5.000, o resultado Classifica na ordem crescente do salário total mensal. Retire o primeiro registro
SELECT e.JOB, SUM (sal) sum FROM emp e WHERE e.JOB <> 'vendedor'
GROUP BY e.JOB HAVING SUM (sal)> 5000 ORDER BY sum DESC LIMIT 1;

Resumo:
Sequência de instrução SQL:
selecione a coluna 1, coluna 2 ... from tableName [cláusula WHERE] [cláusula GROUP BY] [cláusula HAVING] [cláusula ORDER BY] [limit x, y]
Excluir
formato de dados : DELETE FROM tableName [ ONDE condição];

 Excluir com condições, caso contrário, excluir os dados de toda a tabela
EXCLUIR DE salgrade; Excluir
funcionário número 7369
EXCLUIR DE emp WHERE empno = 7369;
Excluir 7521 ou funcionário do departamento 20
EXCLUIR DE emp ONDE empno = 7521 OU deptno = 20;

Se você realmente deseja limpar os dados da tabela, use a tabela truncada para ser mais rápido
TRUNCATE emp;
atualize os dados
Formato: ATUALIZAR nome da tabela SET coluna 1 = valor 1, coluna 2 = valor 2 [onde condição]
Modificar todos os departamentos endereços para Xangai
UPDATE dept SET loc = 'Shanghai'; - A atualização deve ser condicional, caso contrário, toda a tabela
será atualizada  Altere o endereço do departamento nº 10 para Pequim e altere o nome do departamento para departamento de informações
UPDATE DEpt SET dname = 'Departamento de informação', loc = 'Pequim' WHERE deptno = 10; A
terceira unidade
Restrições Restrição de
chave primária Restrição de chave
primária: Os dados no campo que são restringidos pela restrição de chave primária não podem ser NULL e não podem ser repetidos [Não -empty, unique]
Nota: Só pode haver uma restrição de chave primária em cada tabela

DROP TABLE dept;
 Ao criar uma tabela, adicione uma restrição de chave primária
CREATE TABLE dept (
deptno INT PRIMARY KEY, -adicione uma restrição de chave primária
dname VARCHAR (10),
endereço VARCHAR (100)
);
INSERT INTO dept VALUES (20, 'Research Department x', 'Dallas'); - A adição é bem-sucedida porque não viola as regras de restrições de chave primária.
INSERT INTO dep. VALUES (20, 'Research Department x', 'Dallas'); - A adição falha porque 20 é repetido

Excluir a restrição de chave primária
ALTER TABLE dept DROP PRIMARY KEY;
Definir a restrição de chave primária para a tabela criada
ALTER TABLE emp CHANGE empno empno INT (11) PRIMARY KEY; o
incremento de chave primária
DROP TABLE dept;
CREATE TABLE dept (
deptno INT PRIMARY KEY AUTO_INCREMENT, - Adiciona uma restrição de chave primária ao campo deptno
dname VARCHAR (10),
endereço VARCHAR (100)
);
- 0 e nulo usam valor de
autoincremento INSERT INTO DEpt VALUES (0, 'Departamento de Pesquisa x', ' Dallas ');
INSERT INTO dep. VALUES (null,' Research Department x ',' Dallas ');
INSERT INTO dep (dname, address) VALUES (' Research Department x ',' Dallas ');
- Para valores específicos, use specific valores
INSERT INTO DEpt VALUES (999, 'Research Departmentx', 'Dallas');
Adicionar auto-incremento de chave primária à tabela criada
ALTER TABLE dept CHANGE deptno deptno INT (11) AUTO_INCREMENT;
Restrição única O
valor do campo exclusivamente restrito não pode ser repetido.
DROP TABLE dept;
 Ao criar uma tabela, adicione uma restrição única
CREATE TABLE dept (
deptno INT PRIMARY KEY, - adicione uma restrição de chave primária à coluna deptno
dname VARCHAR (10) NOT NULL, - adicione uma restrição não nula ao Coluna DNAME,
endereço VARCHAR (100) UNIQUE NOT NULL - adiciona restrições exclusivas e não nulas ao endereço
);
Excluir restrições exclusivas: Restrições exclusivas são um tipo de índice, portanto, use a sintaxe de exclusão de índices para excluir restrições exclusivas.
ALTER TABLE endereço DROP INDEX
ou
ALTER TABLE emp CHANGE empno empno INT (11).
Adicione uma restrição única à tabela criada
ALTER TABLE dept CHANGE dname dname VARCHAR (10) NOT NULL UNIQUE; restrição
não
nula O valor do campo restrito não nulo não pode ser NULL
DROP TABLE depto;
 Ao criar a tabela, adicione Restrição não nula
CREATE TABLE dept (
deptno INT PRIMARY KEY,
-Adicione uma restrição de chave primária ao campo deptno dname VARCHAR (10) NOT NULL, -Adicione uma restrição não nula ao campo DNAME,
endereço VARCHAR (100)
);

INSERT INTO DEpt VALUES (10, 'xxx', 'Dallas'); - Sucesso
INSERT INTO dep VALUES (20, 'YYY', 'Dallas'); - Sucesso
INSERT INTO dep VALUES (30, NULL, 'Dallas'); - Falha devido a violação de restrição não vazia

Excluir a restrição não nula
ALTER TABLE dept CHANGE dname dname VARCHAR (10);
Adicionar a restrição não nula à tabela criada
ALTER TABLE dept CHANGE dname dname VARCHAR (10) NOT NULL; o
valor padrão
define o campo restrito por o valor padrão, Se você não atribuir um valor, use o valor padrão
DROP TABLE dept;
 Ao criar uma tabela, adicione uma restrição de valor padrão
CREATE TABLE dept (
deptno INT PRIMARY KEY, - Adicione uma restrição de chave primária
dname VARCHAR (10 ) NOT NULL, - ao campo deptno campo DNAME adiciona restrição não nula,
endereço VARCHAR (100) UNIQUE NOT NULL DEFAULT'Shanghai'- adiciona restrição única e não nula ao endereço
);
INSERT INTO DEpt VALUES (10, ' xxx ',' Dallas ');
INSERT INTO dept (deptno, dname) VALUES (210,' xxxY ');
INSERT INTO depto VALUES (30,' xxx ',' Dallas ');
 excluir a restrição de valor padrão
ALTER TABLE depto CHANGE endereço endereço VARCHAR (10);
 adicionar restrição de valor padrão
ALTER TABLE departamento CHANGE endereço endereço VARCHAR (10) NOT NULL DEFAULT '上海';

Acho que você gosta

Origin blog.csdn.net/shuai_ge_feng/article/details/107357962
Recomendado
Clasificación