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

Constraints and Triggers

Chapter 2 The relational Model of data. Relational model introduction

CS54100: Database Systems

CSCI3030U Database Models

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

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

SQL Functionality SQL. Creating Relation Schemas. Creating Relation Schemas

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

From E/R Diagrams to Relations

Databases-1 Lecture-01. Introduction, Relational Algebra

SQL: Data Manipulation Language

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

EGCI 321: Database Systems. Dr. Tanasanee Phienthrakul

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

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

user specifies what is wanted, not how to find it

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

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

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

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

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

CS2300: File Structures and Introduction to Database Systems

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

The Relational Model of Data (ii)

Chapter 6 The database Language SQL as a tutorial

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

SQL Continued! Outerjoins, Aggregations, Grouping, Data Modification

COGS 121 HCI Programming Studio. Week 03 - Tech Lecture

CS W Introduction to Databases Spring Computer Science Department Columbia University

Slides by: Ms. Shree Jaswal

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

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

Grouping Operator. Applying γ L (R) Recall: Outerjoin. Example: Grouping/Aggregation. γ A,B,AVG(C)->X (R) =??

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

Full file at

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

Basic SQL. Basic SQL. Basic SQL

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

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

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

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

Lab # 4. Data Definition Language (DDL)

INDEXES MICHAEL LIUT DEPARTMENT OF COMPUTING AND SOFTWARE MCMASTER UNIVERSITY

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

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

ER Model. CSC 343 Winter 2018 MICHAEL LIUT

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

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

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

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

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

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

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

SQL: A COMMERCIAL DATABASE LANGUAGE. Complex Constraints

Database Design and Programming

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

Introduction to Data Management. Lecture #4 (E-R à Relational Design)

CSEN 501 CSEN501 - Databases I

CSIE30600 Database Systems Basic SQL 2. Outline

SQL DATA DEFINITION: KEY CONSTRAINTS. CS121: Relational Databases Fall 2017 Lecture 7

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

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

Chapter 10 Advanced topics in relational databases

Databases 1. SQL/PSM and Oracle PL/SQL

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

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

Introduction to Data Management CSE 344

Introduction to Data Management. Lecture #4 (E-R Relational Translation)

1 INTRODUCTION TO EASIK 2 TABLE OF CONTENTS

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

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

Announcements (September 18) SQL: Part II. Solution 1. Incomplete information. Solution 3? Solution 2. Homework #1 due today (11:59pm)

Data Modelling and Databases. Exercise Session 7: Integrity Constraints

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

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

CS54100: Database Systems

CSCI 127 Introduction to Database Systems

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

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

Introduction to Data Management CSE 344

SQL: Part II. Announcements (September 18) Incomplete information. CPS 116 Introduction to Database Systems. Homework #1 due today (11:59pm)

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

MTAT Introduction to Databases

SQL: Part III. Announcements. Constraints. CPS 216 Advanced Database Systems

Introduction to Database Systems CSE 414

Principles of Data Management

Outerjoins, Constraints, Triggers

COMP 430 Intro. to Database Systems

Introduction to Data Management. Lecture #5 Relational Model (Cont.) & E-Rà Relational Mapping

CompSci 516 Database Systems. Lecture 2 SQL. Instructor: Sudeepa Roy

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

Administrivia. The Relational Model. Review. Review. Review. Some useful terms

Chapter 2 The relational Model of data. Relational algebra

Transcription:

SQL DATA DEFINITION LANGUAGE DATABASE SCHEMAS IN SQL SQL is primarily a query language, for getting information from a database. DML: Data Manipulation Language SFWR ENG 3DB3 FALL 2016 MICHAEL LIUT (LIUTM@MCMASTER.CA) DEPARTMENT OF COMPUTING AND SOFTWARE MCMASTER UNIVERSITY But SQL also includes a data-definition component for describing database schemas. DDL: Data Definition Language 2 CREATING (DECLARING) A RELATION ELEMENTS OF TABLE DECLARATIONS Simply: CREATE TABLE <table _name> ( <list of elements> Deleting a relation: DROP TABLE <table _name>; Most basic element: an attribute and its type. Common Types: INT or INTEGER (synonyms). REAL or FLOAT (synonyms). CHAR(n) = fixed-length string of n characters. VARCHAR(n ) = variable-length string of up to n characters. 3 4 1

EXAMPLE: CREATE TABLE SQL VALUES beer VARCHAR(20), price REAL 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, 5 6 DATES AND TIMES TIMES AND VALUES DATE and TIME are types in SQL The form of a date value is: DATE yyyy-mm-dd 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. e.g. DATE 2007-09-30 is September 30 th, 2007. 7 8 2

DECLARING KEYS EXAMPLE 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. 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) 9 10 DECLARING SINGLE-ATTRIBUTE KEYS DECLARING MULTI-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 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 3

EXAMPLE PRIMARY KEY VS. UNIQUE The bar and beer together are the key for Sells: beer VARCHAR(20), price REAL, PRIMARY KEY (bar, beer) 13 1. There can be only one PRIMARY KEY for a relation, but several UNIQUE attributes. 1. 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 FOREIGN KEYS Keys Foreign-key, or referential-integrity. Domain constraints Constrain values of a particular attribute. Tuple-based constraints Relationship among components. Assertions: any SQL boolean expressions 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 15 16 4

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. EXAMPLE: WITH ATTRIBUTE CREATE TABLE Beers ( name CHAR(20) manf CHAR(20) PRIMARY KEY, beer CHAR(20) REFERENCES Beers(name), price REAL 17 18 EXAMPLE: AS SCHEMA ELEMENT CREATE TABLE Beers ( name CHAR(20) PRIMARY KEY, manf CHAR(20) beer CHAR(20), price REAL 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 5

ACTIONS TAKEN 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. 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. 21 22 EXAMPLE: CASCADE EXAMPLE: SET NULL Delete the Bud tuple from Beers: Then delete all tuples from Sells that have beer = Bud. 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 Then change all Sells tuples with beer = Bud to beer = Budweiser Update the Bud tuple by changing Bud to Budweiser : Same change as for deletion. 23 24 6

CHOOSING A POLICY EXAMPLE: SETTING POLICY When we declare a foreign key, we may choose policies SET NULL or CASCADE independently for deletions and updates. beer CHAR(20), Follow the foreign-key declaration by: ON [UPDATE, DELETE][SET NULL CASCADE] Two such clauses may be used. Otherwise, the default (reject) is used. price REAL, FOREIGN KEY(beer) REFERENCES Beers(name) ON DELETE SET NULL 25 ON UPDATE CASCADE 26 ATTRIBUTE-BASED CHECKS EXAMPLE: ATTRIBUTE-BASED CHECK Constraints on the value of a particular attribute. Add CHECK(<condition>) to the declaration for the attribute. beer CHAR(20) CHECK ( The condition may use the name of the attribute, but any other relation or attribute must be in a sub-query. beer IN (SELECT name FROM Beers)), price REAL CHECK (price <= 5.00) 27 28 7

TIMING OF CHECKS TUPLE-BASED 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). 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. 29 30 EXAMPLE: TUPLE-BASED CHECK CITATIONS, IMAGES AND RESOURCES Based on the slides of Dr. Fei Chiang - http://www.cas.mcmaster.ca/~fchiang/ Only Joe s Bar can sell beer for more than $5. beer CHAR(20), price REAL, CHECK (bar = Joe s Bar OR price <= 5.00) Database Management Systems (3 rd Ed.), Ramakrishnan & Gehrke http://csharpcorner.mindcrackerinc.netdna-cdn.com/uploadfile/blogimages/06112016031910am/sql.png 31 32 8