【SQL】Instruction PostgreSQL

Récemment, PostgreSQL a été utilisé pour faire beaucoup de travail de traitement de données, et maintenant je vais trier les instructions SQL utilisées.

créer une base de données

CREATE DATABASE nom_table ;

créer un formulaire

CREATE table_name IF NOT EXISTS {} (horodatage, data int)

insérer des données

insérer dans les valeurs de table_name (%s, %s);

sélectionner des données

SELECT heure, données FROM nom_table

Plusieurs tables ne suppriment pas les associations en double

SÉLECTIONNER * À PARTIR de la table1UNION TOUSSELECT * FROM table2
UNION est une association haut-bas, qui fusionne les données de plusieurs tables, et elle est divisée en fusion de déduplication UNION et fusion de non-déduplication UNION ALL

Association et filtrage multi-tables

SÉLECTIONNERtemps, donnéesDEPUISTableau 1REJOINDRETableau 2SURtable1.id=table2.idtable1.code dans ('999')

join est une association gauche-droite, liée à left right full, etc. on est une règle de jointure
où est une instruction conditionnelle

Convertir le type de colonne

alter TABLE table_name alter COLUMN col_name type int using col_name::int
convertit le type de la colonne col_name dans la table table_name en int

NULL rempli de 0

update table_name set col_name=coalesce(col_name, 0)
remplit le NULL dans la colonne col_name de la table table_name avec 0

division équidistante du temps

SELECT date_trunc('hour', time) + INTERVAL '2 minutes' * (floor(extract('minute' from time) / 2)) AS time_slot,sum(data) FROM table_name GROUP BY time_slot ORDER BY time_slot; table table_name
Selon à la colonne temps, regrouper et additionner toutes les 2 minutes et trier par temps

format de modification de l'heure

to_char(time, 'YYYY-MM-DD HH24:MI:00')::TIMESTAMP
après ::TIMESTAMP est facultatif, selon le format unifié de diverses données temporelles

créer un horodatage (séquence)

Dans la fusion multi-tables, il est généralement nécessaire de prendre en compte le manque de données, nous devons donc définir manuellement la colonne d'heure standard, afin que les lignes de données manquantes soient également affichées et ne soient pas affichées en raison de données manquantes.
SELECT '2023-06-09 08:00:00'::timestamp AS time
SELECT generate_series('2023-01-01 08:00'::timestamp, '2023-01-01 21:00'::timestamp, ' 10 minutes'::intervalle) Horodatage AS ;

Je suppose que tu aimes

Origine blog.csdn.net/qq_43166192/article/details/130934056
conseillé
Classement