SQL datadefinitietaal



Vergelijkbare documenten
SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

Data Definition Language

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

6. Het maken van een database

Het omzetten van een ER-diagram naar SQL

[TOETS SQL INLEIDING]

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

Databases - Inleiding

Elfde-Liniestraat Hasselt Schooljaar TINFO POKER GAME Oracle Scripts

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

SQL.

Databanken - les 2.

Blog-Het gebruik van variabelen in Excel VBA

Zonnepanelen Hoe krijg je de data op je website?

Databanken - les 2.

Query SQL Boekje. Fredrik Hamer

Inleiding Databases en Data Base Management Systems Tabellen Wat is SQL?... 5

12. Meer dan één tabel gebruiken en sub-queries

Handleiding configuratie en gebruik tekenmodule

Van een ER-diagram naar een database specificatie in SQL

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1

Vragen hoofdstuk 1: Resultaat

COMPUTERWOORDEN.NL SQL - basis

Zelftest Oracle basiscursus

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: Groep TDI 1

8. De invoer van gegevens

Hoofdstuk: 1 Principes van databases

Integriteitsbewaking bij een relationele database

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.

Oracle-database creëren

Zelftest DB2 for z/os basiscursus

2.6 Veldeigenschappen

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Variabelen en statements in ActionScript

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Automatische Installatie op IIS server

Database Structuur via menus

Les 11 : Basis SQL (deel2).

Sparse columns in SQL server 2008

1. Inleiding Inleiding SQL Inleiding Database, databaseserver en databasetaal Het relationele model...

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

Pazaak PROJECTWERK. Opleidingsonderdeel Projecten Workshops I. Faculteit Bedrijf en Organisatie Valentin Vaerwyckweg GENT

QR-code op aanvoerbrief 2.xx.0: Specificaties

2.2 Een tabel ontwerpen

DB2 Darwin achterna: Schema-evolutie

Toelichting op de beslisboom fz RF12

Talstelsels en getalnotaties (oplmodel)

Les 10 : Aanmaken van een database (deel2).

Databases en SQL Foundation (DBSQLF.NL)

OEFENINGEN PYTHON REEKS 1

Het toepassen van een gelaagde architectuur

Structured Query Language

OEFENINGEN PYTHON REEKS 1

Een korte samenvatting van enkele FORTRAN opdrachten

Informatica toets vwo 6 Databases

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank

Groepswerk Technieken voor Datamodellering

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006

PYTHON REEKS 1: BASICS. Mathias Polfliet

Les 2 Eenvoudige queries

Handleiding RS Form! 1.0.4

Les S-01: De basisbeginselen van SQL

Vakgroep CW KAHO Sint-Lieven

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Oracle Rolling Upgrades met SharePlex Systems Consultant Quest Software Nederland 9/

Informatie & Databases

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Wat zijn de verschillen tussen SPSS 9 en SPSS 10?

SQL & Datamodelleren

OEFENINGEN PYTHON REEKS 1

inleiding theoretische informatica practicum 1 deadline woensdag 20 februari 2008 om uur

Guido Geurts Mark Bernaerts

Inhoud. Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2

Zorg ervoor dat je een database hebt aangevraagd op Open daarna het volgende adres in je browser:

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Bibliotheek in ProcessMaker

Inhoud KAS-WEB: HANDLEIDING IDG OPERATOR

Redundancy Normaalvormen

Relationele databanken

Versieperikelen. Bijlage C

Van CaseTalk naar een database in SQLite studio

Puzzelen met SQL DBA. De muzieklijst, deel 1. De tabellen De tabellen die we gaan gebruiken in deze puzzel zijn weergegeven in afbeelding 1.

Editions Based Redefinition: Tijdens de verbouwing gaat de verkoop door. Lucas Jellema, Alex Nuijten - AMIS Services BV

BEGINNER JAVA Inhoudsopgave

EXIN Databases en SQL Foundation

EXPLORING DB2 IN DIT NUMMER: OPEN CURSOR CLOSE CURSOR ABIS NIEUWSBRIEF VOOR DB2 PROFESSIONALS JAARGANG 1 - NUMMER 2, OKTOBER 2002

ASRemote WebService. Via deze webservice kunt u:

