Introduction to Structured Query Language (SQL) COM S 461 2013-Fall Instructor: Ying Cai Iowa State...

Preview:

Citation preview

1

Introduction toStructured Query Language

(SQL)

COM S 461 2013-FallInstructor: Ying Cai

Iowa State University

2

SQL: What and Why ? (1/2)

Programmers Computer

Instructions

Result

Programming Language:

3

SQL: What and Why ? (2/2)

DB Users DBMS(Database Server)

Query

Result

Query Language:

4

Contents

Setup a Database Server on your Computer.

How to define data using SQL:Data Definition Language (DDL)Create Tables/Update Tables…

How to manipulate/access data using SQL:Data Manipulation Language (DML) Insert Data/Update Data/Read Data…SQL Functions

5

Setup Database Server (1/2)

Step 1. Download (Installer/Source code available) MySQL

http://dev.mysql.com/downloads/

MariaDB https://downloads.mariadb.org/

Step 2. Setup & Configuration Port. Remote Access. Root User.

Step 3. Connect to server. You’ll need: User/PSW, Server IP/Port.

6

Setup Database Server (2/2)

Database Server

Client 1

Client 2

Client 3

The Clinet/Server Structure

DB Connection

7

Programming with SQL

SQL

Data Definition Language

1.Create DB/Table2.Change DB/Table3.Delete DB/Table

Data Manipulation Language

1.Add Data2.Update Data3.Remove Data

4. Get Data

Data Control Language

Access ControlAuthorization

Data Definition Language

8

(Basic) Keywords of DDL:

• Create a new Database/Table

CREATE

• Change the definition of an existing DB/table

ALTER

• Delete an existing DB/table.

DROP

9

Syntax of CREATE

Create a new database.

Create a new tableCREATE TABLE table_name(

column_1 INT,column_2 CHAR(10) NOT

NULL,column_3 VARCHAR(256),column_4 INT DEFAULT 0,… …

) ;

CREATE DATABASE db_name;

Data types:

• INT/INTEGER(size)

• DECIMAL(size,d) • CHAR(size)• VARCHAR(size)• Date(yyyymmdd)

10

Syntax of CREATE

Create a new database.

Create a new tableCREATE TABLE table_name(

column_1 INT,column_2 CHAR(10) NOT

NULL,column_3 VARCHAR(256),column_4 INT DEFAULT 0,… …

) ;

CREATE DATABASE db_name;

Data types:

• INT/INTEGER(size)

• DECIMAL(size,d) • CHAR(size)• VARCHAR(size)• Date(yyyymmdd)

Colunm_1 Colunm_2 Colunm_3 Colunm_4

(Empty) (Empty) (Empty) (Empty)

11

Syntax of ALTER

Add a column to an exiting table.

Change a column of an exiting table.

Delete a column from an exiting table.

ALTER TABLE table_nameADD column_name

data_type;

ALTER TABLE table_nameALTER COLUMN column_name

new_data_type;

or CHANGDE COLUMN old_name new_name data_type;or MODIFY COLUMNB column_name new_data_type;

ALTER TABLE table_nameDROP COLUMN

column_name;

12

Syntax of DROP

Delete a Database

Delete a Table.

DROP DATABASE db_name

DROP TABLE table_name

13

Data Manipulation Language

(Basic) Keywords of DML:

• Read data from DBSELECT

• Change the value of existing items UPATE

• Add new items into DBINSERT

• Remove existing items from DBDELETE

14

Syntax of SELECT

Use SELET to get desired data in given format:

Example 1: Get students’ Uid and name, who have GPA higher than 3.5, sorted by their GPA in descending order.

SELECT column_1 column_2 …

FROM table_1 table_2 …WHERE conditionORDER BY expression

ASC/DESC

SELECT uid, student_name

FROM studentsWHERE gpa > 3.5ORDER BY gpa DESC

15

Syntax of SELECT

Example 2: Get all information about female students who is older than 20.

Example 3: Get the average speed of all cars in a table where only moving distance and time are stored.

SELECT *FROM studentsWHERE ( 2013 – YoB ) > 20 AND gener = ‘F’

SELECT (distance/time) AS speedFROM carsWHERE time > 0

16

Syntax of SELECT

Select from Multiple Tables: (Multiple Table Query)The DBMS will combine the two tables to generate a

new Virtual Table (Cross Join).

SELECT *FROM students course

Uid Name

001 Andy

002 Jack

cid Name Students

100 Database 001,002

101 Algorithm

002

17

Syntax of SELECT

Select from Multiple Tables: (Multiple Table Query)The DBMS will combine the two tables to generate a

new Virtual Table (Cross Join).

SELECT *FROM students course

Uid Name cid Name Students

001 Andy 100 Database

001,002

001 Andy 101 Algorithm

002

002 Jack 100 Database

001,002

002 Jack 101 Algorithm

002

18

Syntax of SELECT

Example 4: Show the uid and name of all students who registered for the Database course.

SELECT student.uid student.nameFROM students courseWHERE course.name = “Database”

AND student.id IN course.students

19

Syntax of SELECT

Example 5: We have three tables:

Show the name of each course and the name of the TA assigned to this course.

Uid Name

001 Andy

002 Jack

CID Name

100 Database

111 Algorithm

Uid CID

001 100

002 111

SELECT course.name, student.nameFROM students course TAWHERE Courese.Cid = TA.Cid

AND Student.Uid = TA.Uid

Student Course TA

20

Syntax of SELECT

Select Distinct values (No duplicates)

Example 6: Show students with distinct birthday and name.

SELECT DISTINCT column_1, column_2 …FROM table_1, table_2 …WHERE conditions …

SELECT DISTINCT Name DoBFROM Student Course

21

Syntax of SELECT

Select a given number of items

SELECT TOP NUMBER column_1 column_2FROM table_1 table_2WHERE conditions…

or

SELECT column_1 column_2FROM table_1 table_2WHERE conditions…LIMIT NUMBER

22

Syntax of SELECT

Example 7: Show the name of 100 students with the highest GPA.

SELECT nameFROM studentsORDER BY gpa DESCLIMIT 100

23

Syntax of Update

Update the value of existing item(s).

Update table_nameSET

column_1 = value_1

column_2 = value_2

… …WHERE conditions…

24

Syntax of Insert

Insert new items into a table

INSERT INTO table_nameVALURES (value_1, value_2 … ), # row 1

(value_1, value_2 … ), # row 2…. …

25

Syntax of Delete

Delete items from a table

DELETE without any condition will delete all items in the table, which is forbidden by many DBMS.

DELETE FROM table_nameWHERE conditions…

26

SQL Functions

AVG()

Calculate the Average of selected data column

ORDER BY/LIMIT is no longer necessory.

SELECT AVG( column_name| expression) AS value_name

FROM table_1, table_2 …WHERE conditions …

27

SQL Functions

COUNT ()Count the number of items selected.

MAX () / MIN () Return the Maximal/Minimal value in selected data.

SELECT COUNT( column_name| expression) AS value_name

FROM table_1, table_2 …WHERE conditions …

SELECT MAX/MIN( column_name| expression) AS value_name

FROM table_1, table_2 …WHERE conditions …

28

SQL Functions

SUM()

Calculate the sum of selected values.

SELECT SUM( column_name| expression) AS value_name

FROM table_1, table_2 …WHERE conditions …

30

Q&A

Recommended