What is SQL?
• SQL is the standard language for dealing with Relational Databases.
• SQL is used to insert, search, update, and delete database records.
Note:
• SQL keywords are NOT case sensitive: select is the same as SELECT
• Some database systems require a semicolon at the end of each SQL statement.
Some of The Most Important SQL Commands
1. SELECT - extracts data from a database
2. UPDATE - updates data in a database
3. DELETE - deletes data from a database
4. INSERT INTO - inserts new data into a database
5. CREATE DATABASE - creates a new database
6. ALTER DATABASE - modifies a database
7. CREATE TABLE - creates a new table
8. ALTER TABLE - modifies a table
9. DROP TABLE - deletes a table
10. CREATE INDEX - creates an index (search key)
11. DROP INDEX - deletes an index
1 DATABASE
Syntax: CREATE DATABASE databasename;
CREATE DATABASE testDB;
Syntax: DROP DATABASE databasename;
DROP DATABASE testDB;
2 TABLE
Syntax: CREATE TABLE table_name (column1 datatype, column2 datatype, column3 datatype, ....);
CREATE TABLE Persons (PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City
varchar(255));
2.1 CREATE A TABLE USING ANOTHER TABLE
Syntax: CREATE TABLE new_table_name AS SELECT column1, column2,... FROM existing_table_name WHERE ....;
CREATE TABLE TestTable AS SELECT customername, contactname FROM customers;
Syntax: DROP TABLE table_name;
DROP TABLE Shippers;
syntax:ALTER TABLE table_name ADD column_name datatype;
ALTER TABLE Customers ADD Email varchar(255);
Syntax: (notice that some database systems don't allow deleting a column): ALTER TABLE table_name
DROP COLUMN column_name;
ALTER TABLE Customers DROP COLUMN Email;
syntax: ALTER TABLE table_name MODIFY COLUMN column_name datatype;
ALTER TABLE Persons MODIFY COLUMN DateOfBirth year;
2.2 PRIMARY KEY
CREATE TABLE Persons(ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age
int,PRIMARY KEY (ID));
2.3 AUTO_INCREMENT
CREATE TABLE Persons (Personid int NOT NULL AUTO_INCREMENT, LastName varchar(255) NOT NULL, FirstName
varchar(255), Age int, PRIMARY KEY (Personid)
);
To let the AUTO_INCREMENT sequence start with another value, use the following SQL statement:
ALTER TABLE Persons AUTO_INCREMENT=100;
Demo Database
CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Ana Trujillo Avda. de la México 05021 Mexico
Emparedados y Constitución D.F.
helados 2222
3 Antonio Moreno Antonio Moreno Mataderos México 05023 Mexico
Taquería 2312 D.F.
4 Around the Horn Thomas Hardy 120 Hanover London WA1 1DP UK
Sq.
5 Berglunds snabbköp Christina Berguvsvägen 8 Luleå S-958 22 Sweden
Berglund
3 SELECT
SELECT column1, column2, ...FROM table_name;
3.1 EXAMPLE:
SELECT CustomerName, City, Country FROM Customers;
SELECT * FROM Customers;
3.2 SELECT DISTINCT
SELECT DISTINCT Country FROM Customers;(for unique data)
SELECT COUNT(DISTINCT Country) FROM Customers;
3.3 WHERE CLAUSE
SELECT column1, column2, ...FROM table_name WHERE condition;
SELECT * FROM Customers WHERE Country = 'Mexico';
SELECT * FROM Customers WHERE CustomerID = 1;
Operators in The WHERE Clause
Operator Description Example
= Equal SELECT * FROM Products WHERE Price = 18;
> Greater than SELECT * FROM Products WHERE Price > 30;
< Less than SELECT * FROM Products WHERE Price < 30;
>= Greater than or equal SELECT * FROM Products WHERE Price >= 30;
<= Less than or equal SELECT * FROM Products WHERE Price <= 30;
<> Not equal. Note: In some versions of SELECT * FROM Products WHERE Price <> 18;
SQL this operator may be written as !=
BETWEEN Between a certain range SELECT * FROM Products WHERE Price BETWEEN 50
AND 60;
LIKE Search for a pattern SELECT * FROM Customers WHERE City LIKE 's%';
IN To specify multiple possible values for SELECT * FROM Customers WHERE City IN
a column ('Paris','London');
3.4 AND EXAMPLE
SELECT * FROM Customers WHERE Country = 'Germany' AND City = 'Berlin';
3.5 OR EXAMPLE
SELECT * FROM Customers WHERE City = 'Berlin' OR City = 'Stuttgart';
3.6 NOT EXAMPLE
SELECT * FROM Customers WHERE NOT Country = 'Germany';
3.7 COMBINING AND, OR AND NOT
SELECT * FROM Customers WHERE Country = 'Germany' AND (City = 'Berlin' OR City = 'Stuttgart');
SELECT * FROM Customers WHERE NOT Country = 'Germany' AND NOT Country = 'USA';
3.8 ORDER BY
SELECT * FROM Customers ORDER BY Country;
SELECT * FROM Customers ORDER BY Country DESC;//by default ASC
SELECT * FROM Customers ORDER BY Country, CustomerName;
SELECT * FROM Customers ORDER BY Country ASC, CustomerName DESC;
SELECT * FROM Customers LIMIT 3;
SELECT * FROM Customers LIMIT 3 OFFSET 3;(Start record on 4)
SELECT * FROM Customers WHERE Country='Germany' LIMIT 3;
SELECT MIN(Price) AS SmallestPrice FROM Products;
SELECT MAX(Price) AS LargestPrice FROM Products;
SELECT COUNT(ProductID) FROM Products;
SELECT AVG(Price) FROM Products;
SELECT SUM(Quantity) FROM OrderDetails;
4 INSERT INTO
Specify both the column names and the values to be inserted:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
INSERT INTO Customers (CustomerName, City, Country) VALUES ('Cardinal', 'Stavanger', 'Norway');
If you are adding values for all the columns of the table,
INSERT INTO table_name VALUES (value1, value2, value3, ...);
INSERT INTO Customers VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
5 UPDATE
Syntax: UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
UPDATE Customers SET ContactName = 'Alfred Schmidt', City = 'Frankfurt' WHERE CustomerID = 1;
UPDATE Customers SET PostalCode = 00000;(Update all records)
DELETE
Syntax: DELETE FROM table_name WHERE condition;
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
DELETE FROM Customers; (Delete all records)
6 DELETE
Syntax: DELETE FROM table_name WHERE condition;
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
DELETE FROM Customers; (Delete for all data)