SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Podobne dokumenty
Wykład 5. SQL praca z tabelami 2

Relacyjne bazy danych. Podstawy SQL

Wykład 8. SQL praca z tabelami 5

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Bazy danych SQL Server 2005

Relacyjne bazy danych. Podstawy SQL

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Paweł Rajba

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Język SQL, zajęcia nr 2

Język SQL, zajęcia nr 1

Systemy GIS Tworzenie zapytań w bazach danych

Autor: Joanna Karwowska

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Ćwiczenie zapytań języka bazy danych PostgreSQL

Przestrzenne bazy danych Podstawy języka SQL

Wykład 05 Bazy danych

SIECI KOMPUTEROWE I BAZY DANYCH

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Bazy danych. Polecenia SQL

Widok Connections po utworzeniu połączenia. Obszar roboczy

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Wykład 6. SQL praca z tabelami 3

LAB 3 (część 1 Projektu)

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Bazy danych Ćwiczenia projektowe

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

SQL (ang. Structured Query Language)

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

Współczesne systemy baz danych

Zarzadzanie transakcjami. Transakcje

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

ACESS- zadania z wykorzystaniem poleceń SQL

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Bazy danych 9. SQL Klucze obce Transakcje

Współczesne systemy baz danych

LAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL,

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

SQL w praktyce. Miłej i owocnej nauki!!!

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Autor: Joanna Karwowska

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Grupowanie i funkcje agregujące

Kurs. Podstawy MySQL

Autor: Joanna Karwowska

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych 9. Klucze obce Transakcje

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Bazy danych 7. SQL podstawy

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

SQL - Structured Query Language. strukturalny język zapytań

Ref. 7 - Język SQL - polecenia DDL i DML

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

10. Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę.tokyo Traders.

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Aspekty aktywne baz danych

Bazy danych - Materiały do laboratoriów VIII

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Bazy danych 6. Klucze obce. P. F. Góra

Transakcje inf. podstawowe

Microsoft SQL Server Podstawy T-SQL

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

BAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Wykład 4. SQL praca z tabelami 1

Zadania z SQLa (MS SQL Server)

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS.

Bazy danych 10. SQL Widoki

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

SIECI KOMPUTEROWE I BAZY DANYCH

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

P o d s t a w y j ę z y k a S Q L

Podyplomowe Studia Systemy informatyczne w logistyce

Bazy danych. Dr inż. Paweł Kasprowski

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

BAZY DANYCH Cz III. Transakcje, Triggery

Transkrypt:

SELECT SELECT kolumna1, kolumna2,, kolumnan FROM tabela wybrane kolumny SELECT * FROM tabela wszystkie kolumny select * from Orders select CustomerID, CompanyName, Country from Customers WHERE SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek select * from Orders where ShipCountry='Mexico' AS (aliasy) Alias to tymczasowa nazwa zastępcza, którą możemy definiować dla tabel oraz dla kolumn. Działa także z pominięciem słowa kluczowego AS. Należy używać przy łączeniu tabel (JOIN). SELECT * FROM tabela [AS] tab SELECT kolumna [AS] kol FROM tabela select o.* from Orders as o join Customers as c on o.customerid=c.customerid where c.country='france' OR/AND SELECT * FROM tabela WHERE warunek1 OR/AND warunek2 select * from Orders where ShipCountry='Mexico' or ShipCountry='Germany' select * from Employees where Country='USA' and YEAR(BirthDate)>1955 SQL Basics Anna Zawadzka 1

DISTINCT Pozwala otrzymać unikalne wyniki. SELECT DISTINCT kolumna1 FROM tabela select distinct ShipCity from Orders LIKE Służy do porównywania łańcuchów znakowych ze wskazanym wzorcem. Znaki specjalne: % - dowolny ciąg znaków (w tym pusty), _ - dowolny pojedynczy znak. SELECT * FROM tabela WHERE kolumna [NOT] LIKE wzorzec select * from Orders where ShipCountry like 'P%' IN Sprawdzenie, czy wartości wybranej kolumny zawierają się w podanym zbiorze. SELECT * FROM tabela WHERE kolumna IN (wartość1, wartość2,, wartośćn) Powyższe zapytanie jest równoważne do następującego: SELECT * FROM tabela WHERE kolumna=wartość1 OR kolumna=wartość2 OR OR kolumna=wartośćn select * from Orders where ShipCountry in ('Mexico','Germany','Brazil') BETWEEN Sprawdzenie, czy wartości wybranej kolumny zawierają się w podanym zakresie. SELECT * FROM tabela WHERE kolumna BETWEEN wartość1 AND wartość2 select * from Orders where OrderDate between '1996-07-01' and '1996-07-31' SQL Basics Anna Zawadzka 2