Inleiding tot Func.oneel Programmeren les 3

NHibernate als ORM oplossing

6.2 VBA Syntax. Inleiding Visual Basic

Verschillen Sumatra 2019 vs I4 4.4 V 1.0

Koppeling met een database

Secure Application Roles

Oracle database voor gebruik met BPMone creëren

Programmeren met Arduino-software

Gegevensopslag in databouwstenen

Transcriptie:

SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen van metagegevens ALTER : wijzigen van metagegevens

CREATE : een tabel creëren CREATE TABLE tablename ( fieldname1 type1 additionalinfo1, fieldname2 type2 additionalinfo2,... fieldnamen typen additionalinfon, additionaltableinfo); Bij elk veld kan additionele informatie worden gegeven: NOT NULL voor velden die geen NULL waarden mogen bevatten. PRIMARY KEY voor een veld dat de primary key is. Default-waarden met DEFAULT. GENERATED ALWAYS AS voor berekende velden (vanaf SQL-2003) in vroegere versies van Firebird COMPUTED BY (). REFERENCES voor de definitie van een foreign key. Met A INTEGER REFERENCES B(C) is A een foreign key voor de primary key C van tabel B. Er kan ook additionele tabelinformatie worden opgegeven, nodig wanneer er sleutels voorkomen met meervoudige attributen: PRIMARY KEY(column1, column2,...) voor de primaire sleutel. FOREIGN KEY (column1, column2,...) REFERENCES othertable (...) voor de definitie van een vreemde sleutel.

CREATE : een tabel creëren Voorbeelden: CREATE TABLE wagen ( nummerplaat CHAR(6) NOT NULL PRIMARY KEY, merk VARCHAR(10) DEFAULT 'Onbekend' NOT NULL, kleur VARCHAR(10) DEFAULT 'Onbekend' NOT NULL, prijs INTEGER NOT NULL, eigenaar VARCHAR(30) REFERENCES chauffeur(naam)); CREATE TABLE wagen ( nummerplaat CHAR(6) NOT NULL, merk VARCHAR(10) DEFAULT 'Onbekend' NOT NULL, kleur VARCHAR(10) DEFAULT 'Onbekend' NOT NULL, prijs INTEGER NOT NULL, eigenaar VARCHAR(30), PRIMARY KEY(nummerplaat), FOREIGN KEY (eigenaar) REFERENCES chauffeur);

Datatypes INTEGER: nummers zonder decimaal. Vaak verschillende INTEGER types: SMALLINT (-32768 tot 32767), INTEGER (-2147483648 tot 2147483647), BIGINT (-263 tot 263-1). DECIMAL: nummers met decimaal. Gedefiniëerd als DECIMAL(p,s) waarbij p het totale aantal cijfers is en s het aantal cijfers na de komma. Zo kan DECIMAL(4,2) de volgende getallen bevatten: 0.43 ; 34.00 ; 23.78 ; 1.18 ;... Wanneer je probeert 23.78342 op te slaan, wordt in feite 23.78 opgeslagen. Intern als een soort integer opgeslagen. Soms wordt ook het type NUMERIC hiervoor gebruikt. REAL: nummers met een decimaal. De namen FLOAT en DOUBLE PRECISION worden soms gebruikt. Het eerste voor een 32 bit getal, het tweede voor een 64 bit. De precisie gebruikt voor de opslag van de getallen hangt af het getal zelf. In dezelfde kolom kan dus zowel 23.78 als 23.78342 worden opgeslagen. VARCHAR voor de opslag van strings met variabele lengte. Met VARCHAR(5) kan dus zowel '' als 'AAAA' als 'AAAAA' worden opgeslagen. 'AAAAAA' kan er niet mee worden opgeslagen. Soms wordt ook CHAR VARYING of CHARACTER VARYING gebruikt. CHAR voor de opslag van strings met vaste lengte. Alle strings van het type CHAR(5) zijn exact 5 karakters lang, bijvoorbeeld ' ', 'AAAA ' of 'AAAAA'. Wanneer je er een kortere string in opslaat wordt de string met spaties verlengd tot de juiste lengte. Soms ook CHARACTER genoemd. DATE voor een datum. De standaard schrijft voor de opslag van een datum en tijd de volgende datatypes voor: TIMESTAMP voor datum+tijd, DATE voor datum alleen en TIME voor tijd alleen. BIT vor de opslag van een aantal bits. Met BIT(2) kan '00', '01', '10' of '11' worden opgeslagen. Wordt niet altijd ondersteund. Sinds SQL99 bestaat er ook een BOOL of BOOLEAN datatype: true of false.

