More SQL in MySQL 8.0

Size: px
Start display at page:

Download "More SQL in MySQL 8.0"

Transcription

1

2 More SQL in MySQL 8.0 Norvald H. Ryeng Sofware Development Senior Manager MySQL Optmizer Team November, 08

3 Program Agenda 3 4 Common table expressions (CTEs) Window functons JSON_TABLE Demo

4 Theory 4

5 Common Table Expressions (CTEs) Alternatve to derived tables or views SELECT FROM (subquery) AS derived, t CREATE VIEW derived AS (subquery); SELECT FROM derived, t WITH derived AS (subquery) SELECT FROM derived, t Can refer to other CTEs WITH cte AS (subquery), cte AS (SELECT FROM cte ) SELECT FROM cte Can refer to itself, creatng a recursive CTE 5

6 Recursive CTEs WITH RECURSIVE cte AS (SELECT FROM table_name UNION [DISTINCT ALL] SELECT FROM cte, table_name) SELECT FROM cte; /* "seed" SELECT */ /* "recursive" SELECT */ A recursive CTE refers to itself in a subquery The seed SELECT is executed once to create the inital data subset The recursive SELECT is executed repeatedly Stops when iteraton doesn t generate any new rows Set cte_max_recursion_depth to limit recursion (default 000) Useful to traverse hierarchies (parent/child, part/subpart) 6

7 Recursive CTE Example CREATE TABLE employee (number INTEGER PRIMARY KEY, name VARCHAR(00), manager INTEGER REFERENCES employee (number)); INSERT INTO employee VALUES (, 'Alice', NULL), (, 'Bob', ), (3, 'Bety', ), (4, 'Charlie', ), (5, 'Cherise', ), (6, 'Chandler', ), (7, 'Chris', 3), (8, 'Camilla', 3), (9, 'Dave', 8), (0, 'Denise', 8); WITH RECURSIVE emps AS ( SELECT *, name AS reportng_chain FROM employee WHERE manager IS NULL UNION ALL SELECT e.number, e.name, e.manager, CONCAT(e.name, ', ', m.reportng_chain) FROM employee AS e JOIN emps AS m ON e.manager = m.number ) SELECT * FROM emps; number name manager Alice NULL Bob Bob, Alice 3 Bety Bety, Alice 4 Charlie Charlie, Bob, Alice 5 Cherise Cherise, Bob, Alice 6 Chandler Chandler, Bob, Alice 7 Chris 3 Chris, Bety, Alice 8 Camilla 3 Camilla, Bety, Alice 9 Dave 8 Dave, Camilla, Bety, Alice 0 Denise 8 Denise, Camilla, Bety, Alice reportng_chain Alice 7

8 Recursive CTE Example CREATE TABLE employee (number INTEGER PRIMARY KEY, name VARCHAR(00), manager INTEGER REFERENCES employee (number)); INSERT INTO employee VALUES (, 'Alice', NULL), (, 'Bob', ), (3, 'Bety', ), (4, 'Charlie', ), (5, 'Cherise', ), (6, 'Chandler', ), (7, 'Chris', 3), (8, 'Camilla', 3), (9, 'Dave', 8), (0, 'Denise', 8); WITH RECURSIVE emps AS ( SELECT *, name AS reportng_chain FROM employee WHERE manager IS NULL UNION ALL SELECT e.number, e.name, e.manager, CONCAT(e.name, ', ', m.reportng_chain) FROM employee AS e JOIN emps AS m ON e.manager = m.number ) SELECT * FROM emps; number name manager Alice NULL Bob Bob, Alice 3 Bety Bety, Alice 4 Charlie Charlie, Bob, Alice 5 Cherise Cherise, Bob, Alice 6 Chandler Chandler, Bob, Alice 7 Chris 3 Chris, Bety, Alice 8 Camilla 3 Camilla, Bety, Alice 9 Dave 8 Dave, Camilla, Bety, Alice 0 Denise 8 Denise, Camilla, Bety, Alice reportng_chain Alice 8

9 Window Functons Similar to aggregaton functons Computes one value based on multple rows But does not group Aggregaton functon Window functon 9

10 Window Functon Example Sum up total salary per department SELECT name, dept_id, salary, SUM(salary) OVER (PARTITION BY dept_id) AS dept_total FROM employee ORDER BY dept_id, name; The OVER keyword signals a window functon PARTITION disjoint set of rows in result set name Newt Dag Ed Fred Jon Michael Newt Lebedev Pete Jef Will dept_id NULL salary NULL dept_total

11 Window Functon Example Sum up total salary per department SELECT name, dept_id, salary, SUM(salary) OVER (PARTITION BY dept_id) AS dept_total FROM employee ORDER BY dept_id, name; The OVER keyword signals a window functon PARTITION disjoint set of rows in result set name Newt Dag Ed Fred Jon Michael Newt Lebedev Pete Jef Will dept_id NULL salary NULL dept_total

12 JSON_TABLE INSERT INTO t (json_col) VALUES ( '{ "people": [ { "name":"john Smith", "address":"780 Mission St, San Francisco, CA 9403"}, { "name":"sally Brown", "address":"75 37th Ave S, St Cloud, MN 9403"}, { "name":"john Johnson", "address":"6 Roosevelt Trail, Raymond, ME 0407"} ] }' ); SELECT people.* FROM t, JSON_TABLE(json_col, '$.people[*]' COLUMNS ( name VARCHAR(40) PATH '$.name', address VARCHAR(00) PATH '$.address')) AS people; name John Smith Sally Brown John Johnson address 780 Mission St, San Francisco, CA th Ave S, St Cloud, MN Roosevelt Trail, Raymond, ME 0407