YEAR, MONTH, DAY, GETDATE Funkcje YEAR(data), MONTH(data), DAY(data) zwracają odpowiednio rok, miesiąc i dzień daty podanej jako argument. Funkcja GETDATE() zwraca aktualną datę i godzinę. select GETDATE() as today, DAY(GETDATE()) as day, MONTH(GETDATE()) as month, YEAR(GETDATE()) as year DATEPART Pozwala wydobyć wybraną część z wartości typu DATETIME (SMALLDATETIME). SELECT DATEPART(część, data) Część: yy/yyyy (rok), m/mm (miesiąc), d/dd (dzień), wk/ww (tydzień), hh (godzina), n/mi (minuta), s/ss (sekunda). select GETDATE() today, DATEPART(YYYY,GETDATE()) as day, DATEPART(MM,GETDATE()) as month, DATEPART(DD,GETDATE()) as year, DATEPART(HH,GETDATE()) as hour, DATEPART(MI,GETDATE()) as minute UPPER, LOWER, SUBSTRING Fukcje UPPER(kolumna) i LOWER(kolumna) zamienia łańcuchy znakowe znajdujące się w wybranej kolumnie odpowiednio na wielkie i małe litery. SUBSTRING z wybranego napisu pobiera jego podciąg identyfikowany przez pozycję początkową oraz jego długość. SELECT SUBSTRING(kolumna, start, długość) FROM tabela select LOWER(CompanyName) as low, UPPER(CompanyName) as upp from Customers select SUBSTRING(CompanyName,1,10) from Customers SQL Basics Anna Zawadzka 3

JOIN (INNER JOIN) Pozwala na pobieranie danych z dwóch lub więcej tabel poprzez ich połączenie. SELECT * FROM tabela1 as t1 JOIN tabela2 as t2 ON warunek Jak działa JOIN? Tworzony jest iloczyn kartezjański dwóch tabel (każdy rekord z tabeli1 łączymy z każdym rekordem z tabeli2). Następnie dla każdego wiersza sprawdzane jest spełnienie warunku określonego w ON (na przykład t1.id=t2.id). Rekordy, które nie spełniają warunku zostają odrzucone. select o.* from Orders as o join Customers as c on o.customerid=c.customerid where c.country='france' EXISTS/NOT EXISTS Używa się do sprawdzenia, czy podzapytanie zwraca jakiekolwiek wyniki. SELECT * FROM tabela WHERE [NOT] EXISTS (podzapytanie) select * from customers c where not exists (select * from orders o where o.customerid=c.customerid) ORDER BY Pozwala na sortowanie wyników zapytania. SELECT * FROM tabela WHERE warunek ORDER BY kolumna1 [ASC/DESC],, kolumnan [ASC/DESC] Dla każdej kolumny możemy zdefiniować, czy ma ona być posortowana rosnąco (ASC) lub malejąco (DESC). Domyślnie rekordy sortowane są rosnąco. Gdy podajemy kilka kolumn, najpierw dane sortowane są według pierwszej podanej kolumny, następnie w ramach poszczególnych wartości pierwszej podanej kolumny dane są sortowane według kolejnej kolumny i tak dalej. Innymi słowy najpierw wszystkie dane są sortowane według kolumny N, następnie według N-1, a na koniec wszystkie dane sortowane są według pierwszej podanej kolumny. select * from Employees order by LastName SQL Basics Anna Zawadzka 4

TOP N Pozwala ograniczyć liczbę wybieranych rekordów do podanej wartości. Można określić konkretną liczbę rekordów lub wartość procentową. SELECT TOP N [PERCENT] * FROM tabela select top 30 * from Customers select top 50 percent * from Customers GROUP BY Klauzula, która umożliwia tworzenie grup rekordów. Używana w parze z funkcjami agregującymi: COUNT, SUM, MAX, MIN, AVG. Kolejność podawania kolumn przy GROUP BY nie ma znaczenia. SELECT kolumna1,, kolumnan FROM tabela WHERE warunek GROUP BY kolumna1,, kolumnam select ProductID, max(quantity) as maxquantity from [Order Details] group by ProductID select EmployeeID, count(*) NoOfOrders from Orders group by EmployeeID HAVING Pozwala na wybór grup rekordów spełniających warunek logiczny, przy czym może być skonstruowany jedynie z funkcji agregujących i/lub wyrażeń grupujących. SELECT kolumna1,, kolumnan FROM tabela WHERE warunek GROUP BY kolumna1,, kolumnam HAVING warunek select CustomerID from Orders group by CustomerID having count(*)>=20 SQL Basics Anna Zawadzka 5