CREATE : andere definities CREATE [UNIQUE] [ ASC[ENDING] [DESC[ENDING] ] INDEX indexname ON tablename (col1 [,col2,...]); CREATE DOMAIN domainname [AS] datatype [DEFAULT value] [NOT NULL] [CHECK search-condition]; search-condition = VALUE operator value VALUE [NOT] BETWEEN value1 AND value2 VALUE [NOT] LIKE value VALUE [NOT] IN (value1[, value2,...]) VALUE IS [NOT] NULL bvb. CHECK ((VALUE IS NULL) OR (VALUE>10 AND VALUE<100)); CREATE TRIGGER en CREATE PROCEDURE CREATE DATABASE SCHEMA 'file-specification' USER 'gebruiker' PASSWORD 'paswoord'; CREATE ROLE rolnaam; CREATE SEQUENCE generatornaam;

ALTER : een tabel wijzigen Erg gevarieerde syntax. Belangrijkste: ALTER TABLE tablename ADD fieldname type additionalinfo; ALTER TABLE tablename ALTER COLUMN id TO nr; ALTER TABLE tablename ALTER COLUMN nr POSITION 4; ALTER TABLE tablename ALTER COLUMN nr TYPE VARCHAR(20); het laatste alleen in een aantal gevallen (wanneer geen gegevensverlies) ALTER TABLE tablename DROP field1 [, field2,...]; alleen mogelijk wanneer niet gebruikt in constraints, triggers,... ALTER TABLE table ADD [CONSTRAINT naam] PRIMARY KEY (field1 [, field2,...]; ALTER TABLE table ADD [CONSTRAINT naam] FOREIGN KEY (field1 [, field2,...]) REFERENCES othertable; ALTER TABLE table ADD [CONSTRAINT naam] UNIQUE (field1 [, field2,...]; ALTER TABLE table ADD [CONSTRAINT naam] CHECK search-condition; ALTER TABLE tablename DROP CONSTRAINT naam;

Wanneer ALTER niet volstaat 1. Voeg eerst een nieuw tijdelijk veld toe met de gewenste eigenschappen maar met een andere naam. 2. Gebruik het UPDATE commando om de gegevens van het oude veld over te brengen naar het nieuwe. Gebruik eventueel omzettingsfuncties zoals CAST. 3. Na controle op de gekopiëerde data kan je het oude veld verwijderen. 4. Hernoem nu het tijdelijke veld naar de originele naam.

ALTER : andere definities ALTER INDEX indexname INACTIVE ACTIVE; ALTER DOMAIN domainname TYPE newtype; ALTER TRIGGER en ALTER PROCEDURE ALTER SCHEMA of ALTER DATABASE

DROP DROP TABLE naam; DROP DOMAIN naam; DROP INDEX naam; DROP TRIGGER naam; DROP PROCEDURE naam; DROP VIEW naam; DROP DATABASE;

Oefeningen 1. Schrijf alle commando's om de database te creëren. 2. Wijzig het veld SALARY van een numeriek veld naar een karakterveld. 3. Wijzig het veld SSN van een CHAR(9) naar een numeriek veld en het veld LNAME van VARCHAR(30) naar VARCHAR(25). 4. Maak van ADDRESS een berekend veld. 5. Voeg aan de tabel EMPLOYEE de velden PHONE en EMAIL toe van het type VARCHAR(15) en VARCHAR(200). 6. Indexeer beide nieuwe velden. Het veld EMAIL moet uniek zijn. 7. Voor de liefhebbers: schrijf triggers/procedures die nodig zijn om het veld EMAIL correct te formatteren: steeds met een @ erin. Vooraan een aantal karakters en achteraan eveneens met minimaal één punt erin. 8. Voeg een veld toe EMAILOK (ja/nee veld). Indien men probeert een foutief emailadres op te slaan, zet je dit veld op nee, standaard staat het op ja.