SQL: Data Definition Language

Similar documents
SQL DATA DEFINITION LANGUAGE

SQL DATA DEFINITION LANGUAGE

SQL DATA DEFINITION LANGUAGE

Constraints. Local and Global Constraints Triggers

Databases 1. Defining Tables, Constraints

Chapter 2 The relational Model of data. Relational model introduction

Constraints and Triggers

CSCI3030U Database Models

SQL Functionality SQL. Creating Relation Schemas. Creating Relation Schemas

CS145 Introduction. About CS145 Relational Model, Schemas, SQL Semistructured Model, XML

CS54100: Database Systems

SQL: Data Manipulation Language

CSC 343 Winter SQL: Aggregation, Joins, and Triggers MICHAEL LIUT

SQL: Concepts. Todd Bacastow IST 210: Organization of Data 2/17/ IST 210

From E/R Diagrams to Relations

Databases-1 Lecture-01. Introduction, Relational Algebra

A tuple is dangling if it doesn't join with any

Basic SQL. Basic SQL. Basic SQL

user specifies what is wanted, not how to find it

EGCI 321: Database Systems. Dr. Tanasanee Phienthrakul

Creating Tables, Defining Constraints. Rose-Hulman Institute of Technology Curt Clifton

Chapter 4. Basic SQL. Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

CS 464/564 Introduction to Database Management System Instructor: Abdullah Mueen

SQL Data Definition and Data Manipulation Languages (DDL and DML)

Chapter 7: Constraints and Triggers. Foreign Keys Local and Global Constraints Triggers

CS2300: File Structures and Introduction to Database Systems

Basic SQL. Dr Fawaz Alarfaj. ACKNOWLEDGEMENT Slides are adopted from: Elmasri & Navathe, Fundamentals of Database Systems MySQL Documentation

Introduction to SQL. Multirelation Queries Subqueries. Slides are reused by the approval of Jeffrey Ullman s

COGS 121 HCI Programming Studio. Week 03 - Tech Lecture

Design Techniques. 1. Avoid redundancy 2. Limit the use of weak entity sets 3. Don t use an entity set when an attribute will do

Chapter 4. Basic SQL. SQL Data Definition and Data Types. Basic SQL. SQL language SQL. Terminology: CREATE statement

SQL: Data Definition Language. csc343, Introduction to Databases Diane Horton Fall 2017

Constraints, Views & Indexes. Running Example. Kinds of Constraints INTEGRITY CONSTRAINTS. Keys Foreign key or referential integrity constraints

ER Model. CSC 343 Winter 2018 MICHAEL LIUT

2.9 Table Creation. CREATE TABLE TableName ( AttrName AttrType, AttrName AttrType,... )

The Relational Model of Data (ii)

Introduction to SQL. Select-From-Where Statements Multirelation Queries Subqueries. Slides are reused by the approval of Jeffrey Ullman s

Chapter 6 The database Language SQL as a tutorial

Slides by: Ms. Shree Jaswal

Chapter 6 The database Language SQL as a tutorial

MTAT Introduction to Databases

DS Introduction to SQL Part 1 Single-Table Queries. By Michael Hahsler based on slides for CS145 Introduction to Databases (Stanford)

BASIC SQL CHAPTER 4 (6/E) CHAPTER 8 (5/E)

1 INTRODUCTION TO EASIK 2 TABLE OF CONTENTS

SQL Continued! Outerjoins, Aggregations, Grouping, Data Modification

COSC344 Database Theory and Applications. Lecture 5 SQL - Data Definition Language. COSC344 Lecture 5 1

CS W Introduction to Databases Spring Computer Science Department Columbia University

Lab # 4. Data Definition Language (DDL)

SQL: Data De ni on. B0B36DBS, BD6B36DBS: Database Systems. h p:// Lecture 3

Introduction to SQL SELECT-FROM-WHERE STATEMENTS SUBQUERIES DATABASE SYSTEMS AND CONCEPTS, CSCI 3030U, UOIT, COURSE INSTRUCTOR: JAREK SZLICHTA

