Inspiracja , wiedza , realizacja
Jsystems

W przebudowie

Login



Java

Oracle

Linux

Android

PostgreSQL

Microsoft SQL Server

Wprowadzenie do języka SQL

Rafał Czarkowski
Data dodania: Jun 21, 2016
Data aktualizacji: Jun 21, 2016

SQL (ang. Structured Query Language) – strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych. Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi zarządzania bazą danych (DBMS).

Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy danych.


Zapytania można zaliczyć do jednego z trzech głównych podzbiorów:

• SQL DML (ang. Data Manipulation Language – „język manipulacji danymi”),

• SQL DDL (ang. Data Definition Language – „język definicji danych”),

• SQL DCL (ang. Data Control Language – „język kontroli nad danymi”).


DML

DML (Data Manipulation Language) służy do wykonywania operacji na danych – do ich

umieszczania w bazie, kasowania, przeglądania, zmiany.


Najważniejsze polecenia z tego

zbioru to:

• SELECT – pobranie danych z bazy,

• INSERT – umieszczenie danych w bazie,

• UPDATE – zmiana danych,

• DELETE – usunięcie danych z bazy.


DDL

Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane – czyli np. dodawać, zmieniać i kasować tabele lub bazy.


Najważniejsze polecenia tej grupy to:

• CREATE (np. CREATE TABLE, CREATE DATABASE, …) – utworzenie struktury (bazy, tabeli, indeksu itp.),

• DROP (np. DROP TABLE, DROP DATABASE, …) – usunięcie struktury,

• ALTER (np. ALTER TABLE ADD, …) – zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli).


DCL

DCL (Data Control Language) ma zastosowanie do nadawania uprawnień do obiektów bazodanowych.


Najważniejsze polecenia w tej grupie to:

• GRANT (np. GRANT SELECT, INSERT, UPDATE ON SALESLT.PRODUCT TO RAFAŁ) – przyznanie praw do MODYFIKACJI, WSTAWIANIA NOWYCH WIERSZY I USUWANIA do tabeli SALESLT.PRODUCT użytkownikowi RAFAŁ.

• REVOKE – odebranie użytkownikowi wszystkich praw do tabeli, które zostały przyznane poleceniem GRANT.


Typy danych


W każdej kolumnie w tabeli, jak i zmiennej i parametrowi musi zostać przypisany okreslony typ danych. To właśnie on decyduduje jakie dane możemy umieścić w danym obiekcie, także wybór ten nie może być przypadkowy.


Typy danych


W SQL Server występuje wiele typów danych, które możemy podzielić na cztery główne kategorie:

- liczbowe

- znakowe / ciągowe (łańcuchy tekstowe)

- daty i godziny

- inne


Liczbowe

Typ

Opis

bigint

8-bajtowy typ numeryczny z zakresem: -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807).

numeric

Wielkość typu zależy od precyzji. 1-9 – 5 bajtów, 10-19 – 9 bajtów, 20-28 – 13 bajtów, 29-38 – 17 bajtów.

bit

Wartości: 0, 1 lub NULL.

smallint

2-bajtowy typ numeryczny z zakresem: -2^15 (-32,768) do 2^15-1 (32,767).

decimal

Wielkość typu zależy od precyzji. 1-9 – 5 bajtów, 10-19 – 9 bajtów, 20-28 – 13 bajtów, 29-38 – 17 bajtów.

smallmoney

4-bajtowy typ do zapisu walut z zakresem: - 214,748.3648 do 214,748.3647.

int

4-bajtowy typ numeryczny z zakresem: -2^31 (-2,147,483,648) do 2^31-1 (2,147,483,647).

tinyint

1-bajtowy typ numeryczny z zakresem: 0 – 255.

money

8-bajtowy typ do zapisu walut z zakresem: -922,337,203,685,477.5808 do 922,337,203,685,477.5807.

float

Typ zmiennoprzecinkowy z zakresem: - 1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308. Ilość bajtów zależy od precyzji. 1-24 – 4 bajty (7 cyfr), 25-53 – 8 bajtów (15 cyfr).

real

4-bajtowy typ zmiennoprzecinkowy z zakresem: - 3.40E + 38 to -1.18E - 38, 0 and 1.18E - 38 to 3.40E + 38. Typ real jest 24-cyfrowym typem float.



Znakowe

Typ

Opis

char

Stało-znakowy typ o wielkości 1 – 8000 bajtów.

text

Zmienno-znakowy typ o długości max. 2^30 – 1 bajtów.

varchar

Zmienno-znakowy typ o długości 1 – 8000 bajtów.

nchar

Stało-znakowy typ Unicode o wielkości 1 – 4000 bajtów.

nvarchar

Zmienno-znakowy typ Unicode o wielkości 1 – 4000 bajtów.

ntext

Zmienno-znakowy typ Unicode o wielkości max. 2^30 – 1 bajtów.




Data i czas

Typ

Opis

date

10-znakowy typ zapisu daty z precyzją: 10.0. Domyślnym formatem jest: YYYY-MM-DD, natomiast domyślna wartość to 1900-01-01 (używana jako niejawna konwersja time do typu datetime2 albo datetimeoffset).

datetimeoffset

8-bajtowy typ do zapisu daty z zakresu: 1 stycznia 1 roku n.e. do 31 grudnia roku 9999, liczone wg kalendarza gregoriańskiego oraz czas 24-godzinny z dokładnością do 100 ns. Uwzględnia przesunięcie strefy czasowej.

datetime2

8-bajtowy typ do zapisu daty z zakresu: 1 stycznia 1 roku n.e. do 31 grudnia 9999 oraz czas 24-godzinny z dokładnością do 100 ns.

smalldatetime

4-bajtowy typ do zapisu daty z zakresu 1900-01-01 do 2076-06-06 z dokładnością do 1 minuty.

datetime

8-bajtowy typ do zapisu daty z zakresu 1 stycznia 1753 do 31 grudnia 9999 z dokładnością do 0.00333 sekund.

time

3 – 5-bajtowy typ do zapisu czasu z dokładnością do 100 ns. Ilość bajtów zależy od skali precyzji.



Inne

Typ

Opis

binary

Przechowywany najczęściej jako stały strumień bajtów typ o wielkości 1 – 8000 bajtów.

varbinary

Przechowywany najczęściej jako zmienny strumień bajtów typ o wielkości 1 – 8000 bajtów.

image

Zmienno-bajtowy typ o długości 0 – 2^31 – 1, przeznaczony do składowania obrazów w bazie danych.

cursor

Typ danych dla zmiennych parametrów wyjściowych procedury, które zawierają doniesienie do kursora.

hierarchyid

Typ o zmiennej długości danych, służący do reprezentowania pozycji danej informacji w hierarchii.

sql_variant

Typ danych, przechowujący różne wartości typów obsługiwanych przez SQL Server. Jest odpowiednikiem typu var w języku C#.

table

Typ tabelaryczny

uniqueidentifier

Typ umożliwiający automatyczne generowanie unikalnych liczb binarnych w bazie danych

xml

Typ XML-owy.

geography

Typ do przechowywania danych geograficznych, zaimplementowany w .NET CLR. Wykorzystywany jest głównie do zapisu pozycji GPS. Uwzględnia krzywiznę Ziemi.

geometry

Typ do przechowywania typów geometrycznych (w szczególności figur), zaimplementowany w .NET CLR.