INSERT Służy do dodawania nowych rekordów do tabeli. Możemy wskazać, które kolumny uzupełniamy podanymi wartościami: INSERT INTO tabela (kolumna1,, kolumnam) VALUES (wartość1,, wartośćm) Możliwe jest także użycie instrukcji bez specyfikacji kolumn, wtedy jednak należy zadbać, aby dane były zgodne ze strukturą tabeli (liczba podanych wartości, ich kolejność oraz typ danych): INSERT INTO tabela VALUES (wartość1,, wartośćm) Źródłem nowych danych może być również wynik zapytania: INSERT INTO tabela SELECT kolumna1,, kolumnam FROM innatabela insert into Categories (CategoryName, Description) values ('KategoriaX','Opis kategorii X'), ('KategoriaY','Opis kategorii Y') insert into Categories values ('KategoriaZ','Opis kategorii Z', null) SELECT INTO Instrukcja tworzy nową tabelę i wypełnia ją wynikami instrukcji SELECT. Działa podobnie do INSERT INTO SELECT, z tym, że tabela, którą chcemy uzupełnić danymi jeszcze nie istnieje. Instrukcja kopiuje strukturę tabeli i dane, natomiast nie kopiuje kluczy głównych i obcych. SELECT kolumna1,, kolumnam INTO nowatabela FROM tabela WHERE warunek Jeśli chcemy jedynie skopiować strukturę tabeli bez wypełniania danymi, ustawiamy warunek, który będzie zawsze fałszywy: SELECT kolumna1,, kolumnam INTO nowatabela FROM tabela WHERE 0=1 select CategoryID, CategoryName, Description into CategoriesNew from Categories select * into CategoriesNew from Categories where 0=1 SQL Basics Anna Zawadzka 6

UPDATE Służy do modyfikacji istniejących rekordów. UPDATE tabela SET kolumna1=wartość1 [kolumna2=wartość2, ] WHERE warunek update Orders set EmployeeID=4 where EmployeeID=1 DELETE Usuwa wybrane rekordy. DELETE FROM tabela WHERE warunek delete from Customers where CustomerID not in (select o.customerid from Orders o) SQL Basics Anna Zawadzka 7

CREATE TABLE Tworzy nową tabelę. CREATE TABLE nazwatabeli ( nazwakolumny1 typ [NOT NULL], nazwakolumny2 typ [NOT NULL], [CONSTRAINT PK_nazwaKluczaGłównego PRIMARY KEY (kolumna1 [, kolumna2, ]),] [CONSTRAINT FK_nazwaKluczaObcego FOREIGN KEY (kolumna1 [, kolumna2, ]) REFERENCES innatabela (kolumna1 [, kolumna2, ])] ) Jeśli chcemy, aby wartości danej kolumny były wstawiane i inkrementowane automatycznie przy operacji INSERT (na przykład wartości ID), po informacji o typie danych należy umieścić klauzulę IDENTITY(X,Y), gdzie X jest wartością, od której zaczyna się numeracja, a Y informuje o jaką wartość ma być powiększony kolejny numer. create table Employees ( EmployeeID int identity(1,1) not null, FirstName nvarchar(10) not null, LastName nvarchar(30) not null, BirthDate datetime, Phone nvarchar(9), BossID int constraint PK_Employees primary key (EmployeeID), constraint FK_Employees_Employees foreign key (BossID) references Employees(EmployeeID) ) DROP TABLE Usuwa istniejącą tabelę. DROP TABLE nazwatabeli drop table Employees SQL Basics Anna Zawadzka 8

ALTER TABLE Pozwala na modyfikacje istniejącej tabeli: dodanie kolumny, dodanie klucza głównego i obcego, zmianę typu danych kolumny oraz usunięcie kolumny. ALTER TABLE tabela ADD nazwakolumny typdanych ALTER TABLE tabela ADD CONSTRAINT PK_nazwaKluczaGłównego PRIMARY KEY (kolumna1 [, kolumna2, ]) ALTER TABLE tabela ADD CONSTRAINT FK_nazwaKluczaObcego FOREIGN KEY (kolumna1 [, kolumna2, ]) REFERENCES innatabela (kolumna1 [, kolumna2, ]) ALTER TABLE tabela ALTER COLUMN nazwakolumny nowytypdanych ALTER TABLE tabela DROP COLUMN nazwakolumny alter table Orders add IsCancelled bit alter table ArchivedOrderDetails add constraint PK_ArchivedOrderDetails primary key(orderid, ProductID) alter table Customers alter column CompanyName nvarchar(100) TRANSAKCJE Ich istotą jest integrowanie kilku operacji w jedną niepodzielną całość. Poziomy izolacji transakcji: - READ UNCOMMITED - READ COMMITTED (default) - REPEATABLE READ - SNAPSHOT - SERIALIZABLE [SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED READ COMMITTED REPEATABLE READ SNAPSHOT SERIALIZABLE } BEGIN TRANSACTION COMMIT ROLLBACK SQL Basics Anna Zawadzka 9

PRZYDATNE STRONY: http://www.w3schools.com/sql/ https://msdn.microsoft.com/pl-pl/library/encyklopedia-sql--typy-danych-t-sql.aspx http://www.sqlpedia.pl/laczenie-tabel-sql/ http://www.sqlpedia.pl/group-by-grupowanie-danych/ https://msdn.microsoft.com/pl-pl/library/encyklopedia-sql--klucze-glowne--primary-key-iidentity.aspx SQL Basics Anna Zawadzka 10