Nota: SQL fuga llena

declaración HAVING

Aumento de la cláusula HAVING SQL porque, DONDE palabra clave no se puede utilizar con las funciones de agregado.
cláusula HAVING nos permite filtro después de cada conjunto de paquetes de datos.

SELECT release_year
FROM films
GROUP BY release_year
HAVING COUNT(title) > 200;

USING

En SQL unir dos tablas, si los dos campos son iguales a la conexión, puede ser equivalente a usar en ON.

SELECT c.name AS country, continent, l.name AS language, official
FROM countries AS c
INNER JOIN languages AS l
USING(code);
SELECT c.name AS country, continent, l.name AS language, official
FROM countries AS c
INNER JOIN languages AS l
ON c.code = l.code;

instrucción SELECT INTO

instrucción SELECT INTO para seleccionar datos de una tabla, y los datos en otra tabla.
instrucción SELECT INTO se utiliza para crear copias de seguridad de tablas o de los registros de archivo.

SELECT column_name(s)
INTO new_table_name [IN externaldatabase] 
FROM old_tablename
SELECT country_code, size,
    CASE WHEN size > 50000000 THEN 'large'
        WHEN size > 1000000 THEN 'medium'
        ELSE 'small' END
        AS popsize_group
INTO pop_plus
FROM populations
WHERE year = 2015;

Y el operador UNION ALL UNIÓN

UNIÓN resultado de la operación operador de conjunto para combinar dos o más de la instrucción SELECT.

Tenga en cuenta que el interior de la instrucción UNION SELECT debe tener el mismo número de columnas. Las columnas también deben tener tipos de datos similares. Mientras tanto, el orden de las columnas en cada instrucción SELECT debe ser el mismo.

Nota: Por defecto, el operador UNION para seleccionar un valor diferente. Si usted permite que valores duplicados, utilice UNION ALL.

SELECT code, year
  FROM economies
	UNION ALL
SELECT country_code, year
  FROM populations
ORDER BY code, year;

declaraciones INTERSECT

Y comando similar UNION, INTERSECT también los resultados de dos sentencias SQL generadas por el proceso de hacerlo. La diferencia es, la unión es una sustancialmente o (si el valor está presente en una primera o segunda frase, será seleccionado), y es más como INTERSECT Y (el valor de estar presente en el primero y se seleccionará la segunda frase). UNIÓN es la unión, y se cruzan es la intersección.

SELECT code, year
  FROM economies
	INTERSECT
SELECT country_code, year
  FROM populations
ORDER BY code, year;

SALVO declaración

SALVO rendimientos diferencia de dos conjuntos de resultados (es decir, la consulta de retorno de izquierda y derecha para consultar todos los valores distintos no encontrado).

SELECT name
  FROM cities
	EXCEPT
SELECT capital
  FROM countries
ORDER BY name;

CROSS JOIN conexión cruzada

Sin los donde las condiciones de la cláusula, devolverá el producto cartesiano de las dos tablas están conectados, el resultado es igual al número de filas producto de dos filas de la tabla devueltos;

SELECT c.name AS city, l.name AS language
FROM cities AS c        
  CROSS JOIN languages AS l
WHERE c.name LIKE 'Hyder%';

semi-unirse a 和 anti-unirse

Cuando-unirse Semi normalmente se produce o existe en el uso de la sql, es decir, un denominado semi-unirse, hay uno o más registros coincidentes en la segunda mesa cuando dos tablas durante la asociación, devuelve una lista de registros; y cuando la diferencia es que se unen ordinaria semi-join, un primer registro de la tabla como máximo una vez devuelto;

SELECT DISTINCT name
FROM languages
WHERE code IN
  (SELECT code
   FROM countries
   WHERE region = 'Middle East')
ORDER BY name;

Y anti-unirse con el contrario semi-join, es decir, cuando se encuentra una coincidencia, la segunda tabla tabla almacenada volverá a la primera grabación;

Cuando no existe / no en el tiempo será utilizado, tanto será diferente cuando se trata de valores nulos

Al seleccionar anti-unirse

    1. No está en uso y no hay restricción correspondiente columna nula
    1. No existe, no garantiza todos los usos anti-join
SELECT *
  FROM countries
  WHERE continent = 'Oceania'
  	AND code NOT in
  	(SELECT code
  	 FROM currencies);

Añadir, cambiar, y mucho más, borrar (serie de mesa de operaciones)

1. Nueva tabla

CREATE TABLE table_name (
 column_a data_type,
 column_b data_type,
 column_c data_type
);

Por ejemplo:

CREATE TABLE universities(
 university_shortname text,
 university text,
 university_city text
);

2. tener complemento fila

ALTER TABLE table_name
ADD COLUMN column_name data_type;

Por ejemplo:

ALTER TABLE professors
ADD COLUMN university_shortname text;

3. Cambie el nombre del nombre de la columna

ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;

Por ejemplo:

ALTER TABLE affiliations
RENAME COLUMN organisation TO organization;

4. quitar columnas

ALTER TABLE table_name
DROP COLUMN column_name;

Por ejemplo:

ALTER TABLE affiliations
DROP COLUMN university_shortname;

La migración de datos a la nueva tabla

INSERT INTO ... 
SELECT DISTINCT ... 
FROM ...;

Por ejemplo:

INSERT INTO professors 
SELECT DISTINCT firstname, lastname, university_shortname 
FROM university_professors;

6. Eliminar la tabla

DROP TABLE table_name;

Por ejemplo:

DROP TABLE university_professors;

7. Cambiar el tipo de datos

ALTER TABLE table_name
ALTER COLUMN column_name
TYPE data_type_new;

Por ejemplo:

ALTER TABLE professors
ALTER COLUMN firstname
TYPE varchar(64);

moldes de datos

SELECT CAST(some_column AS data_type)
FROM table;

Por ejemplo:

SELECT transaction_date, amount + CAST(fee AS integer) AS net_amount 
FROM transactions;

La adición de una restricción única

Nuevas tablas:

CREATE TABLE table_name (
 column_name UNIQUE
);

tabla existente:

ALTER TABLE table_name
ADD CONSTRAINT some_name UNIQUE(column_name);

Por ejemplo:

ALTER TABLE organizations
ADD CONSTRAINT organization_unq UNIQUE(organization);

Añadir una restricción de clave primaria

ALTER TABLE table_name
ADD CONSTRAINT some_name PRIMARY KEY (column_name)

Por ejemplo:

ALTER TABLE universities
ADD CONSTRAINT university_pk PRIMARY KEY(id);

Creación de una clave primaria auto-incrementales

ALTER TABLE professors 
ADD COLUMN id serial; # 新增一个类型为serial的字段

ALTER TABLE professors 
ADD CONSTRAINT professors_pkey PRIMARY KEY (id);

Fusionarse para crear un nuevo campo de clave principal

ALTER TABLE cars
ADD COLUMN id varchar(128);

UPDATE cars
SET id = CONCAT(make, model);

ALTER TABLE cars
ADD CONSTRAINT id_pk PRIMARY KEY(id);

Crear una clave externa

ALTER TABLE a 
ADD CONSTRAINT a_fkey FOREIGN KEY (b_id) REFERENCES b (id);

Por ejemplo:

ALTER TABLE professors 
ADD CONSTRAINT professors_fkey FOREIGN KEY (university_id) REFERENCES universities (id);
Publicado 11 artículos originales · ganado elogios 0 · Vistas 680

Supongo que te gusta

Origin blog.csdn.net/weixin_42871941/article/details/104873830
Recomendado
Clasificación