SQL language. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Introduction to SQL. Select-From-Where Statements Multirelation Queries Subqueries

BASIC SQL CHAPTER 4 (6/E) CHAPTER 8 (5/E)

Information Systems Engineering. SQL Structured Query Language DDL Data Definition (sub)language

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Introduction to SQL on GRAHAM ED ARMSTRONG SHARCNET AUGUST 2018

HOW TO CREATE AND MAINTAIN DATABASES AND TABLES. By S. Sabraz Nawaz Senior Lecturer in MIT FMC, SEUSL

SQL Introduction. CS 377: Database Systems

Programming and Database Fundamentals for Data Scientists

COMP 430 Intro. to Database Systems

Introduction to SQL Part 1 By Michael Hahsler based on slides for CS145 Introduction to Databases (Stanford)

CS 317/387. A Relation is a Table. Schemas. Towards SQL - Relational Algebra. name manf Winterbrew Pete s Bud Lite Anheuser-Busch Beers

EXTENDED RELATIONAL ALGEBRA OUTERJOINS, GROUPING/AGGREGATION INSERT/DELETE/UPDATE

Contains slides made by Naci Akkøk, Pål Halvorsen, Arthur M. Keller, Vera Goebel

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

Lab # 2. Data Definition Language (DDL) Eng. Alaa O Shama

types, but key declarations and constraints Similar CREATE X commands for other schema ëdrop X name" deletes the created element of beer VARCHARè20è,

Database Design and Programming

More SQL. Extended Relational Algebra Outerjoins, Grouping/Aggregation Insert/Delete/Update

CSIE30600 Database Systems Basic SQL 2. Outline

Data Types in MySQL CSCU9Q5. MySQL. Data Types. Consequences of Data Types. Common Data Types. Storage size Character String Date and Time.

Full file at

Where Are We? Next Few Lectures. Integrity Constraints Motivation. Constraints in E/R Diagrams. Keys in E/R Diagrams

CS 4604: Introduc0on to Database Management Systems. B. Aditya Prakash Lecture #4: SQL---Part 2

Views, Indexes, Authorization. Views. Views 8/6/18. Virtual and Materialized Views Speeding Accesses to Data Grant/Revoke Priviledges

Lecture 2: Introduction to SQL

Relational Model. CSC 343 Winter 2018 MICHAEL LIUT

SQL: A COMMERCIAL DATABASE LANGUAGE. Complex Constraints

MySQL Creating a Database Lecture 3

Outline. Textbook Chapter 6. Note 1. CSIE30600/CSIEB0290 Database Systems Basic SQL 2

D B M G. SQL language: basics. Managing tables. Creating a table Modifying table structure Deleting a table The data dictionary Data integrity

SQL Fundamentals. Chapter 3. Class 03: SQL Fundamentals 1

CSEN 501 CSEN501 - Databases I

Introduction to Data Management CSE 344

Data Definition and Data Manipulation. Lecture 5: SQL s Data Definition Language CS1106/CS5021/CS6503 Introduction to Relational Databases

SQL Data Definition Language

Lecture 5: SQL s Data Definition Language

Interpretation is not exactly ëmissing value." There could be many reasons why no value is

Principles of Data Management

Subqueries. Must use a tuple-variable to name tuples of the result

Chapter 10 Advanced topics in relational databases

Databases 1. SQL/PSM and Oracle PL/SQL

Comp 5311 Database Management Systems. 4b. Structured Query Language 3

Why SQL? SQL is a very-high-level language. Database management system figures out best way to execute query

Lab # 2 Hands-On. DDL Basic SQL Statements Institute of Computer Science, University of Tartu, Estonia

CSCC43H: Introduction to Databases. Lecture 4

Chapter 9: Working with MySQL

Introduction to Data Management. Lecture 16 (SQL: There s STILL More...) It s time for another installment of...

