<<

Islamic University Of Gaza Faculty of Engineering Computer Engineering Department

Database Lab (ECOM 4113)

Lab 2

SQL Manipulation Language (DML)

Eng. Ibraheem Lubbad

SQL stands for Structured , it’s a standard language for accessing and manipulating . SQL commands are case insensitive instructions used to communicate with the to perform specific tasks, work, functions and queries with data. All SQL statements start with any of the keywords like SELECT, INSERT, UPDATE, DELETE, ALTER, DROP, CREATE, USE, SHOW and all the statements end with a semicolon (;) SQL commands are grouped into major categories depending on their functionality:  Data Manipulation Language (DML) - These SQL commands are used for storing, retrieving, modifying, and deleting data. These Data Manipulation Language commands are CALL, DELETE, EXPLAIN, INSERT, LOCK , MERGE, SELECT and UPDATE.

(DDL) - These SQL commands are used for creating, modifying, and dropping the structure of database objects. The commands are ALTER, ANALYZE, AUDIT, COMMENT, CREATE, DROP, FLASHBACK, GRANT, PURGE, RENAME, REVOKE and TRUNCATE.

 Transaction Control Language (TCL) - These SQL commands are used for managing changes affecting the data. These commands are , ROLLBACK, and .

(DCL) - These SQL commands are used for providing security to database objects. These commands are GRANT and REVOKE.

In our lab we will use university schema (you can open it by click on file)

SELECT Statement:

The SELECT statement retrieves data a database. The data is returned in a table-like structure called a result-. SELECT is the most frequently used action on a database. To create a simple SQL SELECT Statement, you must specify the (s) name and the table name.

The whole query is called SQL SELECT Statement.

Syntax of SQL Select Statement SELECT * | {[DISTINCT] column_list | expression [],...} FROM table-name [WHERE ] [GROUP BY columns] [HAVING group-selection-condition] [ column-names || aliases || column-numbers];

-table-name : is the name of the table from which the information is retrieved. -column_list : includes one or more columns from which data is retrieved. -The code within the brackets is optional.

 Retrieve data by specific column:

Select Spesfic Coumn SELECT NAME, DEPT_NAME FROM INSTRUCTOR;

 Retrieve data For all column using (*):

Use * To Select All Column SELECT * FROM INSTRUCTOR;

 Arithmetic Expressions: Arithmetic operators can perform arithmetical operations on numeric operands involved. Arithmetic operators are addition (+), subtraction (-), multiplication (*) and division (/). The + and - operators can also be used in date arithmetic

Use * To Select All Column SELECT NAME, DEPT_NAME, SALARY, SALARY/100 FROM INSTRUCTOR;

 Null Values:  A is value is unknown or does not exist  It is NOT the same as a zero or a blank space.  The result of any arithmetic expressions containing a null value is a Null value.

You cannot use equal operator (=) to compare two null values! Instead, use (IS) with special keyword null to check if a value is null or not. Example: retrieve all student who his grade has not been awarded

Use * To Select All Column SELECT ID, COURSE_ID,GRADE FROM TAKES WHERE GRADE IS NULL;

The result of an arithmetic expression (involving, for example +, −, ∗, or /) is null if any of the input values is null Use * To Select All Column SELECT NULL*20

FROM DUAL

 A Column Alias:  Renames a column heading  Is useful with calculations  Immediately follows the column name (There can also be the optional AS keyword between the column name and alias.)  Requires double quotation marks if it contains spaces or special characters or if it is case-sensitive

 A Concatenation Operator  Links columns or character strings to other columns  Is represented by two vertical bars (|| )  Creates a resultant column that is a character expression

Use * To Select All Column SELECT TIME_SLOT_ID ,Start_HR || ':'||Start_Min as STartTime ,ENd_hr || ':' || End_min as EndTime from Time_slot;

 SELECT DISTINCT Statement

 SELECT DISTINCT returns only distinct (different) values.  SELECT DISTINCT eliminates duplicate records from the results.  DISTINCT operates on a single column. DISTINCT for multiple columns is not supported

 SQL WHERE Clause:

 To limit the number of rows use the WHERE clause.  The WHERE clause filters for rows that meet certain criteria.  WHERE is followed by a condition that returns either true or false.  WHERE is used with SELECT, UPDATE, and DELETE.

Example: Find the names of all instructors in the Computer Science department

Syntax of SQL INSERT Statement SELECT NAME FROM INSTRUCTOR WHERE DEPT_NAME = 'COMP. SCI.';

Notes:  When you deal with character strings or date values, you must enclosed them by single quotation marks ( ‘ ’ )  Character values are case-sensitive, and date values are format-sensitive.

SQL WHERE LIKE Statement:  Pattern matching can be performed on strings, use the like statement  Patterns are case sensitive  describe patterns by using two special characters

 Percent (%): The % character matches any substring  Underscore (_ ): The character matches any character. Example: Find the names of all student whose name starts with ‘S’.

Example: Find the names of all student whose name with second and third character “an”

Comparison operators: Operator Operator Description = Equal to > Greater than >= Greater than or equal to < Less than <= Less than or equal to <> Not equal to BETWEEN ... AND... Between two values (inclusive) IN(set) Match any of a list of values ANY(set) Compare to any value in a set ALL(set) Compare to all values in a set [NOT] LIKE Match a character pattern IS[NOT] NULL Is a null value

