Uploaded on

MySql: Queries

MySql: Queries

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,896
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. MYSQL DATA QUERYING
  • 2. OVERVIEW
    Querying data using joins
    Aggregation functions
    Creating and using views
    Using union operator for querying
    Subqueries.
  • 3. Querying data using joins
    1.INNER JOIN()
    CROSS JOIN and JOIN types are all similar to INNER JOIN
    Used to link a table to itself.
    Ex: consider two tables t1 and t2.
  • 4. Mysql>select * from t1 inner join t2;
    (here each row of one table is combined with each row of the other table, this join performs Cartesian product)
  • 5. (in order to perform inner join based on certain criteria use WHERE clause)
    Mysql>select t1.*,t2.* from t1 inner join t2 where t1.i1=t2.i2;

    (inner join only selects the records which match the condition)
  • 6. OUTER JOINS
    (these select even the records which donot satisfy the condition and place a NULL)
    1.LEFT JOIN
    ( this forces the result set to contain a row for every entry selected from the left table, so if there is no match on the right table, we will find NULL in the result set)
    Mysql>select t1.*,t2.*
    from t1 left join t2
    on t1.i1=t2.i2;
  • 7. 2.RIGHT JOIN()
    (this forces the result set to contain a row for every entry selected from the right table, so if there is no match on the left table, we will find NULL)
    Mysql>select t1.*,t2.* from t1 right join t2 on t1.i1=t2.i2;
    Mysql>select t1.* from t1 left join t2 on t1.i1=t2.i2
    Where t1.i1 ISNULL;
    (left join is used to find the records where there is mismatch)
  • 8. Join can be used for self referencing
    Ex: consider the emp_mgr table
  • 9. (employee table can be retrieved separately by
    performing self join) employee_table
    Mysql>select t1.ssn,t1.name as
    e_name from emp_mgr as t1
    inner join emp_mgr as t2 on
    t2.ssn=t1.mgr_ssn; 
  • 10. USING UNION FOR QUERYING
    We can list the combined result set from different
    tables.
    Ex://suppose we have 2 teams one for quiz and 1 for debate as follows
    quiz teamdebate team
  • 11. Mysql>select name,age from quiz
    union
    select name,age from debate;

    (advantage of union: unique values are not repeated, it eleminates duplicate rows by default.
    To preserve the duplicate rows use UNION ALL)
  • 12. Aggregate functions
    used to perform calculations on a group of
    records and return a single value.
    Often used with GROUP BY clause of SELECT
    statement.
    Some of the aggregate functions are
    SUM,AVG,MIN,MAX,COUNT etc
  • 13. Ex:using employee database
    Mysql>select * from employee;
  • 14. 1.SUM()
    Returns the sum of the grouped values, Returns 0 if there are no matching values.
    Mysql>select dept,sum(sal)
    From employee
    Group by dept; 
    2.AVG()
    Returns the average of the grouped values.
    Mysql>select avg(sal) average_salary
    from employee; 
  • 15. 3.MIN() and MAX()
    Mysql>select min(sal) MIN, 
    max(sal) MAX from employee;
    4.COUNT()
    Returns the count of values, here we can use to count the number of employee’s working in the company.
    Mysq>select count(*) from
    Employee; 
  • 16. 5.VARIANCE()
    Mysql>select variance(sal) from employee;
    688888888.8889
    6.STDDEV()
    Mysql>select stddev(sal) from employee;
    26246.6929
  • 17. views
    Views are virtual tables defined in terms of other(base) tables.
    When the data in the underlying table changes so does
    the data in the view.
    But if the definitions in the table changes for ex: if we
    add new columns to the table then these changes
    might not apply for the views created.
  • 18. Views are updatable which means you can change the underlying table by means of operations on the view only when
    the view is mapped directly onto a single table
    view must select only the columns that are simple references to the table columns
    any operation on the view row must correspond to an operation on a single in the underlying table.
    no union operators,GROUP BY OR HAVING clauses,aggregate functions are used in the query.
  • 19. A simple view is a way to select a subset of a tables columns.
    Syntax: CREATE VIEW view_name as select_query
    check condition;
    Ex:using employee database
    if we want to only select the columns name and ssn from the employee table we have to create the view.
    Mysql> create view vemp as select ssn,name from employee;
  • 20. Mysql>select * from vemp;
    We can further get data from the view by querying using WHERE,ORDER BY and other clauses.
    You can provide column names explicitly by providing the names in closed parenthesis.
    Mysql> create view vemp (reg,enm) as
    select ssn,name from employee;
  • 21. A view can be used to perform calculations automatically.
    Mysql>create view exp as select name, timestampdiff(year,date-of-join,’2010-01-01’) as experience from employee;
    Mysql>select * from exp;
    View can be defined on multiple tables, which makes it easy to use queries having join conditions.
  • 22. The select condition used to create the view can be altered using the syntax:
    ALTER VIEW view_name select_condition
    Check_condition;
    The select query used to define the view can be retrieved using the syntax:
    SHOW CREATE VIEW view_name;
    To drop the view use the syntax:
    DROP VIEW view_name;
  • 23. Setting privileges for the views
    Privileges can be granted and revoked using any of the following:
    GRANT CREATE VIEW;
    GRANT SHOW CREATE VIEW;
    REVOKE CREATE VIEW;
    REVOKE SHOW CREATE VIEW;
  • 24. sub queries
    Subqueries support one select query to be nested inside the other.
    Subquery may return a single value,single column,single row or a table depending on the query.
    Subqueries may be correlated or uncorrelated.
    Subqueries can be tested using:
    Comparison operators(=,>,<)
    EXISTS,NOT EXISTS tests if the result of the subquery is empty.
    IN,NOT IN tests if the value is present in the set returned by subquery.
    ALL,ANY compare the value to the values returned.
  • 25. Subqueries with comparison operators
    Comparison operators when used with the subqueries,will find all the rows in the outer query which satisfy the particular relationship with the value returned by the subquery.
    Ex: to select the employee who is least paid we can use the subquery.
    Mysql>select * from e where
    sal=(select min(sal) from e);
  • 26. Subqueries with IN and NOT IN
    Used when the subquery returns multiple values.
    Matches the row whose value is present in the set of values returned by the sub query.
    Mysql>select * from employee where ssn IN
    (select mgr_ssn from manager);
    retrieves the details of all employees who are managers
    Mysql>select * from employee where ssn NOT IN
    (select mgr_ssn from manager);
    retrieves the details of all employees who are not managers
  • 27. Subqueries with ALL and ANY
    Used along with comparison operators.
    ALL
    Tests if the comparison value satisfies the particular
    relationship with all the values returned by the
    subquery.
    Mysql>select ssn,name from employee
    where date_of_join <= ALL
    (select date_of_join from employee);
    shows that jack is the most experienced working employee.
  • 28. ANY
    Tests if the comparison value satisfies the
    particular relationship with any value
    returned by the subquery.
    Mysql>select ssn,name from
    employee where date_of_join
    <= ANY(select date_of_join from employee);
    this returns all the rows because every date_of_join is <= atleast one of the other date including itself
  • 29. Subqueries with EXISTS and NOT EXISTS
    Used to test if the subquery returns any row.
    If it returns any row.EXISTS is true and NOT EXIST
    is false, it returns 1.
    Mysql>select EXISTS(select * from employee where ssn=1111111);
    0
    Mysql>select NOT EXISTS(select * from employee where ssn=1111111);
    1
  • 30. Benefits sub queries
    • makes the query more
    Structured.
    • reduced data redundancy and
    Greater ease of manipulation.
    • sub queries are more readable than joins or unions,
    indeed it was the innovation of sub queries made people call the early SQL(“structured query language”).
  • 31. Visit more self help tutorials
    Pick a tutorial of your choice and browse through it at your own pace.
    The tutorials section is free, self-guiding and will not involve any additional support.
    Visit us at www.dataminingtools.net