Announcements. Database Design. Database Design. Database Design Process. Entity / Relationship Diagrams. Introduction to Data Management CSE 344

Introduction to Database Systems CSE 414

Transcription:

SQL: Data Definition Language CSC 343 Winter 2018 MICHAEL LIUT (MICHAEL.LIUT@UTORONTO.CA) DEPARTMENT OF MATHEMATICAL AND COMPUTATIONAL SCIENCES UNIVERSITY OF TORONTO MISSISSAUGA

Database Schemas in SQL SQL is primarily a query language, for getting information from a database. DML: Data Manipulation Language But SQL also includes a data-definition component for describing database schemas. DDL: Data Definition Language 2

Creating (Declaring) a Relation Simply: CREATE TABLE <table_name> ( <list of elements> ); Deleting a relation: DROP TABLE <table_name>; 3

Elements of Table Declarations Most basic element: an attribute and its type. Common Types: INT or INTEGER (synonyms). Also: SMALLINT, MEDIUMINT, and BIGINT REAL or FLOAT or DOUBLE (synonyms). CHAR(n) = fixed-length string of n characters. VARCHAR(n) = variable-length string of up to n characters. Additional data type found here: https://dev.mysql.com/doc/refman/5.7/en/data-types.html 4

Example: Create Table CREATE TABLE Sells ( bar CHAR(20), beer VARCHAR(20), price REAL ); 5

SQL Values Integers and reals are represented as you would expect. Strings are too, except they require single quotes. Two single quotes = real quote e.g. Joe s Bar. Any value can be NULL Unless attribute has NOT NULL constraint e.g. price REAL not null, 6

Dates and Times DATE and TIME are types in SQL MySQL even has DATETIME Ranging from 1000-01-01 00:00:00 to 9999-12-31 23:59:59 The form of a date value is: DATE yyyy-mm-dd e.g. DATE 2007-09-30 is September 30 th, 2007. 7

Times and Values The form of a time value is: TIME hh:mm:ss with an optional decimal point for a fraction of a second. e.g. TIME 15:30:02.5 = two and a half seconds after 3:30pm. 8

Declaring Keys An attribute or list of attributes may be declared PRIMARY KEY or UNIQUE. Either says that no two tuples of the relation may agree in all the attribute(s) on the list. 9

Example Beers (name, manf) Bars (name, addr, license) Drinkers (name, addr, phone) Likes (drinker, beer) Sells (bar, beer, price) Frequents (drinker, bar) Underline = key (tuples cannot have the same value in all key attributes) 10

Declaring Single-Attribute Keys Place PRIMARY KEY or UNIQUE KEY after the type in the declaration of the attribute. Example: CREATE TABLE Beers ( name CHAR(20) UNIQUE, manf CHAR(20) ); 11

Declaring Multi-Attribute Keys A key declaration can also be another element in the list of elements of a CREATE TABLE statement. This form is essential if the key consists of more than one attribute. Could be used for one-attribute keys. 12

Example The bar and beer together are the key for Sells: CREATE TABLE Sells ( bar CHAR(20), beer VARCHAR(20), price REAL, PRIMARY KEY (bar, beer) ); 13

Primary Key vs. Unique 1. There can be only one PRIMARY KEY for a relation, but several UNIQUE attributes. 2. No attribute of a PRIMARY KEY can ever be NULL in any tuple. But attributes declared UNIQUE may have NULL s, and there may be several tuples with NULL. 14

Types of Constraints 1. Keys 2. Foreign-key (referential-integrity) constraint 3. Domain constraint Constrain values of a particular attribute. 4. Tuple-based constraint Relationship among components. 5. Assertions: any SQL Boolean expressions 15

Foreign Keys Values appearing in attributes of one relation must appear together in certain attributes of another relation. Example: in Sells(bar, beer, price), we might expect that a beer value also appears in Beers.name 16

Expressing Foreign Keys Use keyword REFERENCES, either: 1. After an attribute (for one-attribute keys). 2. As an element of the schema: FOREIGN KEY (<list of attributes>) REFERENCES <relation> (<attributes>) Referenced attributes must be declared PRIMARY KEY or UNIQUE. 17