Rules of Precedence: Operator Priority Parentheses () 1 Arithmetic operators / , * 2 + , - 3 Concatenation operator || 4 Comparison conditions <,> ,>=, <=,<> 5 IS [NOT] NULL, LIKE, [NOT] IN 6 [NOT] BETWEEN 7 Not equal to 8 NOT logical condition 9 AND logical condition 10 OR logical condition 11

Note: <> all is identical to not in, whereas = all is not the same as in

Example: find the names of instructors with salary amounts between $90,000 and $100,000.

Syntax of SQL INSERT Statement SELECT NAME FROM INSTRUCTOR WHERE SALARY BETWEEN 90000 AND 100000; Instead of:

Syntax of SQL INSERT Statement

SELECT NAME FROM INSTRUCTOR WHERE SALARY <= 100000 AND SALARY >= 90000;

Example: Find all the names of instructors whose names are neither “Mozart” nor “Einstein”.

Syntax of SQL INSERT Statement SELECT DISTINCT NAME FROM INSTRUCTOR WHERE NAME NOT IN ('MOZART', 'EINSTEIN');

 Sort:

You can sort rows retrieved by a query using the optional [ORDER BY clause]. Example: retrieving all departments’ records sorted by budget.

Syntax of SQL INSERT Statement SELECT DEPT_NAME,BUILDING,BUDGET FROM DEPARTMENT ORDER BY BUDGET ;

By default, “ORDER BY” Clause sorts the retrieved rows in ascending order. To reverse the ordering, use “DESC” keyword after column-name.

Syntax of SQL INSERT Statement SELECT DEPT_NAME,BUILDING,BUDGET FROM DEPARTMENT ORDER BY BUDGET DESC;

You can also sort rows according to expression result; in this case, you have to use an alias instead of column name also, sort rows according to more than one column. Example: Find all instructor sorted by their monthly salary.

Sorting According to More Than One Column SELECT NAME , DEPT_NAME ,SALARY/12 MONTHLY FROM INSTRUCTOR ORDER BY MONTHLY

Example: Find all student sorted by their department name , if there are two student have the same department name , then sort them by total credit in ascending order, then by their “student name” alias.

Sorting According to More Than One Column SELECT NAME "STUDNET NAME ”,DEPT_NAME,TOT_CRED FROM STUDENT ORDER BY DEPT_NAME, TOT_CRED DESC, "STUDNET NAME" ;

Note: in “ORDER BY” clause, you can type (column | alias) numeric position instead of name. For example in the previous query, department name column comes first in the query, so its number is 1. total credit comes second, so its number is 2. Finally, “student name” alias comes third, so its number is 3. Therefore, the previous query can be wrote in another way:

Sorting According to More Than One Column SELECT NAME "STUDNET NAME" ,DEPT_NAME,TOT_CRED FROM STUDENT ORDER BY 2,3 DESC, 1 ;

INSERT Statement: INSERT statement is used to add new rows into a table in the database.

Syntax of SQL INSERT Statement INSERT INTO Table-Name (column_list) VALUES (values-list);

Example SQL INSERT Statement INSERT INTO CLASSROOM (BUILDING, ROOM_NUMBER, CAPACITY) VALUES ('AL QUDS’, 218, 25)

You can also new rows without specifying column names, by typing:

“INSERT INTO” table-name VALUES (value-list)”. In this case, you MUST order values in the same order of its corresponding columns.

Example SQL INSERT Statement INSERT INTO CLASSROOM VALUES ('AL QUDS’, 218, 25)

Q) Create a section of ‘Database lab CS-348’ course in fall 2016, with sec id of 1 and class room al Quds 218.

Syntax of SQL DELETE Statement INSERT INTO SECTION VALUES ('CS-348', 1, 'FALL', 2016, 'AL QUDS', '218', 'A');

 Use with insert statement Q) Enroll every student in ’ Database CS-347’ course taken in 2009, in the above section.

Syntax of SQL DELETE Statement INSERT INTO TAKES (ID, COURSE_ID,SEC_ID,SEMESTER,YEAR) SELECT ID, 'CS-348','1', 'FALL',2016 Constant columns FROM TAKES Insert constant value WHERE COURSE_ID='CS-347';

DELETE Statement DELETE statement is used to rows from a table according to a specified condition.

Syntax of SQL DELETE Statement DELETE FROM table-name WHERE condition;

Example: Using DELETE Statement DELETE FROM CLASSROOM WHERE BUILDING='AL QUDS' Note: It also can be used to delete all rows from a table by not specifying any conditions. If you want to empty a table, you just have to issue this command: “DELETE FROM table-name”. You should be aware when using this form. Q) Delete enrollments in the above section the student’s name is contain “han” substring

Syntax of SQL DELETE Statement DELETE FROM TAKES WHERE (ID ,COURSE_ID) IN ( SELECT ID,'CS-348' Constant columns FROM STUDENT Insert constant value WHERE NAME LIKE '%HAN%'); UPDATE Statement UPDATE statement is used to modify existing rows values in a table.

Syntax of SQL UPDATE Statement UPDATE TABLE-NAME SET COLUMN_NAME_1 = NEW_VALUE1 , COLUMN_NAME_2 = NEW_VALUE2 -- WHERE CONDITION;

Example:

Use UPDATE Statement UPDATE COURSE SET CREDITS=3 WHERE COURSE_ID='CS-190'

END