13 JSON_TABLE Nested Arrays [ { "father":"john", "mother":"mary", "marriage_date":" ", "children": [ { "name":"eric", "age":0 }, { "name":"beth", "age": } ] }, { "father":"paul", "mother":"laura", "children": [ { "name":"sarah", "age":9}, { "name":"noah", "age":3}, { "name":"peter", "age":0} ] } id father married child_id child age John Eric 0 John Beth Paul 0 Sarah 9 Paul 0 Noah 3 Paul 0 3 Peter 0 ] 3

14 JSON_TABLE Nested Arrays JSON_TABLE (families, '$[*]' COLUMNS ( id FOR ORDINALITY, father VARCHAR(30) PATH '$.father', married INTEGER EXISTS PATH '$.marriage_date', NESTED PATH '$.children[*]' COLUMNS ( child_id FOR ORDINALITY, child VARCHAR(30) PATH '$.name', age INTEGER PATH '$.age' ) )) id father married child_id child age John Eric 0 John Beth Paul 0 Sarah 9 Paul 0 Noah 3 Paul 0 3 Peter 0 4

15 Playtme 5

16 Demo Warning! The following queries are intended to demonstrate the power of the features This is not necessarily the best way of doing things This is not necessarily the easiest way of doing things This is not necessarily smart but it's fun! :-) 6

17 JSON_TABLE 7

18 Birth Order # First child in a family =, second child =, etc. SELECT fam.*, RANK() OVER w AS nth_child FROM families, JSON_TABLE (families, '$[*]' COLUMNS ( id FOR ORDINALITY, father VARCHAR(30) PATH '$.father', mother VARCHAR(30) PATH '$.mother', married INTEGER EXISTS PATH '$.marriage_date', marriage_date DATE PATH '$.marriage_date', NESTED PATH '$.children[*]' COLUMNS ( child_id FOR ORDINALITY, child VARCHAR(30) PATH '$.name', age INTEGER PATH '$.age' ) ) ) AS fam WINDOW w AS (PARTITION BY id ORDER BY age DESC) ORDER BY id, child_id; 8

19 Families as Table # Use JSON_TABLE to convert JSON document to a table representng the same info CREATE TABLE families_tab SELECT fam.* FROM families, JSON_TABLE (families, '$[*]' COLUMNS ( id FOR ORDINALITY, father VARCHAR(30) PATH '$.father', mother VARCHAR(30) PATH '$.mother', marriage_date DATE PATH '$.marriage_date', NESTED PATH '$.children[*]' COLUMNS ( child_id FOR ORDINALITY, child VARCHAR(30) PATH '$.name', age INTEGER PATH '$.age' ) ) ) AS fam; 9

20 Families from Table to JSON # Use JSON_ARRAYAGG to produce JSON SELECT JSON_PRETTY( JSON_OBJECT( 'father',any_value(father), 'mother',any_value(mother), 'marriage_date',any_value(marriage_date), 'children',json_arrayagg(json_object('name',child,'age',age)) ) ) FROM families_tab GROUP BY id; # Getng rid of "marriage_date" : null is lef as an exercise to the reader 0

21 GPS Tracking

22 Timeline CREATE TABLE tmeline ( ts TIMESTAMP, pos POINT SRID 436 ); INSERT INTO tmeline VALUES (' :30:00', ST_SRID(POINT( , ), 436)), (' :30:05', ST_SRID(POINT( , ), 436)), (' :30:0', ST_SRID(POINT( , ), 436)), (' :30:5', ST_SRID(POINT( , ), 436)), (' :30:0', ST_SRID(POINT( , ), 436)), (' :30:5', ST_SRID(POINT( , ), 436)), (' :30:30', ST_SRID(POINT( , ), 436)), (' :30:35', ST_SRID(POINT( , ), 436)), (' :30:40', ST_SRID(POINT( , ), 436)), (' :30:45', ST_SRID(POINT( , ), 436)), (' :30:50', ST_SRID(POINT( , ), 436)), (' :30:55', ST_SRID(POINT( , ), 436)) ; INSERT INTO tmeline VALUES (' :47:00', ST_SRID(POINT( , ), 436)), (' :47:05', ST_SRID(POINT( , ), 436)), (' :47:0', ST_SRID(POINT( , ), 436)), (' :47:5', ST_SRID(POINT( , ), 436)), (' :47:0', ST_SRID(POINT( , ), 436)), (' :47:5', ST_SRID(POINT( , ), 436)), (' :47:30', ST_SRID(POINT( , ), 436)), (' :47:35', ST_SRID(POINT( , ), 436)), (' :47:40', ST_SRID(POINT( , ), 436)), (' :47:45', ST_SRID(POINT( , ), 436)), (' :47:50', ST_SRID(POINT( , ), 436)) ; INSERT INTO tmeline VALUES (' :4:00', ST_SRID(POINT( , ), 436)), (' :4:05', ST_SRID(POINT( , ), 436)), (' :4:0', ST_SRID(POINT( , ), 436)), (' :4:5', ST_SRID(POINT( , ), 436)), (' :4:0', ST_SRID(POINT( , ), 436)), (' :4:5', ST_SRID(POINT( , ), 436)), (' :4:30', ST_SRID(POINT( , ), 436)), (' :4:35', ST_SRID(POINT( , ), 436)), (' :4:40', ST_SRID(POINT( , ), 436)) ;

23 Window Functon to Add Rank # Order by tmestamp. First point =, second point =, etc. CREATE VIEW ranked_tmeline AS SELECT *, RANK() OVER w AS num, TIME_TO_SEC(TIMEDIFF(ts, LAG(ts) OVER w)) AS dif FROM tmeline WINDOW w AS ( PARTITION BY DATE(ts) ORDER BY ts ) ; 3

