71

data constraints,group by

Embed Size (px)

DESCRIPTION

contains topics about data constraints group by aggregate function subqueries

Citation preview

Page 1: data constraints,group by
Page 2: data constraints,group by
Page 3: data constraints,group by

SQL INTRODUCTIONFOR CS-2

Page 4: data constraints,group by

SQL?

Page 5: data constraints,group by

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)

Page 6: data constraints,group by

Data Constraint

Business ruleI/O constraintPrimary KeyForeign KeyUnique

CheckNOT NULL/NULL

Page 7: data constraints,group by

I/O constraint

Page 8: data constraints,group by

Primary Key&

Foreign Key

Page 9: data constraints,group by

SyntaxDefined at Column Level

Defined at Table Level

Page 10: data constraints,group by

PRIMARY KEYUNIQUENOT NULLNOT COMPULSORYCANNOT LONG/LONG RAW DATA TYPEONLY ONE PER TABLECOMBINE UPTO 16 COLOUMNS IN A COMPOSITE PRIMARY KEY

Page 11: data constraints,group by
Page 12: data constraints,group by

Defined @ Column Level

<Column Name> <Data type> (<Size>) PRIMARY KEY

EX:CREATE TABLE LBS_CS2(

NAME VARCHAR2(25) PRIMARY KEY - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

);

Page 13: data constraints,group by

Defined @ TABLE Level

PRIMARY KEY (<Column Name> , <Column Name> )

EX:CREATE TABLE LBS_CS2(

NO INT,NAME VARCHAR2(25), - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

PRIMARY KEY(NO,NAME));

Page 14: data constraints,group by

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

Page 15: data constraints,group by
Page 16: data constraints,group by

Defined @ Column Level

<Column Name> <Data type> (<Size>) REFERENCES <TABLE NAME>[(<Column Name>)] [ON DELETE CASCADE]

Page 17: data constraints,group by

EX:CREATE TABLE LBS_CS2(

ROLL_NO INT,NAME VARCHAR2(25),BRANCH_CODE VARCHAR2(25) REFERENCES BRANCH,- - - - - - - - - - - - - - - - - -

PRIMARY KEY(NO,NAME));

Page 18: data constraints,group by

EX:CREATE TABLE LBS_CS2(

ROLL_NO INT,NAME VARCHAR2(25),BRANCH_CODE VARCHAR2(25)

REFERENCES BRANCH (BRANCH_ID),- - - - - - - - - - - - - - - - - -

PRIMARY KEY(NO,NAME));

OR

Page 19: data constraints,group by

Defined @ TABLE Level

FOREIGN KEY(<Column Name>[ <Column Name>] ) REFERENCES <TABLE NAME> [(<Column Name> <Column Name>] )]

[ON DELETE SET NULL]

Page 20: data constraints,group by

EX:CREATE TABLE LBS_CS2( ROLL_NO INT, NAME VARCHAR2(25), FOREIGN KEY (BRANCH_CODE) REFERENCES BRANCH(BRANCH_ID), - - - - - - - - - - - - - - - - - - PRIMARY KEY(NO,NAME));

Page 21: data constraints,group by

UNIQUE KEY CONSTRAINT

Page 22: data constraints,group by

Defined @ Column Level

<Column Name> <Data type> (<Size>) UNIQUE

EX:CREATE TABLE LBS_CS2(

ROLL_NUM INT UNIQUE, - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

);

Page 23: data constraints,group by

Defined @ TABLE Level

UNIQUE (<Column Name> , <Column Name> )

EX:CREATE TABLE LBS_CS2(

NO INT,NAME VARCHAR2(25), - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

UNIQUE(NO,NAME));

Page 24: data constraints,group by

Business rule

Page 25: data constraints,group by

NOT NULL CONSTRAINT

Page 26: data constraints,group by

Defined @ Column Level

<Column Name> <Data type> (<Size>) NOT NULL

EX:CREATE TABLE LBS_CS2(

ROLL_NUM INT NOT NULL, - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

);

Page 27: data constraints,group by

CHECK CONSTRAINT

Page 28: data constraints,group by

Defined @ Column Level

<Column Name> <Data type> (<Size>) CHECK (<Logical Expression>)

EX:CREATE TABLE LBS_CS2(

ROLL_NUM INT CHECK (ROLL_NUM > 0) - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

);

Page 29: data constraints,group by

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%’));

Page 30: data constraints,group by

Error:Check constraint violated

Page 31: data constraints,group by

Defining Integrity Constraint via ALTER TABLE

command

Page 32: data constraints,group by

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

Page 33: data constraints,group by

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%’));

Page 34: data constraints,group by

breaK K K K . . . . . .

Page 35: data constraints,group by

COMPUTATION DONE

ON TABLE DATA

Page 36: data constraints,group by

LOGICAL OPERATORS

•AND•OR

Page 37: data constraints,group by

EX:SELECT NAME,ROUND(MARK)FROM CS2WHERE NAME LIKE ‘C%’ AND MARK >50 OR MARK <10;

Page 38: data constraints,group by

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;

Page 39: data constraints,group by

PATTERN MATCHING• LIKE predicate

‘%’ : include zero length

‘_ ‘: match on a single character

Page 40: data constraints,group by
Page 41: data constraints,group by
Page 42: data constraints,group by
Page 43: data constraints,group by

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’);

Page 44: data constraints,group by

DATE MANIPULATION

Page 45: data constraints,group by
Page 46: data constraints,group by
Page 47: data constraints,group by

AGGREGATE FUNCTION

Page 48: data constraints,group by

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()

Page 49: data constraints,group by

EXTRACT({YEAR| MONTH|DAY|HOUR|MINUTE|SECOND| TIMEZONE_HOUR|TIMEZONE_MINUTE| TIMEZONE_REGION |TIMEZONE_ABBR} FROM {DATE |INTERVAL VALUE})

Page 50: data constraints,group by

EX:SELECT EXTRACT (YEAR FROM DATE ’2013-09-10’) YEAR,EXTRACT (MONTH FROM SYSDATE) MONTH FROM DUAL;

Page 51: data constraints,group by

GREATEST(expr1,expr2. . . .expr_n)

LEAST(expr1,expr2. . . .expr_n)

Page 52: data constraints,group by

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

Page 53: data constraints,group by

breaK K K K . . . . . .

Page 54: data constraints,group by

GROUP BY/ HAVING

Page 55: data constraints,group by

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

Page 56: data constraints,group by
Page 57: data constraints,group by
Page 58: data constraints,group by
Page 59: data constraints,group by

SUBQUERIES

Page 60: data constraints,group by

Subqueries can be used with the SELECT, INSERT, UPDATE, and DELETE statements along with the operators like =, <, >, >=, <=, IN, BETWEEN etc.

Page 61: data constraints,group by

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.

Page 62: data constraints,group 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.

Page 63: data constraints,group by

Subqueries with the SELECT Statement

Page 64: data constraints,group by

SQL> SELECT *FROM CUSTOMERSWHERE ID IN (SELECT IDFROM CUSTOMERSWHERE SALARY > 4500) ;

Page 65: data constraints,group by

Subqueries with the INSERT Statement:

Page 66: data constraints,group by

Subqueries with the UPDATE Statement:

Page 67: data constraints,group by

output

Page 68: data constraints,group by

Subqueries with the DELETE Statement:

Page 69: data constraints,group by
Page 70: data constraints,group by

Just one more

Page 71: data constraints,group by

THANK YOOOOOU