Upload
lbsitw-trivandrum
View
241
Download
0
Tags:
Embed Size (px)
DESCRIPTION
contains topics about data constraints group by aggregate function subqueries
Citation preview
SQL INTRODUCTIONFOR CS-2
SQL?
DBMS Owned ByMySQL, Open Source RDMS
MS Access Microsoft
Oracle Oracle Corporation(ORDMS)
Sybase SAP Company
SQL Server Microsoft (RDMS)
Postgresql Open Source RDMS
Informix IBM(RDMS)
Data Constraint
Business ruleI/O constraintPrimary KeyForeign KeyUnique
CheckNOT NULL/NULL
I/O constraint
Primary Key&
Foreign Key
SyntaxDefined at Column Level
Defined at Table Level
PRIMARY KEYUNIQUENOT NULLNOT COMPULSORYCANNOT LONG/LONG RAW DATA TYPEONLY ONE PER TABLECOMBINE UPTO 16 COLOUMNS IN A COMPOSITE PRIMARY KEY
Defined @ Column Level
<Column Name> <Data type> (<Size>) PRIMARY KEY
EX:CREATE TABLE LBS_CS2(
NAME VARCHAR2(25) PRIMARY KEY - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -
);
Defined @ TABLE Level
PRIMARY KEY (<Column Name> , <Column Name> )
EX:CREATE TABLE LBS_CS2(
NO INT,NAME VARCHAR2(25), - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -
PRIMARY KEY(NO,NAME));
FOREIGN KEYParent must be UNIQUE OR PRIMARY KEY Child may have DUPLICATE/NULL Constraint specify on child not in parentParent can delete only if child not existParent cannot modify if child exist
Defined @ Column Level
<Column Name> <Data type> (<Size>) REFERENCES <TABLE NAME>[(<Column Name>)] [ON DELETE CASCADE]
EX:CREATE TABLE LBS_CS2(
ROLL_NO INT,NAME VARCHAR2(25),BRANCH_CODE VARCHAR2(25) REFERENCES BRANCH,- - - - - - - - - - - - - - - - - -
PRIMARY KEY(NO,NAME));
EX:CREATE TABLE LBS_CS2(
ROLL_NO INT,NAME VARCHAR2(25),BRANCH_CODE VARCHAR2(25)
REFERENCES BRANCH (BRANCH_ID),- - - - - - - - - - - - - - - - - -
PRIMARY KEY(NO,NAME));
OR
Defined @ TABLE Level
FOREIGN KEY(<Column Name>[ <Column Name>] ) REFERENCES <TABLE NAME> [(<Column Name> <Column Name>] )]
[ON DELETE SET NULL]
EX:CREATE TABLE LBS_CS2( ROLL_NO INT, NAME VARCHAR2(25), FOREIGN KEY (BRANCH_CODE) REFERENCES BRANCH(BRANCH_ID), - - - - - - - - - - - - - - - - - - PRIMARY KEY(NO,NAME));
UNIQUE KEY CONSTRAINT
Defined @ Column Level
<Column Name> <Data type> (<Size>) UNIQUE
EX:CREATE TABLE LBS_CS2(
ROLL_NUM INT UNIQUE, - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -
);
Defined @ TABLE Level
UNIQUE (<Column Name> , <Column Name> )
EX:CREATE TABLE LBS_CS2(
NO INT,NAME VARCHAR2(25), - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -
UNIQUE(NO,NAME));
Business rule
NOT NULL CONSTRAINT
Defined @ Column Level
<Column Name> <Data type> (<Size>) NOT NULL
EX:CREATE TABLE LBS_CS2(
ROLL_NUM INT NOT NULL, - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -
);
CHECK CONSTRAINT
Defined @ Column Level
<Column Name> <Data type> (<Size>) CHECK (<Logical Expression>)
EX:CREATE TABLE LBS_CS2(
ROLL_NUM INT CHECK (ROLL_NUM > 0) - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -
);
Defined @ TABLE Level
CHECK(<Logical Expression>)
EX:CREATE TABLE LBS_CS2(
ROLL_NO INT,NAME VARCHAR2(25), - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -
CHECK(ROLL_NUM > 0), CHECK (NAME LIKE ‘C%’));
Error:Check constraint violated
Defining Integrity Constraint via ALTER TABLE
command
EX:• ALTER TABLE CS2 ADD PRIMARY KEY(ROLL_NUM)
•ALTER TABLE CS2 ADD FOREIGN KEY (BRANCH_CODE) REFERENCES BRANCH(BRANCH_ID).
•ALTER TABLE CS2 DROP PRIMARY KEY
DEFAULT VALUE CONCEPT
<Column Name> <Data type> (<Size>) DEFAULT <value>
EX:CREATE TABLE LBS_CS2(
ROLL_NO INT,NAME VARCHAR2(25) DEFAULT ‘STUDENT’, - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -
CHECK(ROLL_NUM > 0), CHECK (NAME LIKE ‘C%’));
breaK K K K . . . . . .
COMPUTATION DONE
ON TABLE DATA
LOGICAL OPERATORS
•AND•OR
EX:SELECT NAME,ROUND(MARK)FROM CS2WHERE NAME LIKE ‘C%’ AND MARK >50 OR MARK <10;
RANGE SEARCHING
• BETWEEN
EX:SELECT NAME FROM CS2WHERE TO_CHAR(DOB,’MM’) BETWEEN 01 AND 04;
EX:SELECT NAME FROM CS2WHERE TO_CHAR(DOB,’YY’) NOT BETWEEN 91 AND 94;
PATTERN MATCHING• LIKE predicate
‘%’ : include zero length
‘_ ‘: match on a single character
IN or NOT IN predicate
EX:SELECT FNAME,LNAME,ADDRESSFROM CS2WHERE FNAME IN (‘EBI’,’ANOOP’,’VIKAS’,’NAVIN’);
EX:SELECT FNAME,LNAME,ADDRESSFROM CS2WHERE FNAME NOT IN (‘EBI’,’ANOOP’,’VIKAS’,’NAVIN’);
DATE MANIPULATION
AGGREGATE FUNCTION
FUNCTION USE
AVG() AVERAGE
MIN() MINIMUM
COUNT() COUNTING
COUNT(*) COUNTING
MAX() MAXIMUM
SUM() TOTAL
ABS() ABSOLUTE
POWER() POWER
ROUND() ROUNDED
SQRT() SQUARE ROOT
EXTRACT()
GREATEST()
LEAST()
EXTRACT({YEAR| MONTH|DAY|HOUR|MINUTE|SECOND| TIMEZONE_HOUR|TIMEZONE_MINUTE| TIMEZONE_REGION |TIMEZONE_ABBR} FROM {DATE |INTERVAL VALUE})
EX:SELECT EXTRACT (YEAR FROM DATE ’2013-09-10’) YEAR,EXTRACT (MONTH FROM SYSDATE) MONTH FROM DUAL;
GREATEST(expr1,expr2. . . .expr_n)
LEAST(expr1,expr2. . . .expr_n)
NO NAME ADDRESS
AGE MARK
1 RESHMA.S.R AAA 45 45
2 RESHMA.S.S BBB 35 30
3 REVATHI.B.R CCC 11 68
4 ROSYLIN DDD 75 75
5 RUBEENA EEE 70 62
6 S. APARNA FFF 56 48
QUESTION
breaK K K K . . . . . .
GROUP BY/ HAVING
SELECT <Column Name 1> <Column Name 2> . .<Column Name N> AGGREGATE_FUNCTION (<EXPRESSION>) FROM TABLE NAME WHERE <Condition>GROUP BY<ColumnName 1> <Column Name 2>.<ColumnNameN >
OR
SUBQUERIES
Subqueries can be used with the SELECT, INSERT, UPDATE, and DELETE statements along with the operators like =, <, >, >=, <=, IN, BETWEEN etc.
RULES:• must be enclosed within parentheses.•can have only one column in the SELECT clause, unless multiple columns are in the main query for the subquery to compare its selected columns.•An ORDER BY cannot be used in a subquery, although the main query can use an ORDER BY.
•The GROUP BY can be used to perform the same function as the ORDER BY in a subquery.•Subqueries that return more than one row can only be used with multiple value operators, such as the IN operator.•The BETWEEN operator cannot be used with a subquery; however, the BETWEEN operator can be used within the subquery.
Subqueries with the SELECT Statement
SQL> SELECT *FROM CUSTOMERSWHERE ID IN (SELECT IDFROM CUSTOMERSWHERE SALARY > 4500) ;
Subqueries with the INSERT Statement:
Subqueries with the UPDATE Statement:
output
Subqueries with the DELETE Statement:
Just one more
THANK YOOOOOU