24 Generate GeoJSON Path # 5 minutes (300 seconds) or more between points -> new trip. WITH RECURSIVE cte AS ( SELECT num AS trip, ts AS start, ts AS stop, num, JSON_ARRAY(JSON_ARRAY(ST_Longitude(pos), ST_Lattude(pos))) AS path FROM ranked_tmeline WHERE dif IS NULL OR dif >= 300 UNION ALL SELECT cte.trip, cte.start, ranked_tmeline.ts, ranked_tmeline.num, JSON_ARRAY_APPEND(cte.path, '$', JSON_ARRAY(ST_Longitude(ranked_tmeline.pos), ST_Lattude(ranked_tmeline.pos))) FROM ranked_tmeline, cte WHERE ranked_tmeline.num - = cte.num AND ranked_tmeline.dif < 300 ) SELECT DISTINCT trip, start, FIRST_VALUE(stop) OVER w AS stop, JSON_OBJECT('type', 'LineString', 'coordinates', FIRST_VALUE(path) OVER w) AS path_json FROM cte WINDOW w AS (PARTITION BY trip ORDER BY num DESC); 4

25 Trips Ploted from GeoJSON 5

26 Feature descriptons and design details directly from the source. htp://mysqlserverteam.com/ 6

27 7

28 Safe Harbor Statement The preceding is intended to outline our general product directon. It is intended for informaton purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functonality, and should not be relied upon in making purchasing decisions. The development, release, and tming of any features or functonality described for Oracle s products remains at the sole discreton of Oracle. 8

29

Combining SQL and NoSQL with MySQL

Combining SQL and NoSQL with MySQL Combining SQL and NoSQL with MySQL Manyi Lu Director MySQL Optimizer Team, Oracle April, 2018 Copyright 2016, 2014, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement The following

More information

What Is New in Optmizer and Executor?

What Is New in Optmizer and Executor? MySQL 8.0: What Is New in Optmizer and Executor? Norvald H. Ryeng Sofware Development Senior Manager MySQL Optmizer Team October, 2018 Safe Harbor Statement The following is intended to outline our general

More information

Safe Harbor Statement

Safe Harbor Statement Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment

More information

MySQL 8.0 What s New in the Optimizer

MySQL 8.0 What s New in the Optimizer MySQL 8.0 What s New in the Optimizer Manyi Lu Director MySQL Optimizer & GIS Team, Oracle October 2016 Copyright Copyright 2 015, 2016,Oracle Oracle and/or and/or its its affiliates. affiliates. All All

More information

MANAGING DATA(BASES) USING SQL (NON-PROCEDURAL SQL, X401.9)

MANAGING DATA(BASES) USING SQL (NON-PROCEDURAL SQL, X401.9) Technology & Information Management Instructor: Michael Kremer, Ph.D. Class 6 Professional Program: Data Administration and Management MANAGING DATA(BASES) USING SQL (NON-PROCEDURAL SQL, X401.9) AGENDA

More information

NoSQL + SQL = MySQL. Nicolas De Rico Principal Solutions Architect

NoSQL + SQL = MySQL. Nicolas De Rico Principal Solutions Architect NoSQL + SQL = MySQL Nicolas De Rico Principal Solutions Architect nicolas.de.rico@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for

More information

Copyright 2017, Oracle and/or its aff iliates. All rights reserved.

Copyright 2017, Oracle and/or its aff iliates. All rights reserved. Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment

More information

INDEX. 1 Basic SQL Statements. 2 Restricting and Sorting Data. 3 Single Row Functions. 4 Displaying data from multiple tables

INDEX. 1 Basic SQL Statements. 2 Restricting and Sorting Data. 3 Single Row Functions. 4 Displaying data from multiple tables INDEX Exercise No Title 1 Basic SQL Statements 2 Restricting and Sorting Data 3 Single Row Functions 4 Displaying data from multiple tables 5 Creating and Managing Tables 6 Including Constraints 7 Manipulating

More information

PASSWORDS TREES AND HIERARCHIES. CS121: Relational Databases Fall 2017 Lecture 24

PASSWORDS TREES AND HIERARCHIES. CS121: Relational Databases Fall 2017 Lecture 24 PASSWORDS TREES AND HIERARCHIES CS121: Relational Databases Fall 2017 Lecture 24 Account Password Management 2 Mentioned a retailer with an online website Need a database to store user account details

More information

Creating and Working with JSON in Oracle Database

Creating and Working with JSON in Oracle Database Creating and Working with JSON in Oracle Database Dan McGhan Oracle Developer Advocate JavaScript & HTML5 January, 2016 Safe Harbor Statement The following is intended to outline our general product direction.

More information

Histogram Support in MySQL 8.0

Histogram Support in MySQL 8.0 Histogram Support in MySQL 8.0 Øystein Grøvlen Senior Principal Software Engineer MySQL Optimizer Team, Oracle February 2018 Program Agenda 1 2 3 4 5 Motivating example Quick start guide How are histograms

More information

MySQL 8.0: Common Table Expressions

MySQL 8.0: Common Table Expressions MySQL 8.0: Common Table Expressions Guilhem Bichot Lead Software Engineer MySQL Optimizer Team, Oracle Who With MySQL AB / Sun / Oracle since 2002 Coder on the Server from 4.0 to 8.0 Replication, on-line

More information

Assignment 6: SQL III Solution

Assignment 6: SQL III Solution Data Modelling and Databases Exercise dates: April 12/April 13, 2018 Ce Zhang, Gustavo Alonso Last update: April 16, 2018 Spring Semester 2018 Head TA: Ingo Müller Assignment 6: SQL III Solution This assignment

More information

Modern SQL: Evolution of a dinosaur

