Chapter 5 Introduction to SQL SQL Structured Query

  • Slides: 27
Download presentation
Chapter 5 Introduction to SQL

Chapter 5 Introduction to SQL

SQL • Structured Query Language • = the “programming language” for relational databases •

SQL • Structured Query Language • = the “programming language” for relational databases • SQL is a nonprocedural language = the user specifies what must be done (ex. create a table), but not how it is to be done. • Several SQL dialects exist, in different RDBMSs; minor differences among them. 2

SQL – Creating DB Tables • Use CREATE TABLE command for each db table,

SQL – Creating DB Tables • Use CREATE TABLE command for each db table, basic syntax: CREATE TABLE tablename ( column_1 data_type [constraints] , column_2 data_type [constraints], … column_k data_type [constraints] , PRIMARY KEY (column_i [, column_j …]) ] ); • Notes: – End each SQL command with a semicolon to execute it; – A comma separates all table element (column, PK) definitions; 3

sql. sql CREATE TABLE users ( … first_name VARCHAR(20) NOT NULL, … };

sql. sql CREATE TABLE users ( … first_name VARCHAR(20) NOT NULL, … };

VARCHAR • Variable length string – Size varies from record to record.

VARCHAR • Variable length string – Size varies from record to record.

sql. sql • How would you create the table in db_fall 19_frank? J: >mysql

sql. sql • How would you create the table in db_fall 19_frank? J: >mysql -h cscdb. nku. edu -u frank -D db_fall 19_frank -p < sql Enter password: ******

My. SQL - SHOW and DESCRIBE • After you create the tables in your

My. SQL - SHOW and DESCRIBE • After you create the tables in your database, you can view: – All tables in the currently used database with: show tables; – The structure of any of the tables in the current database with: describe table_name; 7

users J: >mysql -h csweb. hh. nku. edu -u frank -p Enter password: ******

users J: >mysql -h csweb. hh. nku. edu -u frank -p Enter password: ****** mysql> use db_fall 19_frank; mysql> show tables; mysql> describe users;

SQL – Deleting DB Tables • Use DROP TABLE command for each db table

SQL – Deleting DB Tables • Use DROP TABLE command for each db table you want to delete; basic syntax: DROP TABLE tablename; • Note: – This command deletes all the rows in the tablename and the tablename itself! 9

DML – Adding Table Rows • SQL requires the use of the INSERT command

DML – Adding Table Rows • SQL requires the use of the INSERT command to enter data into a table. • INSERT command’s basic syntax: INSERT INTO tablename VALUES (value_1, value_2, … , value_n); – This version of INSERT: • adds one table row (tuple) at a time • requires a value to be specified for every column of the table; values are specified in the same order columns were defined in 10

sql. sql • INSERT INTO users … • SHA 1('mypass') – 160 bit hash

sql. sql • INSERT INTO users … • SHA 1('mypass') – 160 bit hash digest of password • NOW() – function return the current system date and time

INSERT • Example: insert into customers values (1, "Julie Smith", "25 Oak Street", "Airport

INSERT • Example: insert into customers values (1, "Julie Smith", "25 Oak Street", "Airport West"); insert into orders values (NULL, 1, 49. 99, "2007 -0415"); • Notes: –The row contents are delimited by parentheses –Attribute entries are separated by commas –String and date values must be quoted (‘ or “) –Numerical entries are not enclosed in any special characters 12

users INSERT INTO users VALUES (NULL, ‘Charles', ‘Frank', ‘frank@nku. edu', SHA 1(‘secret'), NOW());

users INSERT INTO users VALUES (NULL, ‘Charles', ‘Frank', ‘frank@nku. edu', SHA 1(‘secret'), NOW());

