DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Relevanta dokument
Design och underhåll av databaser

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

INNEHÅLL. Historik Vad är SQL Språkuppbyggnad SELECT Operatorer Logiska/Jämförelse SELECT med Alias och JOIN INSERT UPDATE DELETE

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

INNEHÅLL SQL DEL 2. Funktioner inbyggda Aggregatfunktioner Skalärfunktioner. Chapter 11. Beginning SQL Server 2008 for Developers

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Structured query language (SQL)

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Övningar i SQL. SQLAccess.doc Ove Lundgren

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation

1.Lär känna MS SQL Observera. Tips. Förberedelse

Starta MySQL Query Browser

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Skapa en databas. Skapa en tabell. Gör man antingen genom kommandot

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

MySQL. Maths Göthe. 25 februari Inledning Några konventioner Licens... 2

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Innehåll Programability Del 2

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index

TENTAMEN DATABASKUNSKAP ITEK12

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ;

DVA234 Databaser. Dag Nyström, Introduktion till databaser och MS SQL Server

3. Dynamiska webbplatser, 20 Yhp (4 v)

1. SQL DDL (Data Definition Language) 2. Skapa tabell

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

Prova på-laboration i SQL

Skapa exempeldatabasen

Det är fullt tillåtet att göra laborationen innan laborationstillfället.

WCMS-15, Webbutvecklare CMS

Labb 1. prompt> mysql -h db-und.ida.liu.se -u [liuid] -p Enter password. mysql --host=db-und.ida.liu.se --user=[liuid] --password=[lösen]

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Föreläsning 2: Översikt över ett databassystem

Analytisk relationsdatabasdesign

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Laboration 2, MS SQL. Observera. Tips. Förberedelse. Genomförande

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

Databasutveckling Introduktion till SQL och TSQL

Databaser och SQL - en kort introduktion

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Idag. Hur skapar vi och underhåller en databas? Index? Vad är det och varför behövs de? Behöver jag bry mig om index?

Databaser och Datamodellering Foreläsning IV

Relationsmodellen och syntetisk databasdesign

Databasspråket SQL - online.

Labb 1. prompt> mysql --host=db-und.ida.liu.se --user=[liuid] -- password=[lösenord] [liuid]

Sample exam questions. Database exam TIG058

Modul DB1-1 Databasmodellering

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Innehåll MySQL Intro. Historik / Utveckling Produkter Primära delsystem Installation Tabell och datatyper Namnsättning

Kompendium till databaser och informationssystem 10p för SY2 2000

Databasspråket SQL - online.

Modul DB1-3 Datamodellering

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

ADO.NET Murach Kapitel 17-20

Filbeskrivningar Eller på särskild CD skiva

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

MySQL - testmiljöer på minuter. Thomas Johansson IT-avdelningen

1. SQL DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7.

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Introduktion MySQL och MariaDB

Frågespråk och SQL. nikos dimitrakas rum 2423

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Det finns även möjlighet att göra "Java - kopplingar" mot DB2 enligt diverse standarder som ODBC, SQLj mm.

Databasspråket SQL - online.

VAD GÖR DU / VEM ÄR DU?

Inga hjälpmedel är tillåtna

FileMaker 14. SQL-referens

Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö.

VAD GÖR DU / VEM ÄR DU?

Lösningsförslag, tentamen i Databaser

Historik Primära Delsystem Produkter MSSQL Installationen Objekten i MS SQL Server Namn konvention Datatyper

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Föreläsning 6 Databaser och säkerhet

Databasspråket SQL - online.

Databasspråket SQL - online.

Konceptuella datamodeller

Föreläsning 5 Dagens föreläsning går igenom

732G16: Databaser - Design och programmering

Nya webbservern Dvwebb.mah.se

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Webbprogrammering, grundkurs 725G54

Dokumentation för VLDIT AB. Online classroom

Karlstads Universitet, Datavetenskap 1

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

Informa5onsmodellering

NORMALISERING. Mahmud Al Hakim

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Informationssystem och Databasteknik, 2I-1100 HT2001. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3.