Modern SQL: Evolution of a dinosaur Modern SQL: Evolution of a dinosaur Markus Winand Kraków, 9-11 May 2018 Still using Windows 3.1? So why stick with SQL-92? @ModernSQL - https://modern-sql.com/ @MarkusWinand SQL:1999 WITH (Common Table

More information

Querying Data with Transact SQL

Querying Data with Transact SQL Course 20761A: Querying Data with Transact SQL Course details Course Outline Module 1: Introduction to Microsoft SQL Server 2016 This module introduces SQL Server, the versions of SQL Server, including

More information

ASSIGNMENT NO Computer System with Open Source Operating System. 2. Mysql

ASSIGNMENT NO Computer System with Open Source Operating System. 2. Mysql ASSIGNMENT NO. 3 Title: Design at least 10 SQL queries for suitable database application using SQL DML statements: Insert, Select, Update, Delete with operators, functions, and set operator. Requirements:

More information

Assignment 6: SQL III

Assignment 6: SQL III Data Modelling and Databases Exercise dates: April 12/April 13, 2018 Ce Zhang, Gustavo Alonso Last update: April 16, 2018 Spring Semester 2018 Head TA: Ingo Müller Assignment 6: SQL III This assignment

More information

In This Lecture. More SQL Select. SQL SELECT Overview. Aliases. Example. Example. More SQL Select. Database Systems Lecture 8 Natasha Alechina

In This Lecture. More SQL Select. SQL SELECT Overview. Aliases. Example. Example. More SQL Select. Database Systems Lecture 8 Natasha Alechina In This Lecture More SQL Select Database Systems Lecture 8 Natasha Alechina More SQL Select Aliases Self-joins IN, EXISTS, ANY, ALL For more information Connoly and Begg Chapter 5 Ullman and Widom Chapter

More information

#MySQL #oow16. MySQL Server 8.0. Geir Høydalsvik

#MySQL #oow16. MySQL Server 8.0. Geir Høydalsvik #MySQL #oow16 MySQL Server 8.0 Geir Høydalsvik Copyright Copyright 2 2016, 016,Oracle Oracle aand/or nd/or its its aaffiliates. ffiliates. AAll ll rights rights reserved. reserved. Safe Harbor Statement

More information

Database Management Systems,

Database Management Systems, Database Management Systems SQL Query Language (3) 1 Topics Aggregate Functions in Queries count sum max min avg Group by queries Set Operations in SQL Queries Views 2 Aggregate Functions Tables are collections

More information

Views. Lecture 15 Section 5.3. Robb T. Koether. Hampden-Sydney College. Mon, Feb 18, 2013

Views. Lecture 15 Section 5.3. Robb T. Koether. Hampden-Sydney College. Mon, Feb 18, 2013 Views Lecture 15 Section 5.3 Robb T. Koether Hampden-Sydney College Mon, Feb 18, 2013 Robb T. Koether (Hampden-Sydney College) Views Mon, Feb 18, 2013 1 / 27 1 Views 2 Modifying the Base Tables 3 Updating

More information

CGS 3066: Spring 2017 SQL Reference

CGS 3066: Spring 2017 SQL Reference CGS 3066: Spring 2017 SQL Reference Can also be used as a study guide. Only covers topics discussed in class. This is by no means a complete guide to SQL. Database accounts are being set up for all students

More information

Views. Lecture 15. Robb T. Koether. Fri, Feb 16, Hampden-Sydney College. Robb T. Koether (Hampden-Sydney College) Views Fri, Feb 16, / 28

Views. Lecture 15. Robb T. Koether. Fri, Feb 16, Hampden-Sydney College. Robb T. Koether (Hampden-Sydney College) Views Fri, Feb 16, / 28 Views Lecture 15 Robb T. Koether Hampden-Sydney College Fri, Feb 16, 2018 Robb T. Koether (Hampden-Sydney College) Views Fri, Feb 16, 2018 1 / 28 1 Views 2 Modifying the Base Tables 3 Updating Views 4

More information

SQL Data Query Language

SQL Data Query Language SQL Data Query Language André Restivo 1 / 68 Index Introduction Selecting Data Choosing Columns Filtering Rows Set Operators Joining Tables Aggregating Data Sorting Rows Limiting Data Text Operators Nested

More information

What to expect from MySQL 8.0?

What to expect from MySQL 8.0? What to expect from MySQL 8.0? Norvald H. Ryeng Software Engineer FOSDEM 2017 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes

More information

Subquery: There are basically three types of subqueries are:

Subquery: There are basically three types of subqueries are: Subquery: It is also known as Nested query. Sub queries are queries nested inside other queries, marked off with parentheses, and sometimes referred to as "inner" queries within "outer" queries. Subquery

More information

Principles of Data Management

