• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MySQL Queries

MySQL Queries



MySQL Queries

MySQL Queries



Total Views
Views on SlideShare
Embed Views



2 Embeds 74

http://www.dataminingtools.net 44
http://dataminingtools.net 30


Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    MySQL Queries MySQL Queries Presentation Transcript

      Querying data using joins
      Aggregation functions
      Creating and using views
      Using union operator for querying
    • 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.
    • 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)
    • (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)
      (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;
    • 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)
    • Join can be used for self referencing
      Ex: consider the emp_mgr table
    • (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; 
      We can list the combined result set from different
      Ex://suppose we have 2 teams one for quiz and 1 for debate as follows
      quiz teamdebate team
    • Mysql>select name,age from quiz
      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)
    • Aggregate functions
      used to perform calculations on a group of
      records and return a single value.
      Often used with GROUP BY clause of SELECT
      Some of the aggregate functions are
    • Ex:using employee database
      Mysql>select * from employee;
    • 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; 
      Returns the average of the grouped values.
      Mysql>select avg(sal) average_salary
      from employee; 
    • 3.MIN() and MAX()
      Mysql>select min(sal) MIN, 
      max(sal) MAX from employee;
      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; 
    • 5.VARIANCE()
      Mysql>select variance(sal) from employee;
      Mysql>select stddev(sal) from employee;
    • 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.
    • 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.
    • 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;
    • 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;
    • 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.
    • The select condition used to create the view can be altered using the syntax:
      ALTER VIEW view_name select_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;
    • Setting privileges for the views
      Privileges can be granted and revoked using any of the following:
    • 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.
    • 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);
    • 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
    • Subqueries with ALL and ANY
      Used along with comparison operators.
      Tests if the comparison value satisfies the particular
      relationship with all the values returned by the
      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.
    • 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
    • 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);
      Mysql>select NOT EXISTS(select * from employee where ssn=1111111);
    • Benefits sub queries
      • makes the query more
      • 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”).
    • 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