9. :new och :old -värden 10. Triggerns olika delar 11. Olika typer av triggrar 12. Kodexempel. Pär Douhan,

Introduktion till frågespråket SQL (v0.91)

2. Objekt, operatorer och integritetsregler 3. Databasobjekt

Transkript:

INNEHÅLL SQL DEL 4 DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index Chapter 3, 6, 8 delar av. Beginning SQL Server 2008 for Developers 1

CREATE DATABASE Själva databasen är kontainer för tabellerna. Vi måste alltså först och främst skapa vår databas. Det görs i SQL med kommandot CREATE DATABASE. Syntax: CREATE DATABASE databasnamn CREATE DATABASE kundregister kundregister Beroende på databashanterare finns det sedan en uppsjö med olika alternativ för att sätta rättigheter, välja fysisk placering av databasfilen, bestämma hur loggning ska skötas, hur stor och hur fort databasen får växa med mera, med mera. Här får du ta hjälp av respektive databashanterares manual för att se hur du ska gå till väga. 2

CREATE DATABASE FORTS Exempel som gäller för MS SQL Server: CREATE DATABASE kundregister ON PRIMARY NAME= kundregister', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\kundregister.mdf, SIZE=3072KB, MAXSIZE=UNLIMITED, FILEGROWTH=1024KB LOG ON NAME= kundregister_log', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\kundregister_log.ldf', SIZE=1024KB, MAXSIZE=UNLIMITED, FILEGROWTH=10% 3

CREATE TABLE För att skapa tabeller i vår databas använder vi SQL-kommandot CREATE TABLE. Syntax: CREATE TABLE tabellnamn kolumn1 datatyp, kolumn2 datatyp, kolumn3 datatyp... Tabellnamn som börjar med # anger lokal temporärtabell ## anger global temporärtabell Observera paranteser och inte måsvingar. CREATE TABLE kund fornamn varchar25, efternamn varchar30, alder tinyint fornaman efternamn alder 4

CREATE TABLE FORTS. Förutom att enbart ange datatyper kan vi även tala om vilket fält som ska vara primärnyckel, vilka fält som inte får vara null, vilka fält som ska vara autouppräknande med mera. PRIMARY KEY: CREATE TABLE tabellnamn kolumn1 datatyp PRIMARY KEY Denna kolumn kommer att bli del av primärnyckel. NOT NULL: CREATE TABLE tabellnamn kolumn1 datatyp NOT NULL För att skapa en post måste denna kolumn ha ett värde. UNIQUE: CREATE TABLE tabellnamn kolumn1 datatyp UNIQUE Två poster med samma värde på denna kolumn får inte förekomma.* PRIMARY KEY och UNIQUE kan inte användas på samma kolumn. PIMARY KEY är UNIQUE! 5

AUTOUPPRÄKNING Speciellt på primärnyckelfält är det användbart att ha en autouppräknande nyckel för att skapa unika poster. Beroende på om du använder MySQL, SQL Server eller en annan databashanterare så skiljer detta kommando. Nedan redovisas hur detta genomförs i MySQL och SQL Server. Microsoft SQL Server: CREATE TABLE tabellnamn kolumn1 datatyp IDENTITYstartvärde, uppräkning Där start är startvärdet oftast 1 och uppräkning är steglängden oftast 1 MySQL: CREATE TABLE tabellnamn kolumn1 datatyp AUTO_INCREMENT = startvärde 6

EXEMPEL CREATE TABLE Nedan skapas en typisk tabell med SQL. Exemplet är gjort för SQL Server. CREATE TABLE member memberid INT PRIMARY KEY NOT NULL IDENTITY1,1, Firstname varchar50 NOT NULL, Lastname varchar50 NOT NULL, Age tinyint NOT NULL, Orgnr char11 UNIQUE NOT NULL, Comment varchar200 memberid Firstname Lastname Age Orgnr Comment 1 Karl Larsson 86 556323-9988 Börjar bli lite till åren ko... 2 Nisse Nilsson 45 459812-6541 Har inte erlagt medlems... 3 Janne Jansson 12 654513-2356 Är han inte lite ung för d... 4 Kalle Anka 56 473225-6547 Han heter ju som ankan i... 7

