Manipulation
## SELECT
SELECT * (or SOMETHING) FROM table_name;
- SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
- SOMETHING = Speficy the name of the columns we want to take the information (Columns Name)
- FROM = Indicate what table to check -->
clause
- table_name = EX: Table (Composed of coluns and rows) (Data in form of TEXT, DATE, REAL, ...)
- ; = end of the statment
AS
SELECT name AS 'Titles'
FROM movies;
- SELECT = Indicate the action (Witch is select) -->
clause
- name = columns normal name
- AS = Change the name of the Column
- 'Titles' = The name column renamed
-
- FROM = Indicate what table to check -->
clause
- FROM = Indicate what table to check -->
- table_name = EX: Table (Composed of coluns and rows) (Data in form of TEXT, DATE, REAL, ...)
- ; = end of the statment
DISTINCT
SELECT DISTINCT tools
FROM inventory;
- SELECT = Indicate the action (Witch is select) -->
clause
- DISTINCT = Return unique values in the output
- tools = Column name
- FROM = Indicate what table to check -->
clause
- table_name = EX: Table (Composed of coluns and rows) (Data in form of TEXT, DATE, REAL, ...)
- ; = end of the statment
Opperation
SELECT *
FROM movies
WHERE imdb_rating > 8;
-
=
!=
>
<
>=
<=
-
SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
-
FROM = Indicate what table to check -->
clause
-
movies = Table name
-
WHERE = Looking for value (following statement)
-
imdb_rating > 8 = Looking for imdb_rating that is unter 8
-
; = end of the statment
LIKE
SELECT *
FROM movies
WHERE name LIKE 'Se_en';
- SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
- FROM = Indicate what table to check -->
clause
- movies = Table name
- WHERE = Looking for value (following statement)
- name = columns
- LIKE 'Se_en' =
LIKE 'Se_en'
is a condition evaluating thename
column for a specific pattern. - ; = end of the statment
LIKE
SELECT *
FROM movies
WHERE name LIKE '%man%';
- SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
- FROM = Indicate what table to check -->
clause
- movies = Table name
- WHERE = Looking for value (following statement)
- name = Column name
- LIKE =
LIKE
is a condition evaluating thename
column for a specific pattern. - '%man%' = Mean anything that has something before 'man' and something after
- ; = end of the statment
IS / IS NOT
SELECT name
FROM movies
WHERE imdb_rating IS (NOT) NULL;
- SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
- FROM = Indicate what table to check -->
clause
- movies = Table name
- WHERE = Looking for value (following statement)
- imbd_rating = columns name
- IS (NOT) NULL = Looking for field that are NULL or NOT
- ; = end of the statment
BETWEEN
SELECT *
FROM movies
WHERE name BETWEEN 'D 'AND 'G';
- SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
- FROM = Indicate what table to check -->
clause
- movies = Table name
- WHERE = Looking for value (following statement)
- name = Column name
- BETWEEN = Looking for value between 2 elements
- 'D' AND 'G' = Values we are looking for
- IS (NOT) NULL = Looking for field that are NULL or NOT
- ; = end of the statment
AND
SELECT *
FROM movies
WHERE year BETWEEN 1990 AND 1999
AND genre = 'romance';
- SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
- FROM = Indicate what table to check -->
clause
- movies = Table name
- WHERE = Looking for value (following statement)
- year = Column name
- BETWEEN = Looking for value between 2 elements
- '1990' AND '1999' = Values we are looking for
- AND = Add a condition
- genre = 'romance'; = Looking for column genre = romance
- ; = end of the statment
Or
SELECT *FROM movies
WHERE year > 2014
OR genre = 'action';
- SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
- FROM = Indicate what table to check -->
clause
- movies = Table name
- WHERE = Looking for value (following statement)
- year = Column name
-
2014 = Biger the 2014
- OR = Add a OR condition
- genre = 'action'; = Looking for column genre = romance
- ; = end of the statment
Order By
SELECT *
FROM movies
ORDER BY name ASD,DSC;
- SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
- FROM = Indicate what table to check -->
clause
- movies = Table name
- ORDER BY = Order by
- name = columns name
- ASD, DSC = Assendent, Dessendent
- ; = end of the statment
Limit
SELECT *
FROM movies
LIMIT 10;
- SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
- FROM = Indicate what table to check -->
clause
- movies = Table name
- LIMIT 10 = Limit the number of responses to 10 (In this case)
- ; = end of the statment
Case
SELECT name,
CASE
WHEN imdb_rating > 8 THEN 'Fantastic'
WHEN imdb_rating > 6 THEN 'Poorly Received'
ELSE 'Avoid at All Costs'
END
FROM movies;
- SELECT = Indicate the action (Witch is select) -->
clause
- name = Column name
- CASE = Only show element that correspond to specific CASE WHEN = Condition ELSE = Everything that does not fit in those condition
- END = End the case statement
- FROM = Indicate what table to check -->
clause
- movies = Table name
- ; = end of the statment
## Join
SELECT *
FROM orders
JOIN customers
ON orders.customer_id = customers.customer_id;
- SELECT = Indicate the action (Witch is select) -->
clause
-
-
= Everything
-
- orders = Table
- JOIN = Join to the other table
- customer = Second table (the one we merge in)
- ON = Explain what field are the same (to add the right info the right customer)
## CREATE
CREATE TABLE table_name (
id INTEGER,
name TEXT,
age INTEGER
);
- CREATE = Indicate the action --> *`clause
- TABLE = Specify the table
- table_name = EX: Table (Composed of coluns and rows) (Data in form of TEXT, DATE, REAL, ...)
- id, name, age = Indicate the name of the columns
- INTEGER, TEXT, ... = Indicate the type of value that will be incerted
- ; = end of the statment
## INSERT
INSERT INTO celebs (id, name, age)
VALUES (1, 'Justin Bieber', 22);
- INSERT INTO = Indicate the action (Add info to a table) --> *`clause
- (id, name, age) = Identifying the columns that data will be inserted into.
- VALUES = Specify the value that will be inclouded in the table --> *`clause
- (1, 'Justin Bieber', 22) = Value included
- ; = end of the statment
## ALTER
ALTER TABLE celebs
ADD COLUMN twitter_handle TEXT;
- ALTER TABLE = Indicate the action (change the structure of the database) --> *`clause
- celebs = Table selected
- ADD COLUMN = Specify to add a columns --> *`clause
- twitter_handle = Name of the column added
- TEXT = Type of element in this column
- ; = End of the statment
## Update
UPDATE celebs
SET twitter_handle = '@taylorswift13'
WHERE id = 4;
- UPDATE = Indicate the action --> *`clause
- celebs = table selected
- SET = Action --> *`clause
- twitter_handle = Column name
- = '@...' = Input to be added
- WHERE id equal 4 = Searching for id equal 4
- ; = End of the statment
## Delete
DELETE FROM celebs
WHERE twitter_handle IS NULL;
- DELETE = Indicate the action
- FROM = Indicate what table to check --> *`clause
- celebs =
- WHERE = Searching for --> *`clause
- twitter_handle = Column Name
- IS NULL = Equal Nothing (Empty) --> *`clause
- ; = End of the statment
## Constraints
Reject & accept specific data
CREATE TABLE celebs (
id INTEGER PRIMARY KEY,
name TEXT UNIQUE,
date_of_birth TEXT NOT NULL,
date_of_death TEXT DEFAULT 'Not Applicable'
);
1. PRIMARY KEY
columns can be used to uniquely identify the row. Attempts to insert a row with an identical value to a row already in the table will result in a constraint violation which will not allow you to insert the new row.
2. UNIQUE
columns have a different value for every row. This is similar to PRIMARY KEY
except a table can have many different UNIQUE
columns.
3. NOT NULL
columns must have a value. Attempts to insert a row without a value for a NOT NULL
column will result in a constraint violation and the new row will not be inserted.
4. DEFAULT
columns take an additional argument that will be the assumed value for an inserted row if the new row does not specify a value for that column.
Function
## Count
SELECT COUNT(*)
FROM table_name;
- SELECT = Indicate the action (Witch is select) -->
clause
- COUNT() = Count the number of row in the column (star) = ALL --> *`clause
- FROM = Indicate what table to check -->
clause
- table_name = table name
- ; = End of the statement
## Sum
SELECT SUM(downloads)
FROM table_name;
- SELECT = Indicate the action (Witch is select) -->
clause
- SUM(downloads) = Check the summury of the download column --> *`clause
- FROM = Indicate what table to check -->
clause
- table_name = table name
- ; = End of the statement
## Max / Min
SELECT MAX(downloads)
FROM Table_name;
- SELECT = Indicate the action (Witch is select) -->
clause
- MAX(downloads) = Check the maximum download (Highest value) --> *`clause
- FROM = Indicate what table to check -->
clause
- table_name = table name
- ; = End of the statement
## Average
SELECT AVG(downloads)
FROM fake_apps;
- SELECT = Indicate the action (Witch is select) -->
clause
- AVG(downloads) = Check the average download --> *`clause
- FROM = Indicate what table to check -->
clause
- table_name = table name
- ; = End of the statement
## Round
SELECT ROUND(price, 0)
FROM fake_apps;
- SELECT = Indicate the action (Witch is select) -->
clause
- ROUND(price, 0) = round the price value with 0 precision value after the decimal
- FROM = Indicate what table to check -->
clause
- table_name = table name
- ; = End of the statement
## Group By I
SELECT year,
AVG(imdb_rating)
FROM movies
GROUP BY year
ORDER BY year;
- SELECT = Indicate the action (Witch is select) -->
clause
- year, AVG(imdb_rating) = columns
- FROM = Indicate what table to check -->
clause
- movies = Table
- GROUP BY year = Group elements by years
- ; = End of the statement
## Group By II
SELECT category,
price,
AVG(downloads)
FROM fake_apps
GROUP BY category, price;
- SELECT = Indicate the action (Witch is select) -->
clause
- year, AVG(imdb_rating), ... = columns
- FROM = Indicate what table to check -->
clause
- movies = Table
- GROUP BY category, price = Group elements by category and price
- ; = End of the statement