SELECT • SELECT command is used to list the contents of a table (or

SELECT • SELECT command is used to list the contents of a table (or more tables). • The simplest form (syntax) of a SELECT query is: SELECT column_list FROM tablename; – Column_list represents one or more attributes from tablename, separated by commas 14

SELECT • Example: SELECT name, city FROM customers; the result contains all the rows

SELECT • Example: SELECT name, city FROM customers; the result contains all the rows and only the two specified columns of table customers. 15

sql. sql SELECT * FROM users; Asterisk (*) can be used as a wildcard

sql. sql SELECT * FROM users; Asterisk (*) can be used as a wildcard character to list all attributes for the selected rows (when column_list is *) SELECT user_id, username FROM users;

Listing Table Rows • Can limit data selected by placing conditional restrictions on the

Listing Table Rows • Can limit data selected by placing conditional restrictions on the rows to be included in the output → with the WHERE clause of the SELECT statement. • Syntax: SELECT column_list FROM tablename [ WHERE condition_list ] ; condition_list = one or more conditional expressions connected by logical operators FWill retrieve all the rows that match the conditions specified in the optional WHERE clause FIf no rows match the specified criteria result = an empty set of tuples (not an error!) 17

Listing Table Rows (cont) • WHERE clause example: SELECT title FROM books WHERE price

Listing Table Rows (cont) • WHERE clause example: SELECT title FROM books WHERE price > 40; • Conditional restrictions in the condition_list : column_name comparison_operator value expression comparison_operator expression – with columns and values (constants) as operands; – Comparisons include the usual “suspects” • =, !=, <, etc. • Also can use BETWEEN value 1 AND value 2 – If a data field is empty, can test with IS NULL operator • SELECT name FROM customers WHERE address IS NULL; Finds records with no address specified 18

Listing Table Rows (cont) • Can match patterns with LIKE – Pattern can be

Listing Table Rows (cont) • Can match patterns with LIKE – Pattern can be simple characters up to RE – % matches any number of characters, _ matches 1 character • Can match multiple conditions using AND and OR • Can negate a condition using NOT • Example: SELECT title FROM books WHERE price > 40 AND author like “Thomas%”; 19

Listing Table Rows • Can sort results of query with ORDER BY: SELECT column_list

Listing Table Rows • Can sort results of query with ORDER BY: SELECT column_list default FROM tablename [ORDER BY column 1 [ASC | DESC], column 2 [ASC | DESC] …]; • Notes: – Although ORDER BY produces a sorted output, the actual table contents are unaffected by the ORDER BY clause! – ORDER BY clause must be listed last in SELECT (except for LIMIT) • Example: –SELECT title, price, author FROM books ORDER BY price, author; all books info sorted by price and, for same price, ordered by the author 20

users mysql> select * from users; mysql> select email from users where last_name='Frank'; mysql>

users mysql> select * from users; mysql> select email from users where last_name='Frank'; mysql> select * from users where email like '%edu';

Updating Table Rows • Use the UPDATE command to modify data in a table.

Updating Table Rows • Use the UPDATE command to modify data in a table. • UPDATE command’s syntax: UPDATE tablename SET column_1 = expression_1 [, column_2 = expression_2 …] [WHERE condition_list]; –expression = a simple value (76 or ‘Florida’), or a formula (price – 10) –condition_list = one or more conditional expressions connected by logical operators (and, or, not) • If more than one attribute is to be updated per tuple, separate modifications with commas 22

Updating Table Rows (cont) • Examples: UPDATE books SET price = price * 1.

Updating Table Rows (cont) • Examples: UPDATE books SET price = price * 1. 1; – increase all the book prices by 10% UPDATE customers SET address = ‘ 250 Olsens Road’ WHERE customer_id = 4; • update a certain customer’s address – PK used to identify the customer • Notes: – The WHERE clause is optional – If a WHERE clause is not specified, all rows from the specified table will be modified. 23

users mysql> select * from users; mysql> UPDATE users SET email='mike@authors. com' WHERE user_id

users mysql> select * from users; mysql> UPDATE users SET email='mike@authors. com' WHERE user_id = 18; mysql> select * from users where user_id='18';

DML – Deleting Table Rows • Use the DELETE command to delete data from

DML – Deleting Table Rows • Use the DELETE command to delete data from a table. • DELETE command’s syntax: DELETE FROM tablename [WHERE condition_list ]; • Notes: – WHERE clause is optional – If a WHERE clause is not specified, all rows from the specified table will be deleted 25

Deleting Table Rows (cont) • Examples: DELETE FROM customers WHERE customer_id = 4; –

Deleting Table Rows (cont) • Examples: DELETE FROM customers WHERE customer_id = 4; – delete data about a customer who didn’t place orders for a long time DELETE FROM books WHERE price < 4; • delete all cheap books (none, or more tuples can satisfy the condition) DELETE FROM books; • delete all books; table is not deleted, but remains empty 26

users mysql> DELETE FROM users WHERE user_id = 8 LIMIT 1; mysql> select *

users mysql> DELETE FROM users WHERE user_id = 8 LIMIT 1; mysql> select * from users limit 10;