Example: with Attribute CREATE TABLE Beers ( name CHAR(20) ); manf CHAR(20) PRIMARY KEY, CREATE TABLE Sells ( bar CHAR(20), beer CHAR(20) REFERENCES Beers(name), ); price REAL 18

Example: As Schema Element CREATE TABLE Beers ( name CHAR(20) ); manf CHAR(20) CREATE TABLE Sells ( bar CHAR(20), beer CHAR(20), ); price REAL PRIMARY KEY, FOREIGN KEY (beer) REFERENCES Beers(name) 19

Enforcing Foreign-Key Constraints If there is a foreign-key constraint from relation R to relation S, two violations are possible: 1. An insert or update to R introduces values not found in S. 2. A deletion or update to S causes some tuples of R to dangle. 20

Actions Taken Example: suppose R = Sells, S = Beers. An insert or update to Sells that introduces a nonexistent beer must be rejected. A deletion or update to Beers that removes a beer value found in some tuples of Sells can be handled in three ways. 21

Actions Taken Default: Reject the modification. Cascade: Make the same changes in Sells. Deleted beer: delete Sells tuple. Updated beer: change value in Sells. Set Null: Change the beet to NULL. 22

Example: Cascade Delete the Bud tuple from Beers: Then delete all tuples from Sells that have beer = Bud. Update the Bud tuple by changing Bud to Budweiser Then change all Sells tuples with beer = Bud to beer = Budweiser 23

Example: Set NULL Delete the Bud tuple from Beers: Change all tuples of Sells that have beer = Bud to have beer = NULL. Update the Bud tuple by changing Bud to Budweiser : Same change as for deletion. 24

Choosing a Policy When we declare a foreign key, we may choose policies SET NULL or CASCADE independently for deletions and updates. Follow the foreign-key declaration by: ON [UPDATE, DELETE][SET NULL CASCADE] Two such clauses may be used. Otherwise, the default (reject) is used. 25

Example: Setting Policy CREATE TABLE Sells ( bar CHAR(20), beer CHAR(20), price REAL, FOREIGN KEY(beer) REFERENCES Beers(name) ON DELETE SET NULL ON UPDATE CASCADE ); 26

Attribute-Based Checks Constraints on the value of a particular attribute. Add CHECK(<condition>) to the declaration for the attribute. The condition may use the name of the attribute, but any other relation or attribute must be in a sub-query. 27

Example: Attribute-Based Check CREATE TABLE Sells ( bar CHAR(20), beer CHAR(20) CHECK ( beer IN (SELECT name FROM Beers)), price REAL CHECK (price <= 5.00) ); 28

Timing of Checks Attribute-based checks are performed only when a value for that attribute is inserted or updated. Example: CHECK (price <= 5.00) checks every new price and rejects the modification (for that tuple) if the price is more than $5. Example: CHECK (beer IN (SELECT name FROM Beers)) not checked if a beer is deleted from Beers (unlike foreign-keys). 29

Tuple-Based Checks CHECK (<condition>) may be added as a relation-schema element. The condition may refer to any attribute of the relation. But other attributes or relations require a sub-query. Checked on insert or update only. 30

Example: Tuple-Based Check Only Joe s Bar can sell beer for more than $5. CREATE TABLE Sells ( bar CHAR(20), beer CHAR(20), price REAL, CHECK (bar = Joe s Bar OR price <= 5.00) ); 31

Questions? Q & A THANKS FOR LISTENING I LL BE ANSWERING QUESTIONS NOW 32

Citations, Images and Resources Database Management Systems (3 rd Ed.), Ramakrishnan & Gehrke Some content is based off the slides of Dr. Fei Chiang - http://www.cas.mcmaster.ca/~fchiang/ http://csharpcorner.mindcrackerinc.netdna-cdn.com/uploadfile/blogimages/06112016031910am/sql.png 33