Wednesday, 31 October 2012
Monday, 22 October 2012
UNARY OPERATORS
We can perform unary
operations on numerical expressions only.
- Positive “+”
- Negative “-“
- Bitwise NOT “~”
Positive “+”:
Numeric value is positive.
Example: SELECT +350
Negative “-”: Numeric value is negative.
Example: SELECT -350
Example:
SELECT ~(350)
SELECT ~(-350)
STRING CONCATENATION OPERATOR
Using string concatenation operator is “+”, we can combine two or more strings.
Example:
Extract full name from EMP table.
SELECT FirstName+' '+LastName AS FullName FROM EMP
SET OPERATORS
Set operators are used to combine two or more data sets into single data-set.
·
Union/Union All
·
Except
·
Intersect
Union/Union All:
Union or Union all
set operators are used to combine tow or more similar data sets (same number of
columns, column order, and similar data types).
Note: If data sets are having duplicates or same records,
“UNION” eliminates duplicate rows from the combined result
set.
“UNION
ALL” includes duplicate rows from the combined result set.
Example: Union1 and Union2 are tow tables with same number of
columns and data types.
Table creation script:
Table UNION1:
CREATE TABLE UNION1
(
ID INT,FirstName varchar (30),LastName Varchar(30),Gender Char(1),Designation Varchar(10),
ManagerID INT,Dept INT,Sal DECIMAL(18,4),Comm DECIMAL(18,4),HireDate DATE
)
Go
INSERT INTO UNION1 VALUES (101,'Yagenti','Charan','M','Developer',105,10,4000,NULL,'2001-05-21')
INSERT INTO UNION1 VALUES (103,'Jagarla','Mahi','M','Sales man',104,20,3000,500,'2011-05-23')
INSERT INTO UNION1 VALUES (104,'Dama','Puja','F','Manager',110,20,8000,NULL,'2009-05-19')
Table UNION2:
CREATE TABLE UNION2
(
ID INT,FirstName varchar (30),LastName Varchar(30),Gender Char(1),Designation Varchar(10),
ManagerID INT,Dept INT,Sal DECIMAL(18,4),Comm DECIMAL(18,4),HireDate DATE
)
Go
INSERT INTO UNION2 VALUES (101,'Yagenti','Charan','M','Developer',105,10,4000,NULL,'2001-05-21')
INSERT INTO UNION2 VALUES (102,'Mare','Roja','F','Developer',105,10,3500,NULL,'2005-03-18')
INSERT INTO UNION2 VALUES (103,'Jagarla','Mahi','M','Sales man',104,20,3000,500,'2011-05-23')
·
Combine both the
data sets into single dataset without duplicates.
SELECT * FROM UNION1
UNION
SELECT * FROM UNION2
·
Combine the data
sets into single data-set with entire data (including duplicates).
SELECT * FROM UNION1
UNION ALL
SELECT * FROM UNION2
Except:
EXCEPT returns any distinct values from the left query and that value
should not be in right query.
Example:
SELECT * FROM UNION1
EXCEPT
SELECT * FROM UNION2
Intersect: INTERSECT returns any distinct values that are returned by both the
query.
Example:
SELECT * FROM UNION1
INTERSECT
SELECT * FROM UNION2
Friday, 19 October 2012
LOGICAL OPERATORS
Using Logical operators we can test the some conditions. Logical operators, like comparison operators a Boolean data type with a value of “True, False, or Unknown.
- AND
- OR
- IN
- LIKE
- BETWEEN
- ALL
- ANY
- EXISTS
- SOME
- NOT
AND: The
expression evaluates to TRUE if all conditions are TRUE.
Example: Find the employee details from “EMP table”, which
are getting salary more than 8000 and less than 15000.
SELECT * FROM EMP
WHERE Sal>8000 AND Sal<15000
OR: The
expression evaluates to TRUE if at least one condition is TRUE.
Example: Find the employee details from “EMP table”, which
are getting salary less than 8000 and more than 15000.
SELECT * FROM EMP
WHERE Sal<8000 or Sal>15000
IN: Determines
whether a specified value matches any value in a sub query or a list.
Example: Find the employee details from “EMP table”, which
are working under the departments 10 and 20.
SELECT * FROM EMP
WHERE Dept in (10,20)
LIKE: Determines
whether a specific character string matches a specified pattern.
Example: Extract the employee details from “EMP table”, whose
first name is starting with “J”.
SELECT * FROM EMP
WHERE FirstName like 'J%'
BETWEEN: Specifies
a range to test.
Example: Find the employee details from “EMP table”, which
are getting salary between 8000 and 15000.
SELECT * FROM EMP
WHERE Sal BETWEEN 8000 AND
15000
ALL: It
Returns TRUE if all of a set of comparisons are TRUE other wise returns FALSE.
Example: Extract all employee details from “EMP table”, which
are getting salary more than employees who are working under 10th
department.
SELECT * FROM EMP
WHERE Sal > ALL (SELECT Sal FROM EMP WHERE Dept=10)
ANY: ANY
returns TRUE when the comparison specified is TRUE for ANY pair, otherwise,
returns FALSE.
Example: Extract all employee details from “EMP table”, which
are getting salary more than any one of the employees who are working under 10th
department.
SELECT * FROM EMP
WHERE Sal > ANY (SELECT Sal FROM EMP WHERE Dept=10)
EXISTS:
Specifies a sub query to test for the existence of rows.
Example: I have tow table EMP1 and EMP2 (Table creation
script is attached below). Check the EMP2 table records are present in EMP1 or
not.
SELECT * FROM EMP1 A
WHERE EXISTS
(SELECT * FROM EMP2 B WHERE A.Dept=B.Dept)
Table creation script:
EMP1:
CREATE TABLE EMP1
(
ID INT,FirstName varchar (30),LastName Varchar(30),Gender Char(1),Designation Varchar(10),
ManagerID INT,Dept INT,Sal DECIMAL(18,4),Comm DECIMAL(18,4),HireDate DATE
)
Go
INSERT INTO EMP1 VALUES (101,'Yagenti','Charan','M','Developer',105,10,4000,NULL,'2001-05-21')
INSERT INTO EMP1 VALUES (102,'Mare','Roja','F','Developer',105,10,3500,NULL,'2005-03-18')
INSERT INTO EMP1 VALUES (103,'Jagarla','Mahi','M','Sales man',104,20,3000,500,'2011-05-23')
INSERT INTO EMP1 VALUES (104,'Dama','Puja','F','Manager',110,20,8000,NULL,'2009-05-19')
INSERT INTO EMP1 VALUES (105,'Kanti','Vijay','M','Manager',110,10,10000,NULL,'2001-10-30')
INSERT INTO EMP1 VALUES (106,'Konda','Krishna','M','Sales man',104,20,2500,600,'2010-09-05')
EMP2:
CREATE TABLE EMP2
(
ID INT,FirstName varchar (30),LastName Varchar(30),Gender Char(1),Designation Varchar(10),
ManagerID INT,Dept INT,Sal DECIMAL(18,4),Comm DECIMAL(18,4),HireDate DATE
)
Go
INSERT INTO EMP2 VALUES (101,'Yagenti','Charan','M','Developer',105,10,4000,NULL,'2001-05-21')
INSERT INTO EMP2 VALUES (102,'Mare','Roja','F','Developer',105,10,3500,NULL,'2005-03-18')
INSERT INTO EMP2 VALUES (103,'Jagarla','Mahi','M','Sales man',104,20,3000,500,'2011-05-23')
Some:
Compares a scalar value with a single-column set of values. SOME and ANY are
equivalent.
NOT:
Negates a Boolean input.
Example: Find the employee details from “EMP table”, which
are not working under the departments 10 and 20.
SELECT * FROM EMP
WHERE Dept NOT IN (10,20)
Note: When
more than one logical operator is used in a statement, the AND
operators are evaluated first. You can change the order of evaluation by using
parentheses.
COMPOUND OPERATORS
Compound operators execute some operation and set an original value to the result of the operation. For example, if a variable @x equals 35, then @x += 2 takes the original value of @x, add 2 and sets @x to that new value (37).
- Add Equals “+=”
- Subtract Equals “-=”
- Multiply Equals “*=”
- Divide Equals “/=”
- Modulo Equals “%=”
- Bitwise AND Equals “&=”
- Bitwise OR Equals “|=”
- Bitwise Exclusive OR Equals “^=”
Example: DECLARE @v1 INT;
SET @v1 =
10;
SET @v1 +=
2;
select @v1;
Example: DECLARE @v1 INT;
SET @v1 =
10;
SET @v1 -=
2;
select @v1;
Example: DECLARE @v1 INT;
SET @v1 =
10;
SET @v1 *=
2;
select @v1;
Example: DECLARE @v1 INT;
SET @v1 =
10;
SET @v1 /=
2;
select @v1;
Example: DECLARE @v1 INT;
SET @v1 =
15;
SET @v1 %=
2;
select @v1;
Example: DECLARE @v1 INT;
SET @v1 =
10;
SET @v1 &=
2;
select @v1;
Example: DECLARE @v1 INT;
SET @v1 =
10;
SET @v1 |=
2;
select @v1;
Bitwise Exclusive OR Equals (^=): Performs a bitwise exclusive OR and sets the
original value to the result.
Example: DECLARE @v1 INT;
SET @v1 =
10;
SET @v1 ^=
2;
select @v1;
Wednesday, 17 October 2012
COMPARISON OPERATORS
Using “Comparison operators” we can check weather two expressions are same, except the expressions which are having text, ntext, or image data types.
- Equals: “=”
- Greater than: “>”
- Less than: “<”
- Greater than or equal to: “>=”
- Less than or equal to: “<=”
- Not equal to: “<>” and “!= (Not ISO standard)”
- Not less than: “!<”
- Not greater than: “!>”
Equals (=):
Compares the equality of two expressions
Example:
è Find the employee details from EMP table, which
employee is having “106” as employee ID.
Solution:
SELECT * FROM EMP
where ID=106
Greater than (>): Compares two expressions (not null) and returns
“True” when the left expression has higher value than right expression.
Otherwise the result is “False”.
Example:
è Find the employee details from EMP table, which are
getting salary more than 10,000.
Solution:
SELECT * FROM EMP
where Sal>10000
Less than (<): Compares two expressions (not null) and returns “True” when the left
expression has lower value than right expression. Otherwise the result is
“False”.
Example:
è Find the employee details from EMP table, which are
getting salary less than 10,000.
Solution:
SELECT * FROM EMP
where Sal<10000
Greater than or equal to (>=): Compares two expressions (not null) and returns
“True” when the left expression has higher or equal value than right
expression. Otherwise the result is “False”.
Example:
è Find the employee details from EMP table, which are
getting salary more than or equal to 10,000.
Solution:
SELECT * FROM EMP
where Sal>=10000
Less than or equal to (<=): Compares two expressions (not null) and returns
“True” when the left expression has lower or equal value than right expression.
Otherwise the result is “False”.
Example:
è Find the employee details from EMP table, which are
getting salary less than or equal to 10,000.
Solution:
SELECT * FROM EMP
where Sal<=10000
Not equal to (<> or !=): Compares two expressions (not null) and returns
“True” when the left expression value is not equal to the right expression
value. Otherwise the result is “False”.
Example:
è Find the all employee details, except the employees
which are getting salary exactly 10,000 from EMP table.
Solution:
SELECT * FROM EMP
where Sal<>10000
OR
SELECT * FROM EMP
where Sal != 10000
Not less than (!<):Compares two expressions (not null) and returns
“True” when the left expression does not have a value lower than right
expression. Otherwise the result is “False”.
Example:
è Find the employee details from EMP table; their
salary should not less than 10,000.
Solution:
SELECT * FROM EMP
where Sal !< 10000
Not greater than (!>): Compares two expressions (not null) and returns
“True” when the left expression does not have value higher than right
expression. Otherwise the result is “False”.
Example:
è Find the employee details from EMP table; their
salary should not greater than 10,000.
Solution:
SELECT * FROM EMP
where Sal !> 10000
SAMPLE EMP TABLE CREATION WITH DATA
CREATE TABLE EMPLOYEE
(
ID INT
,FirstName varchar (30)
,LastName Varchar(30)
,Gender Char(1)
,Designation
Varchar(10)
,ManagerID INT
,Dept_ID INT
,Salary DECIMAL(18,4)
,Commission DECIMAL(18,4)
,HireDate DATE
)
Go
INSERT INTO EMPLOYEE VALUES (101,'Charan','Yagenti','M','Developer',105,10,4000,NULL,'2001-05-21')
INSERT INTO EMPLOYEE VALUES (102,'Roja','Mare','F','Developer',105,10,3500,NULL,'2005-03-18')
INSERT INTO EMPLOYEE VALUES (103,'Mahi','Jagarla','M','Sales man',104,20,3000,500,'2011-05-23')
INSERT INTO EMPLOYEE VALUES (104,'Puja','Dama','F','Manager',110,20,8000,NULL,'2009-05-19')
INSERT INTO EMPLOYEE VALUES (105,'Vijay','Kanti','M','Manager',110,10,10000,NULL,'2001-10-30')
INSERT INTO EMPLOYEE VALUES (106,'Krishna','Konda','M','Sales man',104,20,2500,600,'2010-09-05')
INSERT INTO EMPLOYEE VALUES (107,'Prabhaker','Venna','M','Account',109,30,8000,NULL,'2006-03-11')
INSERT INTO EMPLOYEE VALUES (108,'Nagini','Nagavara','F','Account',109,30,8500,NULL,'2000-11-25')
INSERT INTO EMPLOYEE VALUES (109,'Giri','Pinniboina','M','Manager',110,30,15000,NULL,'2008-04-04')
INSERT INTO EMPLOYEE VALUES (110,'Raja','Pedaraju','M','Manager',Null,40,20000,NULL,'2000-01-10')
INSERT INTO EMPLOYEE VALUES (111,'Charan','Jammi','M','Developer',105,10,6000,NULL,'2007-10-25')
Subscribe to:
Posts (Atom)