DEFINIERA TYP AV PK Member Membertel CREATE TABLE membertel membertelid INT PRIMARY KEY CLUSTERED NOT NULL IDENTITY1,1, Kontakt varchar50 NOT NULL, memberid INT NOT NULL Om sammansatt nyckel: CREATE TABLE membertel memberid INT NOT NULL membertelid INT NOT NULL IDENTITY1,1, Kontakt varchar50 NOT NULL, PRIMARY KEY CLUSTERED memberid,membertelid 8

ALTER TABLE ALTER TABLE används då vi vill förändra en existerande tabell. Syntaxen för hur detta görs skiljer mycket från databashanterare till databashanterare. Denna slide behandlar MS SQL Server. Syntax, förändra kolumn SQL Server: ALTER TABLE tabellnamn ALTER COLUMN kolumnnamn... Syntax, addera kolumn SQL Server: ALTER TABLE tabellnamn ADD kolumnnamn... Syntaxen efter ALTER COLUMN följer samma regler som när en ny tabell skapas. Syntax, radera kolumner SQL Server: ALTER TABLE tabellnamn DROP kolumnnamn1, kolumnnamn2... 9

EXEMPEL ALTER TABLE Lägger till fältet Rabatt i tabellen Artikel ALTER TABLE Artikel ADD Rabatt Decimal2,2 NULL Tar bort fältet Rabatt i tabellen Artikel ALTER TABLE Artikel DROP COLUMN Rabatt 10

LÄGGA TILL EN CHECK CONSTRAINT O DEFAULT CONSTRAINT CREATE TABLE member memberid INT PRIMARY KEY NOT NULL IDENTITY1,1, Firstname varchar50 NOT NULL, Lastname varchar50 NOT NULL, Age tinyint NOT NULL CONSTRAINT DF_member_age DEFAULT 0, Orgnr char11 UNIQUE NOT NULL, Comment varchar200 GO ALTER TABLE member WITH CHECK ADD CONSTRAINT [CK_member] CHECK len[orgnr]=11 GO 11

SKAPA EN FOREIGN KEY CONSTRAINT Member Membertel CREATE TABLE membertel membertelid INT PRIMARY KEY NOT NULL IDENTITY1,1, Kontakt varchar50 NOT NULL, memberid INT NOT NULL GO ALTER TABLE [MemberTel] WITH CHECK ADD CONSTRAINT [FK_Membertel_Member] FOREIGN KEY [Memberid] REFERENCES [member] [Memberid] ON DELETE CASCADE ON UPDATE NOACTION GO NOACTION är default. 12

CREATE INDEX För att indexera på en kolumn använder vi följande kommando: Syntax: CREATE INDEX indexnamn ON tabell kolumnnamn1, kolumnnamn2... Om vi vet att vi ofta gör sökningar på Produktnamn i vår databas WHERE Produktnamn=... kan det vara lämpligt att skapa ett index mot denna kolumn. ProduktID Artnr Produktnamn typid 1 3443 Stolen Gunnar 12 2 5423 Bordet Jan 21 3 6534 Pallen Gun 12 4 6545 Kassen Jarl 2 5 9875 Kvitto CREATE INDEX pnamn ON Produkt Produktnamn ASC Förhoppningsvis kommer våra sökningar att gå fortare i framtiden. CREATE UNIQUE NONCLUSTERED INDEX pnamn ON Produkt Produktnamn ASC 13

DROP Med kommandot DROP kan vi radera objekt såsom databaser, tabeller, fält, index m fl. Syntax, radera en databas: DROP DATABASE databasnamn Syntax, radera en tabell: DROP TABLE tabellnamn Du kan inte ta bort en databas om det finns en aktiv uppkoppling mot den. Syntax, radera ett index: DROP INDEX tabellnamn.indexnamn Var försiktig med ovanstående kommandon, du får ingen varning i SQL! 14