SQL Queries 2
SQL Queries 2
SQL Queries 2
Database
A database consists of one or more tables. A table is identified by its name. A table is
made up of columns and rows. Columns contain the column name and data type.
Rows contain the records or data for the columns.
Basic SQL
Each record has a unique identifier or primary key. SQL, which stands for Structured
Query Language, is used to communicate with a database. Through SQL one can
create and delete tables. Here are some commands:
SELECT
The SELECT is used to query the database and retrieve selected data that match the
specific criteria that you specify:
SELECT column1 [, column2, ...]
FROM tablename
WHERE condition
= Equal
> Greater than
< Less than
>= Greater than or equal
<= Less than or equal
<> Not equal to
LIKE pattern matching operator
SELECT * FROM tablename
Use single quotes around text values (most database systems will also accept double
quotes). Numerical values should not be enclosed in quotes.
CREATE TABLE
The CREATE TABLE statement is used to create a new table. The format is:
CREATE TABLE tablename
(column1 data type,
column2 data type,
column3 data type);
INSERT VALUES
Once a table has been created data can be inserted using INSERT INTO command.
INSERT INTO tablename
(col1, ... , coln)
VALUES (val1, ... , valn)
UPDATE
To change the data values in a pre existing table, the UPDATE command can be
used.
UPDATE tablename
SET colX = valX [, colY = valY, ...]
WHERE condition
DELETE
DELETE FROM tablename
WHERE condition
To delete all the records from a table without deleting the table do
DELETE * FROM tablename
DROP
To remove an entire table from the database use the DROP command.
DROP TABLE tablename
ORDER BY
ORDER BY clause can order column name in either ascending (ASC) or descending
(DESC) order.
ORDER BY col_name ASC
AND / OR
AND and OR can join two or more conditions in a WHERE clause. AND will return
data when all the conditions are true. OR will return data when any one of the
conditions is true.
IN
IN operator is used when you know the exact value you want to return for at least one
of the columns
BETWEEN / AND
The BETWEEN ... AND operator selects a range of data between two values. These
values can be numbers, text, or dates.
SELECT * FROM table_name WHERE col_name BETWEEN val1 AND val2
JOIN
There are times when we need to collate data from two or more tables. That is called
a join. Tables in a database are related to each other through their keys. We can
associate data in various tables without repeating them. For example we could have a
table called Customers which could have information about customers like their name,
address, phone numbers. We could have another table called Products that has
information regarding the products like part number, product name, manufacturer,
number in stock, unit price. A third table called Orders could have information
regarding what product was ordered, by whom, the date the order was placed, and
quantity. Here are the tables:
Customers
FirstNam LastNam
Cust_ID Address Phone
e e
123
456-
01 Mickey Mouse Gouda
7890
St.
325
786-
02 Donald Duck Eider
2365
Ln.
Products
Part_N Manufactur In_Stoc Pric
Name
o er k e
20-45 Hammer Stanley 57 3.50
ScrewDriv
21-68 DeVries 84 2.75
er
Orders
Order_No Part_No Cust_ID Date Quantity
31
2005-27 21-68 02 Oct 2
2005
02
2005-34 20-45 01 Nov 3
2005
We can select data from two tables with INNER JOIN. The INNER JOIN returns all
rows from both tables where there is a match. If there are rows in Customers that do
not have matches in Orders, those rows will not be listed.
SELECT Customers.FirstName, Customers.LastName, Orders.Date
FROM Customers
INNER JOIN Orders
ON Customers.Cust_ID = Orders.Cust_ID
The LEFT JOIN returns all the rows from the first table (Customers), even if there are
no matches in the second table (Orders). If there are rows in Customers that do not
have matches in Orders, those rows also will be listed.
SELECT Customers.FirstName, Customers.LastName, Orders.Date
FROM Customers
LEFT JOIN Orders
ON Customers.Cust_ID = Orders.Cust_ID
The RIGHT JOIN returns all the rows from the second table (Orders), even if there
are no matches in the first table (Customers). If there had been any rows
in Orders that did not have matches Customers, those rows also would have been
listed.
SELECT Customers.FirstName, Customers.LastName, Orders.Date
FROM Customers
RIGHT JOIN Orders
ON Customers.Cust_ID = Orders.Cust_ID
ALTER TABLE
With ALTER TABLE you can add or delete columns in an existing table. When you
add a column you must specify a data type.
ALTER TABLE table_name
ADD col_name datatype
UNION
The UNION command is used to select data from two tables very similar to the JOIN
command. But the UNION command can be used only with columns having the same
datatype. With UNION only distinct values are selected, i.e. if there are common data
in the two tables only one instance of that data is returned.
This will select all the customers from USA and Asia but if there is a name that occurs
in both the tables it will return only one such name. To get all the names use UNION
ALL instead.
SQL Functions
There are several built-in functins in SQL. The basic function types are:
GROUP BY
The GROUP BY was added to SQL so that aggregate functions could return a result
grouped by column values.
SELECT col_name, function (col_name) FROM table_name GROUP BY col_name
HAVING keyword was introduced because the WHERE keyword could not be used.
HAVING states a condition.
CREATE VIEW
A view is a virtual table that is a result of SQL SELECT statement. A view contains
fields from one or more real tables in the database. This virtual table can then be
queried as if it were a real table.
A view could be used from inside a query, a stored procedure, or from inside another
view. You can add functions and joins to a view and present the data you want to the
user.