Principles of Data Management Principles of Data Management Alvin Lin August 2018 - December 2018 Structured Query Language Structured Query Language (SQL) was created at IBM in the 80s: SQL-86 (first standard) SQL-89 SQL-92 (what

More information

Data Manipulation Language (DML)

Data Manipulation Language (DML) In the name of Allah Islamic University of Gaza Faculty of Engineering Computer Engineering Department ECOM 4113 DataBase Lab Lab # 3 Data Manipulation Language (DML) El-masry 2013 Objective To be familiar

More information

DB2 SQL Class Outline

DB2 SQL Class Outline DB2 SQL Class Outline The Basics of SQL Introduction Finding Your Current Schema Setting Your Default SCHEMA SELECT * (All Columns) in a Table SELECT Specific Columns in a Table Commas in the Front or

More information

Views. Lecture 15 Section 5.3. Robb T. Koether. Hampden-Sydney College. Mon, Feb 18, 2013

Views. Lecture 15 Section 5.3. Robb T. Koether. Hampden-Sydney College. Mon, Feb 18, 2013 Views Lecture 15 Section 5.3 Robb T. Koether Hampden-Sydney College Mon, Feb 18, 2013 Robb T. Koether (Hampden-Sydney College) Views Mon, Feb 18, 2013 1 / 22 1 Views 2 Modifying the Base Tables 3 Updating

More information

Databases. Relational Model, Algebra and operations. How do we model and manipulate complex data structures inside a computer system? Until

Databases. Relational Model, Algebra and operations. How do we model and manipulate complex data structures inside a computer system? Until Databases Relational Model, Algebra and operations How do we model and manipulate complex data structures inside a computer system? Until 1970.. Many different views or ways of doing this Could use tree

More information

1Z0-007 ineroduction to oracle9l:sql

1Z0-007 ineroduction to oracle9l:sql ineroduction to oracle9l:sql Q&A DEMO Version Copyright (c) 2007 Chinatag LLC. All rights reserved. Important Note Please Read Carefully For demonstration purpose only, this free version Chinatag study

More information

SQL Queries. COSC 304 Introduction to Database Systems SQL. Example Relations. SQL and Relational Algebra. Example Relation Instances

SQL Queries. COSC 304 Introduction to Database Systems SQL. Example Relations. SQL and Relational Algebra. Example Relation Instances COSC 304 Introduction to Database Systems SQL Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca SQL Queries Querying with SQL is performed using a SELECT statement. The general

More information

What's New in MySQL 5.7?

What's New in MySQL 5.7? What's New in MySQL 5.7? Norvald H. Ryeng Software Engineer norvald.ryeng@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information

More information

Still using. Windows 3.1? So why stick to -

Still using. Windows 3.1? So why stick to - Still using Windows 3.1? So why stick to SQL-92? @ModernSQL - http://modern-sql.com/ @MarkusWinand SQL:1999 LATERAL LATERAL Before SQL:1999 Derived tables (from clause subqueries) cannot see outside: SELECT

More information

Why Relational Databases? Relational databases allow for the storage and analysis of large amounts of data.

Why Relational Databases? Relational databases allow for the storage and analysis of large amounts of data. DATA 301 Introduction to Data Analytics Relational Databases Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca DATA 301: Data Analytics (2) Why Relational Databases? Relational

More information

origin destination duration New York London 415 Shanghai Paris 760 Istanbul Tokyo 700 New York Paris 435 Moscow Paris 245 Lima New York 455

origin destination duration New York London 415 Shanghai Paris 760 Istanbul Tokyo 700 New York Paris 435 Moscow Paris 245 Lima New York 455 CS50 Beyond Databases origin destination duration New York London 415 Shanghai Paris 760 Istanbul Tokyo 700 New York Paris 435 Moscow Paris 245 Lima New York 455 SQL SQL Databases MySQL PostgreSQL SQLite...

More information

COSC 304 Introduction to Database Systems SQL. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 304 Introduction to Database Systems SQL. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 304 Introduction to Database Systems SQL Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca SQL Queries Querying with SQL is performed using a SELECT statement. The general

More information

Insertions, Deletions, and Updates

Insertions, Deletions, and Updates Insertions, Deletions, and Updates Lecture 5 Robb T. Koether Hampden-Sydney College Wed, Jan 24, 2018 Robb T. Koether (Hampden-Sydney College) Insertions, Deletions, and Updates Wed, Jan 24, 2018 1 / 17

More information

COSC 304 Introduction to Database Systems SQL DDL. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 304 Introduction to Database Systems SQL DDL. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 304 Introduction to Database Systems SQL DDL Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca SQL Overview Structured Query Language or SQL is the standard query language

More information

Oracle NoSQL Database at OOW 2017

Oracle NoSQL Database at OOW 2017 Oracle NoSQL Database at OOW 2017 CON6544 Oracle NoSQL Database Cloud Service Monday 3:15 PM, Moscone West 3008 CON6543 Oracle NoSQL Database Introduction Tuesday, 3:45 PM, Moscone West 3008 CON6545 Oracle

More information

Top 6 SQL Query Interview Questions and Answers

Top 6 SQL Query Interview Questions and Answers Just my little additions, remarks and corrections to Top 6 SQL Query Interview Questions and Answers as published on http://javarevisited.blogspot.co.nz/2017/02/top-6-sqlquery-interview-questions-and-answers.html

More information

Database 2: Slicing and Dicing Data in CF and SQL

Database 2: Slicing and Dicing Data in CF and SQL Database 2: Slicing and Dicing Data in CF and SQL Charlie Arehart Founder/CTO Systemanage carehart@systemanage.com SysteManage: Agenda Slicing and Dicing Data in Many Ways Handling Distinct Column Values

More information

Slicing and Dicing Data in CF and SQL: Part 1

Slicing and Dicing Data in CF and SQL: Part 1 Slicing and Dicing Data in CF and SQL: Part 1 Charlie Arehart Founder/CTO Systemanage carehart@systemanage.com SysteManage: Agenda Slicing and Dicing Data in Many Ways Handling Distinct Column Values Manipulating

More information

Querying Data with Transact-SQL

Querying Data with Transact-SQL Course 20761A: Querying Data with Transact-SQL Page 1 of 5 Querying Data with Transact-SQL Course 20761A: 2 days; Instructor-Led Introduction The main purpose of this 2 day instructor led course is to

More information

MySQL 8.0 Common Table Expressions & Windowing Functions

MySQL 8.0 Common Table Expressions & Windowing Functions 1 / 66 2 / 66 MySQL 8.0 Common Table Expressions & Windowing Functions Dave Stokes - MySQL Community Manager - Oracle 3 / 66 Safe Harbor Statement The following is intended to outline our general product

More information

Calculate the Running Total(Everything)

Calculate the Running Total(Everything) Calculate the Running Total(Everything Objective: List the running total of the annual salaries. SELECT EmployeeName,AnnualSalary,SUM(AnnualSalary OVER(ORDER BY EmployeeName AS Running_Total Employee --Checking

More information

The Mother of All Query Languages: SQL in Modern Times

The Mother of All Query Languages: SQL in Modern Times The Mother of All Query Languages: SQL in Modern Times @MarkusWinand @ModernSQL http://www.almaden.ibm.com/cs/people/chamberlin/sequel-1974.pdf 1974 1992 SQL-92 Tied to the Relational Idea Relational Data

More information

Slicing and Dicing Data in CF and SQL: Part 2

Slicing and Dicing Data in CF and SQL: Part 2 Slicing and Dicing Data in CF and SQL: Part 2 Charlie Arehart Founder/CTO Systemanage carehart@systemanage.com SysteManage: Agenda Slicing and Dicing Data in Many Ways Cross-Referencing Tables (Joins)

More information

Unit 1 - Chapter 4,5

Unit 1 - Chapter 4,5 Unit 1 - Chapter 4,5 CREATE DATABASE DatabaseName; SHOW DATABASES; USE DatabaseName; DROP DATABASE DatabaseName; CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype,... columnn

More information

MySQL InnoDB Cluster. MySQL HA Made Easy! Miguel Araújo Senior Software Developer MySQL Middleware and Clients. FOSDEM 18 - February 04, 2018

MySQL InnoDB Cluster. MySQL HA Made Easy! Miguel Araújo Senior Software Developer MySQL Middleware and Clients. FOSDEM 18 - February 04, 2018 MySQL InnoDB Cluster MySQL HA Made Easy! Miguel Araújo Senior Software Developer MySQL Middleware and Clients FOSDEM 18 - February 04, 2018 Safe Harbor Statement The following is intended to outline our

More information

Selections. Lecture 4 Sections Robb T. Koether. Hampden-Sydney College. Wed, Jan 22, 2014

Selections. Lecture 4 Sections Robb T. Koether. Hampden-Sydney College. Wed, Jan 22, 2014 Selections Lecture 4 Sections 4.2-4.3 Robb T. Koether Hampden-Sydney College Wed, Jan 22, 2014 Robb T. Koether (Hampden-Sydney College) Selections Wed, Jan 22, 2014 1 / 38 1 Datatypes 2 Constraints 3 Storage

More information

20761 Querying Data with Transact SQL

20761 Querying Data with Transact SQL Course Overview The main purpose of this course is to give students a good understanding of the Transact-SQL language which is used by all SQL Server-related disciplines; namely, Database Administration,

More information

PGQL: a Property Graph Query Language

PGQL: a Property Graph Query Language PGQL: a Property Graph Query Language Oskar van Rest Sungpack Hong Jinha Kim Xuming Meng Hassan Chafi Oracle Labs June 24, 2016 Safe Harbor Statement The following is intended to outline our general product

More information

Introduction to the MySQL Document Store Alfredo Kojima, Rui Quelhas, Mike Zinner MySQL Middleware and Clients Team October 22, 2018

Introduction to the MySQL Document Store Alfredo Kojima, Rui Quelhas, Mike Zinner MySQL Middleware and Clients Team October 22, 2018 Introduction to the MySQL Document Store Alfredo Kojima, Rui Quelhas, Mike Zinner MySQL Middleware and Clients Team October 22, 2018 Safe Harbor Statement The following is intended to outline our general

More information

CHAPTER: 4 ADVANCE SQL: SQL PERFORMANCE TUNING (12 Marks)

CHAPTER: 4 ADVANCE SQL: SQL PERFORMANCE TUNING (12 Marks) (12 Marks) 4.1 VIEW View: Views are virtual relations mainly used for security purpose, and can be provided on request by a particular user. A view can contain all rows of a table or select rows from a

More information

Press Release Writing Tips and Tricks for the Enterprise Technology Space

Press Release Writing Tips and Tricks for the Enterprise Technology Space A webinar for Press Release Writing Tips and Tricks for the Enterprise Technology Space Julie Sugishita Corporate Communications Manager Oracle May 19, 2016 julie.sugishita@oracle.com https://www.linkedin.com/in/juliesugishita

More information

Introductory SQL SQL Joins: Viewing Relationships Pg 1

Introductory SQL SQL Joins: Viewing Relationships Pg 1 Introductory SQL SQL Joins: Viewing Relationships Pg 1 SQL Joins: Viewing Relationships Ray Lockwood Points: The relational model uses foreign keys to establish relationships between tables. SQL uses Joins

More information

Querying Data with Transact SQL Microsoft Official Curriculum (MOC 20761)

Querying Data with Transact SQL Microsoft Official Curriculum (MOC 20761) Querying Data with Transact SQL Microsoft Official Curriculum (MOC 20761) Course Length: 3 days Course Delivery: Traditional Classroom Online Live MOC on Demand Course Overview The main purpose of this

More information

COUNT Function. The COUNT function returns the number of rows in a query.

COUNT Function. The COUNT function returns the number of rows in a query. Created by Ahsan Arif COUNT Function The COUNT function returns the number of rows in a query. The syntax for the COUNT function is: SELECT COUNT(expression) FROM tables WHERE predicates; Note: The COUNT

More information

Querying Microsoft SQL Server

Querying Microsoft SQL Server 20461 - Querying Microsoft SQL Server Duration: 5 Days Course Price: $2,975 Software Assurance Eligible Course Description About this course This 5-day instructor led course provides students with the

More information

SQL Recursion, Window Queries

SQL Recursion, Window Queries SQL Recursion, Window Queries PG 7.8; 3.5 & 9.21 Dr. Chris Mayfield Department of Computer Science James Madison University Mar 20, 2019 WITH clause Basic syntax: WITH R AS

More information

SQL functions fit into two broad categories: Data definition language Data manipulation language

SQL functions fit into two broad categories: Data definition language Data manipulation language Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition Chapter 7 Beginning Structured Query Language (SQL) MDM NUR RAZIA BINTI MOHD SURADI 019-3932846 razia@unisel.edu.my

More information

The query language for relational databases Jef De Smedt

The query language for relational databases Jef De Smedt SQL The query language for relational databases Jef De Smedt Getting to know Βeta vzw, Antwerp 1993 computer training for unemployed 2000 computer training for employees Cevora vzw/cefora asbl ( Fr 15/9

More information

20761B: QUERYING DATA WITH TRANSACT-SQL

20761B: QUERYING DATA WITH TRANSACT-SQL ABOUT THIS COURSE This 5 day course is designed to introduce students to Transact-SQL. It is designed in such a way that the first three days can be taught as a course to students requiring the knowledge

More information

Data Modeling with the Entity Relationship Model. CS157A Chris Pollett Sept. 7, 2005.

Data Modeling with the Entity Relationship Model. CS157A Chris Pollett Sept. 7, 2005. Data Modeling with the Entity Relationship Model CS157A Chris Pollett Sept. 7, 2005. Outline Conceptual Data Models and Database Design An Example Application Entity Types, Sets, Attributes and Keys Relationship

More information

Consolidate and Prepare for Cloud Efficiencies Oracle Database 12c Oracle Multitenant Option

Consolidate and Prepare for Cloud Efficiencies Oracle Database 12c Oracle Multitenant Option Consolidate and Prepare for Cloud Efficiencies Oracle Database 12c Oracle Multitenant Option Eric Rudie Master Principal Sales Consultant Oracle Public Sector 27 September 2016 Safe Harbor Statement The

More information

Oracle Database: Introduction to SQL Ed 2

Oracle Database: Introduction to SQL Ed 2 Oracle University Contact Us: +40 21 3678820 Oracle Database: Introduction to SQL Ed 2 Duration: 5 Days What you will learn This Oracle Database 12c: Introduction to SQL training helps you write subqueries,

More information

COSC 122 Computer Fluency. Databases. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 122 Computer Fluency. Databases. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 122 Computer Fluency Databases Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Key Points 1) Databases allow for easy storage and retrieval of large amounts of information.

More information

Oracle Policy Automation The modern enterprise advice platform

Oracle Policy Automation The modern enterprise advice platform Oracle Policy Automation The modern enterprise advice platform Release features and benefits (November 2017) v1.01 Program agenda 1 2 3 Overview of Oracle Policy Automation New features in release For

More information

Lab # 6. Using Subqueries and Set Operators. Eng. Alaa O Shama

Lab # 6. Using Subqueries and Set Operators. Eng. Alaa O Shama The Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4113: Database Lab Lab # 6 Using Subqueries and Set Operators Eng. Alaa O Shama November, 2015 Objectives:

More information

Handling Advanced Data Warehouse Scenarios in SSIS

Handling Advanced Data Warehouse Scenarios in SSIS Handling Advanced Data Warehouse Scenarios in SSIS John Welch, BI Architect @ Varigence MVP SQL Server Agenda Late Arriving Dimensions Parent-Child Dimensions Type 3 and Type 6 Dimensions 3 About Me John

More information

What s New in MariaDB Server Max Mether VP Server

What s New in MariaDB Server Max Mether VP Server What s New in MariaDB Server 10.3 Max Mether VP Server Recap MariaDB 10.2 New in MariaDB 10.2 - GA since May 2017 What s New in 10.2 Analytics SQL Window Functions Common Table Expressions (CTE) JSON JSON

More information

Safe Harbor Statement

Safe Harbor Statement Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment

More information

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 7 Introduction to Structured Query Language (SQL)

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management Tenth Edition Chapter 7 Introduction to Structured Query Language (SQL) Objectives In this chapter, students will learn: The basic commands and

More information

Querying Data with Transact-SQL

Querying Data with Transact-SQL Querying Data with Transact-SQL Course 20761C 5 Days Instructor-led, Hands on Course Information The main purpose of the course is to give students a good understanding of the Transact- SQL language which

More information

Full file at

Full file at David Kroenke's Database Processing: Fundamentals, Design and Implementation (10 th Edition) CHAPTER TWO INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) True-False Questions 1. SQL stands for Standard

More information

Sql Server Syllabus. Overview

Sql Server Syllabus. Overview Sql Server Syllabus Overview This SQL Server training teaches developers all the Transact-SQL skills they need to create database objects like Tables, Views, Stored procedures & Functions and triggers

More information

Relational Algebra. Mr. Prasad Sawant. MACS College. Mr.Prasad Sawant MACS College Pune

Relational Algebra. Mr. Prasad Sawant. MACS College. Mr.Prasad Sawant MACS College Pune Relational Algebra Mr. Prasad Sawant MACS College Pune MACS College Relational Algebra Tuple - a collection of attributes which describe some real world entity. Attribute - a real world role played by

More information

Using the MySQL Document Store

Using the MySQL Document Store Using the MySQL Document Store Alfredo Kojima, Sr. Software Dev. Manager, MySQL Mike Zinner, Sr. Software Dev. Director, MySQL Safe Harbor Statement The following is intended to outline our general product

More information

MySQL Group Replication in a nutshell

MySQL Group Replication in a nutshell 1 / 126 2 / 126 MySQL Group Replication in a nutshell the core of MySQL InnoDB Cluster Oracle Open World September 19th 2016 Frédéric Descamps MySQL Community Manager 3 / 126 Safe Harbor Statement The

More information

Database Technology. Topic 3: SQL. Olaf Hartig.

Database Technology. Topic 3: SQL. Olaf Hartig. Olaf Hartig olaf.hartig@liu.se Structured Query Language Declarative language (what data to get, not how) Considered one of the major reasons for the commercial success of relational databases Statements

More information

Performance Innovations with Oracle Database In-Memory

Performance Innovations with Oracle Database In-Memory Performance Innovations with Oracle Database In-Memory Eric Cohen Solution Architect Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information

More information

Chapter 6 - Part II The Relational Algebra and Calculus

Chapter 6 - Part II The Relational Algebra and Calculus Chapter 6 - Part II The Relational Algebra and Calculus Copyright 2004 Ramez Elmasri and Shamkant Navathe Division operation DIVISION Operation The division operation is applied to two relations R(Z) S(X),

More information

Safe Harbor Statement

Safe Harbor Statement Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment

More information

What Are Group Functions? Reporting Aggregated Data Using the Group Functions. Objectives. Types of Group Functions

What Are Group Functions? Reporting Aggregated Data Using the Group Functions. Objectives. Types of Group Functions What Are Group Functions? Group functions operate on sets of rows to give one result per group. Reporting Aggregated Data Using the Group Functions Maximum salary in table Copyright 2004, Oracle. All rights

More information

Key Points. COSC 122 Computer Fluency. Databases. What is a database? Databases in the Real-World DBMS. Database System Approach

Key Points. COSC 122 Computer Fluency. Databases. What is a database? Databases in the Real-World DBMS. Database System Approach COSC 122 Computer Fluency Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Key Points 1) allow for easy storage and retrieval of large amounts of information. 2) Relational

More information

SQL Recursion, Window Queries

SQL Recursion, Window Queries SQL Recursion, Window Queries FCDB 10.2 Dr. Chris Mayfield Department of Computer Science James Madison University Apr 02, 2018 Tips on GP5 Java Create object(s) to represent query results Use ArrayList

More information

Relational Databases

Relational Databases Relational Databases Lecture 2 Chapter 3 Robb T. Koether Hampden-Sydney College Fri, Jan 18, 2013 Robb T. Koether (Hampden-Sydney College) Relational Databases Fri, Jan 18, 2013 1 / 26 1 Types of Databases

More information

Introduction to Oracle9i: SQL

Introduction to Oracle9i: SQL Oracle 1z0-007 Introduction to Oracle9i: SQL Version: 22.0 QUESTION NO: 1 Oracle 1z0-007 Exam Examine the data in the EMPLOYEES and DEPARTMENTS tables. You want to retrieve all employees, whether or not

More information

NULLs & Outer Joins. Objectives of the Lecture :

NULLs & Outer Joins. Objectives of the Lecture : Slide 1 NULLs & Outer Joins Objectives of the Lecture : To consider the use of NULLs in SQL. To consider Outer Join Operations, and their implementation in SQL. Slide 2 Missing Values : Possible Strategies

More information

SQL Data Manipulation Language. Lecture 5. Introduction to SQL language. Last updated: December 10, 2014

SQL Data Manipulation Language. Lecture 5. Introduction to SQL language. Last updated: December 10, 2014 Lecture 5 Last updated: December 10, 2014 Throrought this lecture we will use the following database diagram Inserting rows I The INSERT INTO statement enables inserting new rows into a table. The basic

More information

Querying Microsoft SQL Server 2008/2012

Querying Microsoft SQL Server 2008/2012 Querying Microsoft SQL Server 2008/2012 Course 10774A 5 Days Instructor-led, Hands-on Introduction This 5-day instructor led course provides students with the technical skills required to write basic Transact-SQL

More information

SQL - Subqueries and. Schema. Chapter 3.4 V4.0. Napier University

SQL - Subqueries and. Schema. Chapter 3.4 V4.0. Napier University SQL - Subqueries and Chapter 3.4 V4.0 Copyright @ Napier University Schema Subqueries Subquery one SELECT statement inside another Used in the WHERE clause Subqueries can return many rows. Subqueries can

More information

Course Outline. Querying Data with Transact-SQL Course 20761B: 5 days Instructor Led

Course Outline. Querying Data with Transact-SQL Course 20761B: 5 days Instructor Led Querying Data with Transact-SQL Course 20761B: 5 days Instructor Led About this course This course is designed to introduce students to Transact-SQL. It is designed in such a way that the first three days

More information

Querying Data with Transact-SQL

Querying Data with Transact-SQL Course Code: M20761 Vendor: Microsoft Course Overview Duration: 5 RRP: 2,177 Querying Data with Transact-SQL Overview This course is designed to introduce students to Transact-SQL. It is designed in such

More information

Chapter 3: Introduction to SQL

Chapter 3: Introduction to SQL Chapter 3: Introduction to SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 3: Introduction to SQL Overview of the SQL Query Language Data Definition Basic Query

More information

Chapter 3. Introducation to Relational Database 9/2/2014 CSC4341 1

Chapter 3. Introducation to Relational Database 9/2/2014 CSC4341 1 Chapter 3 Introducation to Relational Database 9/2/2014 CSC4341 1 Relational Model Structure aspect Data in the database is perceived by the user as tables and nothing but tables Integrity aspect Those

More information

COMP7640 Assignment 2

COMP7640 Assignment 2 COMP7640 Assignment 2 Due Date: 23:59, 14 November 2014 (Fri) Description Question 1 (20 marks) Consider the following relational schema. An employee can work in more than one department; the pct time

More information

Querying Data with Transact-SQL

Querying Data with Transact-SQL Querying Data with Transact-SQL 20761B; 5 Days; Instructor-led Course Description This course is designed to introduce students to Transact-SQL. It is designed in such a way that the first three days can

More information