SQL and MySQL                      What is a Database, MySQL SpecificsNikolay KostovTechnical Trainerhttp://nikolay.itTele...
Contents1.   What is Database?2.   Keys and Table Relations3.   Data Manipulation Language        Select        Insert  ...
What is Database?
What is database? Relational database is set of tables with defined relations between them  Each table has columns (fiel...
What is SQL? Relational databases                     are manipulated using Structure Query Language (SQL)  Language for...
CommunicationEnter SQL query                        The query is sentSELECT                  to the serverdepartment_name ...
SQL SQL (Structured Query Language)  Language for describing and modifying   database structure and data  Consists of D...
Keys and Table Relations Tables relations   are defined by primary and foreign keys   Special properties of tables   Pa...
Keys and Table   Relations
Keys and Table Relations (2)   Example of two tables with primary and foreign key     In table Employees we put the depa...
Types of Relations There are three types of relations   between two tables   One-to-one – one row in the first table    ...
Fields Properties There are additional                     properties of the fields that change their behavior   Unique ...
Fields Properties (2) Autoincrement – usually used for primary key  fields; if the inserted value is NULL a new value  is...
Data Manipulation     Language
Select QueryProjection                  FilteringChoosing set of             Choosing set of rowscolumns Table 1          ...
Select Query (2) Example select query:   SELECT        EMPLOYEE_ID, FIRST_NAME as NAME,   SALARY   FROM EMPLOYEES   WHERE...
Selecting all Fields Instead of listof fields to select * can be used to specify all fields   Example: table employees: ...
Selecting Fields    Live Demo
Filtering Rows To select from the employees table all employees with salary less than 1000:   SELECT FIRST_NAME, LAST_NAM...
Filtering Rows    Live Demo
The null Value The special value   null means there is no value   Similar to PHP null   Different from zero or empty st...
Strings   Strings are enclosed in quotes     Some RDBMS support strings, enclosed in double-      quotes     Example: s...
Selecting Only Distinct Rows The keyword distinct sets the database engine to return only distinct rows as result        ...
Selecting Distinct      Rows     Live Demo
Arithmetic Operations Arithmetic operations:         -+*/() Example using      in select query:  SELECT LAST_NAME, SALAR...
String Operations Concatenation (joining) of strings     is done by CONCAT()   SELECT concat(FIRST_NAME, ,LAST_NAME) AS  ...
Comparison Operations Used in the where clause   Comparisons - <, >, <=, >=, <>   BETWEEN value AND value – similar to ...
Boolean Operations Used in where clauses   Logical operations – or, and, xor, not   Used to build complex filters for s...
Boolean Operations      Live Demo
Sorting the Data Result of select query can be sorted via the ORDER BY clause   Syntax is:    order by {column [asc|desc...
Inserting Data Into Table   The insert query has multiple forms:     Insert into <table> values      (<values>)    INSER...
Inserting Data Into       Table      Live Demo
Modifying Data   The update query modifies single or multiple rows in    a table     The syntax is      update <table> s...
Modifying Data    Live Demo
Deleting Data   The delete query deletes single or multiple    rows from a table     Syntax is      delete from <table> ...
Aggregate Functions
Aggregate Functions Aggregate functions operate on multiple rows and return single row as result  Usually used on numeri...
Aggregate Functions (2) Count(*) – returns count of rows Sum (field) – returns the sum of the values in the  column Avg...
Examples Selecting minimum, maximum, average and total salary for all representatives  SELECT AVG(SALARY), MAX(SALARY),  ...
Examples (2) Selecting earliest      and latest date of hiring of employee   Dates are stored as numbers so the numeric ...
Examples (3) Counting the employees in department with id 50  SELECT COUNT(*) FROM EMPLOYEES      COUNT(*)  WHERE DEPARTM...
Aggregating and null The aggregate functions ignore the null values              EMPLOYEE_ID      COMMISION              ...
Nested Queries   Select queries can be used in other queries     Join result of select query instead of table     Resul...
Nested Queries    Live Demo
Operator Exists Exists operator returns   true if the select query returns results   Example: selecting all employees th...
Operator Exists    Live Demo
MySQL MySQL is the most common database    for use with PHP  Very light and fast  Authentication is very fast    Doesn...
replace Query    Live Demo
SQL and MySQL    курсове и уроци по програмиране, уеб дизайн – безплатно     BG Coder - онлайн състезателна система - onli...
Exercises1.   Write a SQL query to find all information     about all departments2.   Write a SQL query to find all depart...
Exercises (2)9.    Write a SQL query to find the names of all      employees whose first name starts with the prefix      ...
Exercises (3)11.   Write a SQL query to find all employees that have      salary more than 50 000. Order them in decreasin...
Free Trainings @ Telerik Academy “PHP & MySQL Web Design" course    academy.telerik.com/.../php-school-    academy-meetin...
Upcoming SlideShare
Loading in...5
×

9. SQL and MySQL - PHP & MySQL Web Development

7,407

Published on

Basic concepts about SQL and MySQL
Telerik Software Academy: http://academy.telerik.com/school-academy/meetings/details/2011/10/11/php-school-academy-meeting
The website and all video materials are in Bulgarian.

This lecture discusses the following topics:

What is Database?
Keys and Table Relations
Data Manipulation Language:Select, Insert, Update, Delete
Aggregate Functions
MySQL Specifics

Published in: Education, Technology
1 Comment
0 Likes
Statistics
Notes
  • that's really good. Thank you.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
7,407
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
198
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

9. SQL and MySQL - PHP & MySQL Web Development

  1. 1. SQL and MySQL What is a Database, MySQL SpecificsNikolay KostovTechnical Trainerhttp://nikolay.itTelerik Software Academyacademy.telerik.com
  2. 2. Contents1. What is Database?2. Keys and Table Relations3. Data Manipulation Language  Select  Insert  Update  Delete4. Aggregate Functions5. MySQL Specifics
  3. 3. What is Database?
  4. 4. What is database? Relational database is set of tables with defined relations between them  Each table has columns (fields) and rows Field  Some fields are called primary and foreign keys and define relation Row 100 Steven King 24000 80 101 Neenah Kochhar 17000 50 102 Lex De Haan (null) 90 103 Hunold Alexander 9000 60 104 Ernst Bruce 6000 90
  5. 5. What is SQL? Relational databases are manipulated using Structure Query Language (SQL)  Language for describing operations on structure and content of the database  Easy and straightforward to learn  Most databases follow the SQL standard 99 with little exceptions and additions  Uses English phrases and words: SELECT department_name FROM departments
  6. 6. CommunicationEnter SQL query The query is sentSELECT to the serverdepartment_name DBFROM departments DEPARTMENT_NAME Administration The DB returns result Marketing (usually a table) Shipping
  7. 7. SQL SQL (Structured Query Language)  Language for describing and modifying database structure and data  Consists of DDL and DML  Data Definition Language (DDL) – defines the database structure – tables, fields and relations  Data Manipulation Language (DML) – modifies the data, stored in the tables – insert, delete, update or fetch rows
  8. 8. Keys and Table Relations Tables relations are defined by primary and foreign keys  Special properties of tables  Pair is formed by primary key in one table and linked foreign key in another  The values in a primary key field must be unique across the rows in the table  In a table there can be only one primary key but multiple foreign keys, pointing to other tables
  9. 9. Keys and Table Relations
  10. 10. Keys and Table Relations (2) Example of two tables with primary and foreign key  In table Employees we put the department id instead of all the information for the department  Data is not duplicated, less storage space required EMPLOYEES LAST_NAME DEPARTMENT_ID DEPARTMENTS King 1 ID NAME Kochhar 1 1 Executive Fay 2 2 Marketing Toto 3 3 Administration Jack 2 Primary key Foreign key to field ID in table Departments
  11. 11. Types of Relations There are three types of relations between two tables  One-to-one – one row in the first table corresponds to single row in the other  One-to-many – one row in the first table corresponds to many rows in the other  Many-to-many – many rows in one table correspond to many rows in the other  Third table is needed to be achieved  Sum of two one-to-many relations
  12. 12. Fields Properties There are additional properties of the fields that change their behavior  Unique – requires the values in that field to be unique  Inserting or modifying value that already exists raises error  Index – modifies the internal work of the storage engine – speeds up searching for value in that field  Requires storage space
  13. 13. Fields Properties (2) Autoincrement – usually used for primary key fields; if the inserted value is NULL a new value is generated and used instead Not null fields – require the inserted value to be distinct from NULL  Raises error otherwise  All primary keys are not null MySQL supports also full text index – index for string fields
  14. 14. Data Manipulation Language
  15. 15. Select QueryProjection FilteringChoosing set of Choosing set of rowscolumns Table 1 Table 1JoiningCombiningdata from twoor more tables Table 1 Table 2
  16. 16. Select Query (2) Example select query: SELECT EMPLOYEE_ID, FIRST_NAME as NAME, SALARY FROM EMPLOYEES WHERE EMPLOYEE_ID > 180  EMPLOYEE_ID, FIRST_NAME, SALARY – fields we are selecting  as sets name of the field in the result table  From defines the tables we are gathering the data from  Where filters the rows
  17. 17. Selecting all Fields Instead of listof fields to select * can be used to specify all fields  Example: table employees: EMPL_ID FIRST_NAME LAST_NAME SALARY 10 Larry King 900 20 John Kochhar 800 30 Papa De Haan 850 50 Mimi Tochkova 1200 SELECT * FROM EMPLOYEES Is similar to query: SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, salary FROM EMPLOYEES
  18. 18. Selecting Fields Live Demo
  19. 19. Filtering Rows To select from the employees table all employees with salary less than 1000: SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE SALARY < 1000 Produces result: LAST_NAME FIRST_NAME SALARY King Larry 900 Kochhar John 800 De Haan Papa 850
  20. 20. Filtering Rows Live Demo
  21. 21. The null Value The special value null means there is no value  Similar to PHP null  Different from zero or empty string  All operations with null produce null  Including comparison!
  22. 22. Strings Strings are enclosed in quotes  Some RDBMS support strings, enclosed in double- quotes  Example: selecting string SELECT LAST_NAME, foo AS FOO FROM EMPLOYEES Produces result: LAST_NAME FOO King foo Kochhar foo De Haan foo Mimi foo
  23. 23. Selecting Only Distinct Rows The keyword distinct sets the database engine to return only distinct rows as result MANAGER_ID SALARY SELECT MANAGER_ID, 102 9000.00 SALARY 103 4800.00 FROM EMPLOYEES 103 4800.00 103 4200.00 MANAGER_ID SALARY SELECT DISTINCT MANAGER_ID, 102 9000.00 SALARY 103 4800.00 FROM EMPLOYEES 103 4200.00
  24. 24. Selecting Distinct Rows Live Demo
  25. 25. Arithmetic Operations Arithmetic operations: -+*/() Example using in select query: SELECT LAST_NAME, SALARY, SALARY + 300, 2*(SALARY + 300) AS BIG_SALARY FROM EMPLOYEES WHERE SALARY < 1000 LAST_NAME SALARY SALARY + 300 BIG_SALARY King 900 1200 2400 Kochhar 800 1100 2200 De Haan 850 1150 2300
  26. 26. String Operations Concatenation (joining) of strings is done by CONCAT() SELECT concat(FIRST_NAME, ,LAST_NAME) AS Employees, SALARY FROM EMPLOYEES Employees SALARY Larry King 900 John Kochhar 800 Papa De Haan 850 Mimi Tochkova 1200
  27. 27. Comparison Operations Used in the where clause  Comparisons - <, >, <=, >=, <>  BETWEEN value AND value – similar to combination of comparisons  IN (value, …) – specifying if value is in a list  LIKE, RLIKE – simple and extended string comparison with regular expressions  IS NULL, IS NOT NULL – check if value is (not) null
  28. 28. Boolean Operations Used in where clauses  Logical operations – or, and, xor, not  Used to build complex filters for select query SELECT MANAGER_ID, DEPARTMENT_NAME FROM DEPARTMENTS WHERE MANAGER_ID < 200 AND NOT (DEPARTMENT_NAME = SALES)
  29. 29. Boolean Operations Live Demo
  30. 30. Sorting the Data Result of select query can be sorted via the ORDER BY clause  Syntax is: order by {column [asc|desc],…} SELECT LAST_NAME, HIRE_DATE FROM EMPLOYEES ORDER BY HIRE_DATE, SALARY ASC  The asc and desc modifiers sort in ascending and descending order, respectively  By default sorting is ascending
  31. 31. Inserting Data Into Table The insert query has multiple forms:  Insert into <table> values (<values>) INSERT INTO COUNTRIES VALUES (BG, Bulgaria, 1) INSERT INTO COUNTRIES (COUNTRY_ID,COUNTRY_NAME,REGION_ID) VALUES (BG, Bulgaria, 1)
  32. 32. Inserting Data Into Table Live Demo
  33. 33. Modifying Data The update query modifies single or multiple rows in a table  The syntax is update <table> set <column>=<value>,… where <condition> UPDATE EMPLOYEES SET FIRST_NAME = Updated Name, DEPARTMENT_ID = 90 WHERE EMPLOYEE_ID = 100
  34. 34. Modifying Data Live Demo
  35. 35. Deleting Data The delete query deletes single or multiple rows from a table  Syntax is delete from <table> where <condition> DELETE FROM EMPLOYEES WHERE EMPLOYEE_ID = 1 DELETE FROM EMPLOYEES WHERE FIRST_NAME LIKE S% The truncate query empties table TRUNCATE TABLE EMPLOYEES
  36. 36. Aggregate Functions
  37. 37. Aggregate Functions Aggregate functions operate on multiple rows and return single row as result  Usually used on numeric fields EMPLOYEE_ID SALARY 100 24000 101 17000 MAX(SALARY) 102 17000 24000 103 9000 104 6000 ... ...
  38. 38. Aggregate Functions (2) Count(*) – returns count of rows Sum (field) – returns the sum of the values in the column Avg (field) – returns the average of the values in the column Max (field) - return the maximum value in the column  Can be used for string values Min (field) – returns the minimum value in the column  Can be used for string values
  39. 39. Examples Selecting minimum, maximum, average and total salary for all representatives SELECT AVG(SALARY), MAX(SALARY), MIN(SALARY), SUM(SALARY) FROM EMPLOYEES WHERE JOB_ID LIKE %ACC% AVG(SALARY) MAX(SALARY) MIN(SALARY) SUM(SALARY) 7983.333333 9000.00 6900.00 47900.00
  40. 40. Examples (2) Selecting earliest and latest date of hiring of employee  Dates are stored as numbers so the numeric aggregate functions can be applied to them SELECT MIN(HIRE_DATE), MAX(HIRE_DATE) FROM EMPLOYEES MIN(HIRE_DATE) MAX(HIRE_DATE) 1987-06-17 00:00:00 2000-04-21 00:00:00
  41. 41. Examples (3) Counting the employees in department with id 50 SELECT COUNT(*) FROM EMPLOYEES COUNT(*) WHERE DEPARTMENT_ID = 50 45 Count only counts the values, different from null
  42. 42. Aggregating and null The aggregate functions ignore the null values EMPLOYEE_ID COMMISION 100 20 101 10 102 (null) SELECT AVG(COMMISSION_PCT) AVG(COMMISSION) FROM EMPLOYEES 0.222857
  43. 43. Nested Queries Select queries can be used in other queries  Join result of select query instead of table  Result of select query, as value or list of values in comparison SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE SALARY = (SELECT MAX(SALARY) FROM EMPLOYEES) SELECT FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE DEPARTMENT_ID IN (SELECT DEPARTMENT_ID FROM DEPARTMENTS WHERE DEPARTMENT_NAME=Accounting) SELECT D.DEPARTMENT_NAME, E.FIRST_NAME, E.SALARY FROM DEPARTMENTS D LEFT JOIN (SELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_ID, SALARY FROM EMPLOYEES WHERE SALARY > 10000) E ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
  44. 44. Nested Queries Live Demo
  45. 45. Operator Exists Exists operator returns true if the select query returns results  Example: selecting all employees that worked in department ID 110 SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES E WHERE EXISTS (SELECT EMPLOYEE_ID FROM JOB_HISTORY JH WHERE DEPARTMENT_ID = 110 AND JH.EMPLOYEE_ID=E.EMPLOYEE_ID)
  46. 46. Operator Exists Live Demo
  47. 47. MySQL MySQL is the most common database for use with PHP  Very light and fast  Authentication is very fast  Doesnt slow page loading times  High scalability  Can work with millions of rows  Open source, free  Designed for Linux
  48. 48. replace Query Live Demo
  49. 49. SQL and MySQL курсове и уроци по програмиране, уеб дизайн – безплатно BG Coder - онлайн състезателна система - online judge курсове и уроци по програмиране – Телерик академия форум програмиране, форум уеб дизайн уроци по програмиране и уеб дизайн за ученици ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NET http://academy.telerik.com програмиране за деца – безплатни курсове и уроци ASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC безплатен SEO курс - оптимизация за търсачки алго академия – състезателно програмиране, състезаниякурсове и уроци по програмиране, книги – безплатно от Наков курс мобилни приложения с iPhone, Android, WP7, PhoneGap уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop Дончо Минков - сайт за програмиране free C# book, безплатна книга C#, книга Java, книга C# Николай Костов - блог за програмиране безплатен курс "Качествен програмен код" безплатен курс "Разработка на софтуер в cloud среда" C# курс, програмиране, безплатно
  50. 50. Exercises1. Write a SQL query to find all information about all departments2. Write a SQL query to find all department names3. Write a SQL query to find the salary of each employee4. Write a SQL query to find the full name of each employee6. Write a SQL query to find all different employee salaries.7. Write a SQL query to find all information about the employees whose job title is “Sales Representative“
  51. 51. Exercises (2)9. Write a SQL query to find the names of all employees whose first name starts with the prefix "Sa“8. Write a SQL query to find the names of all employees whose last name contains the sequence "ei“9. Write a SQL query to find the salary of all employees whose salary is in the range [20000…30000]10. Write a SQL query to find the names of all employees whose salary is 25000, 14000, 12500 or 23600
  52. 52. Exercises (3)11. Write a SQL query to find all employees that have salary more than 50 000. Order them in decreasing order by salary12. Write a SQL query to find all employees that do not have manager13. Write a SQL query to find the top 5 best paid employees14. Write a SQL query to find all employees along with their address. Use inner join with ON clause15. Write a SQL query to find the average salary in the department #1
  53. 53. Free Trainings @ Telerik Academy “PHP & MySQL Web Design" course academy.telerik.com/.../php-school- academy-meeting Telerik Software Academy  academy.telerik.com Telerik Academy @ Facebook  facebook.com/TelerikAcademy Telerik Software Academy Forums  forums.academy.telerik.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×