Skip to content

Instantly share code, notes, and snippets.

@rodloboz
Created January 29, 2020 22:52
Show Gist options
  • Save rodloboz/92f542ae5b535db71de7d42fe6341cd4 to your computer and use it in GitHub Desktop.
Save rodloboz/92f542ae5b535db71de7d42fe6341cd4 to your computer and use it in GitHub Desktop.
SQL queries
-- GIVE ME ALL PATIENT NAMES
SELECT first_name, last_name FROM patients;
-- GIVE ME ALL FIELDS FROM PATIENTS
SELECT * FROM patients;
-- GIVE ME ALL DOCTOR NAMES
SELECT first_name, last_name FROM doctors;
-- GIVE ME ALL ABOUT DOCTORS []
SELECT * FROM doctors;
-- GIVE ME ALL PATIENTS OF AGE 21
SELECT * FROM patients WHERE age = 21;
-- GIVE ME ALL DOCTORS OF CARDIAC SURGERY SPECIALTY
SELECT * FROM doctors WHERE specialty = 'cardiology';
-- GIVE ME ALL SURGERY DOCTORS
SELECT * FROM doctors WHERE specialty = '%Surgery';
-- GIVE ME ALL CARDIAC SURGERY DOCTORS NAMED STEVE
SELECT * FROM doctors
WHERE specialty = 'Cardiac Surgery'
AND first_name = 'Steve';
-- GIVE ME ALL PATIENTS ORDERED BY AGE
SELECT * FROM patients ORDER BY age ASC -- show younger patients first
SELECT * FROM patients ORDER BY age DESC; -- show older patients first
-- HOW MANY DOCTORS DO I HAVE?
SELECT COUNT(*) FROM doctors; -- returns integer with number of doctors
-- COUNT CARDIAC SURGERY DOCTORS
SELECT COUNT(*) FROM doctors
WHERE specialty = 'Cardiac Surgery';
-- ['cardiac surgery', ..].uniq
SELECT specialty FROM doctors;
-- COUNT ALL DOCTORS PER SPECIALTY
-- Psychology: 2
-- Cardiac Surgery: 3
SELECT COUNT(*), specialty FROM doctors
GROUP BY specialty;
-- COUNT ALL DOCTORS PER SPECIALTY, ORDER BY SPECIALTY
SELECT COUNT(*) AS c, specialty FROM doctors
GROUP BY specialty
ORDER BY c DESC; -- the highest counts first
-- GIVE ME ALL THE INHABITANTS FROM PARIS
SELECT * FROM inhabitants
JOIN cities ON inhabitants.city_id = cities.id
WHERE cities.name = 'Paris';
-- GIVE ME ALL THE ADULTS LIVING IN PARIS
SELECT * FROM inhabitants
JOIN cities ON cities.id = inhabitants.city_id
WHERE cities.name = 'Paris'
AND inhabitants.age >= 18;
-- FOR EACH CONSULTATION, GIVE ME ITS DATE, PATIENT AND DOCTOR NAMES
SELECT c.created_at, p.first_name, p.last_name, d.first_name, d.last_name
FROM consultations c
JOIN patients p ON c.patient_id = p.id
JOIN doctors d ON c.doctor_id = d.id;
<?xml version="1.0" encoding="utf-8" ?>
<!-- SQL XML created by WWW SQL Designer, https://github.com/ondras/wwwsqldesigner/ -->
<!-- Active URL: https://kitt.lewagon.com/db/10 -->
<sql>
<datatypes db="postgresql">
<group label="Numeric" color="rgb(238,238,170)">
<type label="Integer" length="0" sql="INTEGER" re="INT" quote=""/>
<type label="Small Integer" length="0" sql="SMALLINT" quote=""/>
<type label="Big Integer" length="0" sql="BIGINT" quote=""/>
<type label="Decimal" length="1" sql="DECIMAL" re="numeric" quote=""/>
<type label="Serial" length="0" sql="SERIAL" re="SERIAL4" fk="Integer" quote=""/>
<type label="Big Serial" length="0" sql="BIGSERIAL" re="SERIAL8" fk="Big Integer" quote=""/>
<type label="Real" length="0" sql="BIGINT" quote=""/>
<type label="Single precision" length="0" sql="FLOAT" quote=""/>
<type label="Double precision" length="0" sql="DOUBLE" re="DOUBLE" quote=""/>
</group>
<group label="Character" color="rgb(255,200,200)">
<type label="Char" length="1" sql="CHAR" quote="'"/>
<type label="Varchar" length="1" sql="VARCHAR" re="CHARACTER VARYING" quote="'"/>
<type label="Text" length="0" sql="TEXT" quote="'"/>
<type label="Binary" length="1" sql="BYTEA" quote="'"/>
<type label="Boolean" length="0" sql="BOOLEAN" quote="'"/>
</group>
<group label="Date &amp; Time" color="rgb(200,255,200)">
<type label="Date" length="0" sql="DATE" quote="'"/>
<type label="Time" length="1" sql="TIME" quote="'"/>
<type label="Time w/ TZ" length="0" sql="TIME WITH TIME ZONE" quote="'"/>
<type label="Interval" length="1" sql="INTERVAL" quote="'"/>
<type label="Timestamp" length="1" sql="TIMESTAMP" quote="'"/>
<type label="Timestamp w/ TZ" length="0" sql="TIMESTAMP WITH TIME ZONE" quote="'"/>
<type label="Timestamp wo/ TZ" length="0" sql="TIMESTAMP WITHOUT TIME ZONE" quote="'"/>
</group>
<group label="Miscellaneous" color="rgb(200,200,255)">
<type label="XML" length="1" sql="XML" quote="'"/>
<type label="Bit" length="1" sql="BIT" quote="'"/>
<type label="Bit Varying" length="1" sql="VARBIT" re="BIT VARYING" quote="'"/>
<type label="Inet Host Addr" length="0" sql="INET" quote="'"/>
<type label="Inet CIDR Addr" length="0" sql="CIDR" quote="'"/>
<type label="Geometry" length="0" sql="GEOMETRY" quote="'"/>
</group>
</datatypes><table x="157" y="137" name="cities">
<row name="id" null="1" autoincrement="1">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<row name="name" null="1" autoincrement="0">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="317" y="133" name="inhabitants">
<row name="id" null="1" autoincrement="1">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<row name="first_name" null="1" autoincrement="0">
<datatype>VARCHAR</datatype>
<default>NULL</default></row>
<row name="last_name" null="1" autoincrement="0">
<datatype>VARCHAR</datatype>
<default>NULL</default></row>
<row name="age" null="1" autoincrement="0">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<row name="city_id" null="1" autoincrement="0">
<datatype>INTEGER</datatype>
<default>NULL</default><relation table="cities" row="id" />
</row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="231" y="52" name="1:N 1 TO MANY">
<row name="id" null="1" autoincrement="1">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="626" y="292" name="patients">
<row name="id" null="1" autoincrement="1">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<row name="first_name" null="1" autoincrement="0">
<datatype>VARCHAR</datatype>
<default>NULL</default></row>
<row name="last_name" null="1" autoincrement="0">
<datatype>VARCHAR</datatype>
<default>NULL</default></row>
<row name="blood_type" null="1" autoincrement="0">
<datatype>VARCHAR</datatype>
<default>NULL</default></row>
<row name="age" null="1" autoincrement="0">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="1031" y="298" name="doctors">
<row name="id" null="1" autoincrement="1">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<row name="first_name" null="1" autoincrement="0">
<datatype>VARCHAR</datatype>
<default>NULL</default></row>
<row name="last_name" null="1" autoincrement="0">
<datatype>VARCHAR</datatype>
<default>NULL</default></row>
<row name="specialty" null="1" autoincrement="0">
<datatype>VARCHAR</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="803" y="128" name="consultations">
<row name="id" null="1" autoincrement="1">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<row name="patient_id" null="1" autoincrement="0">
<datatype>INTEGER</datatype>
<default>NULL</default><relation table="patients" row="id" />
</row>
<row name="doctor_id" null="1" autoincrement="0">
<datatype>INTEGER</datatype>
<default>NULL</default><relation table="doctors" row="id" />
</row>
<row name="date" null="1" autoincrement="0">
<datatype>DATE</datatype>
<default>NULL</default></row>
<row name="price" null="1" autoincrement="0">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="637" y="57" name="N:N MANY TO MANY">
<row name="id" null="1" autoincrement="1">
<datatype>INTEGER</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
</sql>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment