SQL 2013
Inhoudsopgave
Inhoudsopgave...................................................................................................................................... 2 SQL begrippen ...................................................................................................................................... 3 Maken Database ................................................................................................................................... 4 Rechten voor een Database ........................................................................................................... 4 User aanmaken ..................................................................................................................................... 5 Rol Toekennen aan een user ......................................................................................................... 5 Backup.................................................................................................................................................... 6 Theorie ............................................................................................................................................... 6 In SQL ................................................................................................................................................ 6 SQL CMD ............................................................................................................................................... 6 ODBC Koppeling................................................................................................................................... 8 in excel ............................................................................................................................................... 8 in acces .............................................................................................................................................. 8 Query gelijk opslaan in C schijf .......................................................................................................... 8 maintenance plan maken .................................................................................................................. 10 Office Word aantekeningen mergen ................................................................................................ 11 Queries ................................................................................................................................................. 12 Datum ............................................................................................................................................... 12 Theorie ......................................................................................................................................... 12 Praktijk .......................................................................................................................................... 12 Gegevens uit Database halen ...................................................................................................... 13 DML commando’s ........................................................................................................................... 14 Theorie ......................................................................................................................................... 14 Praktijk .......................................................................................................................................... 14 Handleiding export SQL..................................................................................................................... 16 Foutmeldingen................................................................................................................................. 18 Hoofdletters ................................................................................................................................. 18 Slash ............................................................................................................................................. 19
SQL begrippen Begrip INT Varchar
Not null null Select Insert Delete Update Integriteit Truncate Create Go Use
Primary key * Order by ASC DESC OR NOT AND AVG MIN MAX SUM Count Insert Into ... Values
Uitleg Als dit bij een table staat moet er een getal staan. Dit is een variatie van letters Varchar wordt gevolgd door (4) het getal in deze haakjes zoveel letters mag het bevatten. Dit veld mag niet leeg zijn Dit veld mag leeg zijn Met dit commando selecteer je dingen uit de database Dit commando gebruik je om dingen toe te voegen in de database Dit commando gebruik je om dingen te verwijderen van de database Dit commando gebruik je om records te updaten in de database Waarde in een database klopt Dit commando gebruik je om dingen voor altijd te wissen uit de database Dit commando gebruik je om je database aan te maken Dit commando gebruik je om van start te gaan in de database naar keuze Dit commando gebruik je om de database te selecteren in welke je wilt gaan werken Aan dit veld kun je de database herkennen Alles Dit commando wil je de database gaan ordenen op het genoemde veld Sorteer aflopen A-Z Sorteer oplopend Z-A Of Niet En Het gemiddelde Minimum Maximum Bepaalde dingen bij elkaar optellen Tellen hoeveel items er zijn Ergens in toevoegen Waardes
Maken Database Het maken van database beheerder: -
Create Database Beheerder
Het werkelijk aanmaken -
Go
Zeggen dat je deze database gaat gebruiken -
Use Beheerder
Het maken van een tabel -
Create Table Voorbeeld
Het vullen van gegevens -
Insert into voorbeeld (nr, Vnaam, Tnaam, Anaam, Leeftijd) (1, ‘Corné’, null, ‘Tamerus’, 22) Insert Into voorbeeld (2, ‘Jan’, Null, ‘Klaassen’, 25)
Rechten voor een Database Select Insert Update Delete All Transactional Grant Revoke
Selecteren Invoegen Updaten Verwijderen ^ Alle bovenstaande ^ Gebruiken we niet! Toekenen Ontnemen
User aanmaken Elke user moet een Login krijgen om toegang te krijgen tot de server -
Create Login Testen With Password = 'P@ssword' Must_change; go
Een login moet een useraccount worden Toegang tot een Database (meerdere Databases is regel herhalen!)
-
Use Nortwind Create User Inkoper For Login Testen; Go
Rol Toekennen aan een user -
exec sp_addrolemember 'db_datareader', 'Inkoper'
Zelf een Rol maken en hier rechten aan toevoegen
-
Create role Testen go
Grant = toekennen -
Grant select, update on products to testen Grant Delete on products to testen
revoke = ontnemen -
Revoke update on products to testen
deny = niet gebruiken
Backup Theorie Backup tye full backup = een backup van de gehele database differential backup = een backup van de wijzigingen in de full backup (werkt niet als je geen full backup hebt). bij options altijd append to the existing media aangevinkt laten. zorg ervoor dat er altijd do not compress backup aanstaat bij options -> compression bij maintenence plans kun je de backup specefieker aangeven.
In SQL Databases opvragen -
select*fromsys.databases
een database uit de beheeromgeving halen: -
detach exec master.dbo.sp_detach_db @dbname = N'northwind'
een database in de beheeromgeving opnemen: -
attach create database[northwind] on ( filename = N'C:\program files\microsoft sql server\mssql\data\northwind.mdf ), ( filename = N'C:\program files\microsoft sql server\mssql\data\northwind.ldf') for attach
Backup databae [Northwind] to disk -
N'c\Northwind.bak
SQL CMD
In uitvoeren kun je een sql cmd starten waar je ook statements kunt intypen zoals select enz ga naar uitvoeren -> typ sqlcmd
ODBC Koppeling koppeling maken tussen client en server voor office ga naar server --> start --> admin tools --> data sources (ODBC). kies voor client sql kies de server naam (klik op file --> connect en dan zie je de servername staan. klik bij user dsn op create --> vul je naam en een descrition in (Klik verder niet op het pijltje). vink aan with integrated authentication windows selecteer de northwind database
in excel tabblad gegevens --> ext gegevens ophalen en dan koppel je de gemaakte koppeling
in acces tabblad externe gegevens odbc database koppelen aan een gegevensbron selecteren --> en dan de juiste database selecteren en dan een tabel kiezen ga naar het tabblad externe gegevens --> odcb-database en dan de database met de juiste tabel selecteren
Query gelijk opslaan in C schijf ga naar sqlcmd type in :out C:\text.txt typ dan de query die je wilt hebben bijvoorbeeld use northwind from products
deze query wordt dan opgeslagen
maintenance plan maken klik op management bij sql --> DC1 (sql server rechtermuis op maintenance plan --> new maintenence plan
dan bij toolbox klikken op shrink database task rechtermuis op de tool --> edit en dan kun je de database shrinken
dit is bestemd voor alleen gebruikers database dit wordt gebruikt om de perfomence van zo'n database te verbeteren.
als je klikt op view kun je het bijbehorende commando krijgen
dan klik op execute t-sql statement task bij de toolbox met de pijltjes kun je aangeven welke tool die eerst moet uitvoeren. als je rechtermuis op de execute tool doet en dan edit kun je een sql commando opgeven.
als je bij de toolbox notify operator task klikt dan zorg je ervoor dat de operator een bericht krijgt als het commando bij execute is uitgevoerd.
Je kan ook nog op het icoontje van de datum klikken en een datum opgeven wanneer die hem moet uitvoeren
Als je een foutmelding krijgt bij het maken van een maintenence plan dan moet je de query select * from sys.databases uitvoeren.
Office Word aantekeningen mergen tabblad mailings: start mail merge step by step mail merge wizard... select document type: labels next: starting document select starting document: use the current document label options -> label vendors op microsoft zetten product number: 30 per page next: select recipients use an existing list: select a different list... new source ODBC the data source (corne in dit geval) select waarvan je een lijst wil zien (bv. customers) - finish next arrange your labels address block (even veranderen van type kan helpen) update all labels next preview your labels (nu moet het ingevuld zijn) next complete the merge
Queries Datum Theorie Getdate() laat huidige datum zien datename(weekday,
)
Praktijk Laat alle orders uit 1996 zien - Select * from Orders - where YEAR(OrderDate)=1996 laat alle orders in Februari zien - select * from Orders - where MONTH(OrderDate)=2 laat alle orders van de 10e zien - select * from Orders - where DAY(OrderDate)=10 laat het aantal dagen zien tussen orderdate en requiredate. Fout - select *, RequiredDate-OrderDate as Verschil from orders oplossing 1 - select *, CAST(RequiredDate-OrderDate as int) as verschil - from orders oplossing 2 - select *, DATEDIFF(day,orderdate,RequiredDate) as verschil - from orders
Gegevens uit Database halen laat alle gegevens zien uit tabel Voorbeeld -
Select * from Voorbeeld
laat alles zien gesorteerd op achternaam -
Select * from Voorbeeld order by ANaam
Laat iedereen zien die ouder is dan 18 Select * from Voorbeeld where Leeftijd > 18 -- >= 18 en ouder
Laat iedereen zien tussen de 16 en 25 -
Select * from voorbeeld > 16 and < 25
laat iedereen zien behalve 18 jaar -
Select * from voorbeeld where not leeftijd = 18
Laat iedereen zien die Geen TNaam heeft -
Select * from Voorbeeld where TNaam IS NULL
laat iedereen zien die Jan heet -
Select * from Voorbeeld where Vnaam ="Jan" or Anaam = "Jan"
Laat de gemiddelde leeftijd zien -
Select AVG(Leeftijd) From voorbeeld
DML commando’s Theorie [] gebruik je bij spaties en commando's als je de primaire sleutek kent gebruik je deze bij verwijderen
1. Is de primaire sleutel een autonummering veld zo ja dan het veld niet vullen 2. Welke velden moet je vullen waar not null staat
Praktijk Laat alles zien uit products -
select * from products
Hoeveel records zitten er in products -
Select count(*) AS [Aantal Records] from products
Laat zien het aantal records in categorie 2 -
select count(*) AS [Aantal Records] from products where categoryid=2
Laat het aantal zien bij prijs meer dan 10 euro -
select count(*) AS [Aantal Records] from products where unitprice>10
Laat het aantal zien bij prijs meer dan 10 euro -
select count(*) AS [Aantal Records] from products where unitprice >=10 and <=20
of gebruik between -
select count(*) AS [Aantal Records] from products where unitprice between 10 and 20
laat alle producten zien met de prijs
-
Select productname, unitprice from products
Laat alle producten zien + 1 euro -
select productname, unitprice, unitprice+1 as verhoging from products
Wat is de voorraadwaarde -
Select productname, unitprice, unitinstock, unitprice*unitsinstock as Voorraadwaarde from products
wat is de totale voorraad waarde -
Select sum(unitprice*unitsinstock) from products
Insert into products (productname, discontinued) -
values ('Rotzooi',0)
check of record aanwezig is -
select * from products where productname='rotzooi'
pas de prijs aan naar 10 euro -
update products set unitprice = 10 where productid = 81
verhoog alle prijzen met 10% -
update products set unitprice=unitprice*1.1
verwijder het product rotzooi -
delete from products where productid=81
Handleiding export SQL In deze handleiding laat ik u kort zien hoe u een SQL tabel kan exporteren in een .xml bestand. Voor deze handleiding gebruik ik de database Northwind en de tabel Employees. Natuurlijk is dit makkelijk te veranderen. Om de beginnen maakt u de volgende query:
-------------------------------------------------------------------------USE Northwind SELECT * FROM Employees FOR XML PATH
Hier mee maakt u een pad aan voor een .xml bestand. In de results staat dit pad. Dit ziet er als volgt uit.
Op de link klikt u. Er verschijnt nu een nieuw scherm.
Hier in kunt u alle gegeven uitlezen mocht u dit willen. Er moet nu nog één ding gebeuren. Er is namelijk nog geen naam voor de export. Doe dit als volgt (ik gebruik TEST als naam).
Zoals u kunt zien staat er nu boven aan dit is om het begin aan te geven. Onderaan staat dit is bedoelt om te sluiten. Vervolgens kopieërt u de hele tekst in SQL in een kladblok bestand. En slaat dit op als een .XML bestand.
Zo, u heeft nu een tabel in een .XML bestand geexporteerd.
Foutmeldingen Hoofdletters Zo zijn er ook foutmeldingen die op kunnen komen. Zoals dat je een hoofdletter bent vergeten zodat hij het XML file niet kan lezen.
Zulk soort dingen zijn makkelijk te verhelpen door er weer een hoofdletter neer te zetten.
Dit zijn alleen wel fouten die vaak voorkomen en niet goed gezien worden. Omdat het hoofdletter gevoelig is.
Slash Ook veel gemaakte fouten zijn dat je net een slash bent vergeten.
Deze fout zie je minder vaak omdat zoiets opvalt.
Zo is dit probleem mooi opgelost. Door alleen maar 1 / neer te zetten.