Podstawy języka SQL

Transkrypt

Podstawy języka SQL
opracował: Jacek Izdebski
http://ektanet.pl
Podstawy języka SQL
SQL (ang. Structured Query Language) to strukturalny język (informatyka)
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.
Jest to język zapytań opracowany w latach siedemdziesiątych w firmie
IBM. Stał się on standardem w komunikacji z serwerami relacyjnych baz
danych. Wiele współczesnych systemów relacyjnych baz danych używa do
komunikacji z użytkownikiem SQL, dlatego mówi się, że korzystanie z relacyjnych baz danych, to korzystanie z SQL-a. Pierwszą firmą, która włączyła
SQL do swojego produktu komercyjnego, był Oracle. Dalsze wprowadzanie
SQL-a, w produktach innych firm, wiązało się nierozłącznie z wprowadzaniem
modyfikacji pierwotnego języka. Wkrótce utrzymanie dalszej jednolitości języka wymagało wprowadzenia standardu.
Składnia
Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy
danych. Zapytania można zaliczyć do jednego z dwóch głównych podzbiorów:
• SQL DML (ang. Data Manipulation Language, czyli Język Manipulacji
Danymi),
• SQL DDL (ang. Data Definition Language, czyli Język Definicji Danych).
Instrukcje SQL w obrębie zapytań tradycyjnie zapisywane są wielkimi literami, jednak nie jest to wymóg. Każde zapytanie w SQL-u musi kończyć się
znakiem ”;” (średnik).
Dodatkowo, niektóre interpretery SQL (np. psql w przypadku PostgreSQL), używają swoich własnych instrukcji, spoza standardu SQL, które służą
np. do połączenia się z bazą, wyświetlenia dokumentacji, itp.
DML
DML służy do operacji na danych - do ich umieszczania w bazie, kasowania,
przeglądania, zmiany. Najważniejsze polecenia z tego zbioru to:
• SELECT - pobranie z bazy danych,
1
opracował: Jacek Izdebski
http://ektanet.pl
• INSERT - umieszczenie danych w bazie,
• UPDATE - zmiana danych,
• DELETE - usunięcie danych z bazy.
Dane tekstowe podawane muszą być zawsze w formie ograniczonej znakami
pojedynczego cudzysłowu (’).
DDL
Dzięki DDL natomiast, można operować na strukturach, w których te dane
są przechowywane - czyli np. dodawać, zmieniać i kasować tabele lub bazy.
Najważeniejsze polecenia tej grupy to:
• CREATE (np. CREATE TABLE, CREATE DATABASE, ...) - utworzenie struktury (bazy, tabeli, indeksu, itp.),
• DROP (np. DROP TABLE, DROP DATABASE, ...) - całkowite usunięcie struktury,
• ALTER (np. ALTER TABLE ADD COLUMN ...) - zmiana struktury
(dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli).
Przykładowe zapytania
Przykładowe użycie wyżej wymienionych rodzajów zapytań.
SELECT * FROM pracownicy WHERE pensja > 2000 ORDER BY staz DESC;
Wyświetla z tabeli pracownicy (FROM pracownicy) wszystkie kolumny (*)
dotyczące tych pracowników, których pensja jest większa niż 2000 (WHERE
pensja > 2000) i sortuje wynik malejąco według stażu pracy (ORDER BY
staz DESC).
INSERT INTO pracownicy (imie, nazwisko, pensja, staz)
VALUES (’Jan’, ’Kowalski’, 5500, 1);
Dodaje do tabeli pracownicy (INTO pracownicy) wiersz (rekord) zawierający
dane pojedynczego pracownika.
UPDATE pracownicy SET pensja=pensja * 1.1 WHERE staz > 2;
Podnosi o 10% (SET pensja = pensja * 1.1) pensję pracownikom, których
staż jest większy niż 2 (np. lata).
2
opracował: Jacek Izdebski
http://ektanet.pl
DELETE FROM pracownicy WHERE imie=’Jan’ AND nazwisko=’Kowalski’;
Usuwa z tabeli ”pracownicy” wiersz (rekord) dotyczący pracownika o imieniu
”Jan” i nazwisku ”Kowalski”.
CREATE TABLE pracownicy (imie varchar(255),
nazwisko varchar(255), pensja float, staz int);
Tworzy tabelę ”pracownicy” zawierającą tekstowe (varchar - zmiennej długości pole tekstowe) pola ”imię” i ”nazwisko”, o maksymalnej długości 255
znaków, zapisaną za pomocą liczby rzeczywistej (float od ang. floating point)
pensję oraz zapisany za pomocą liczby całkowitej (int od ang. integer) staż.
DROP TABLE pracownicy;
Usuwa z bazy całkowicie tabelę ”pracownicy”.
ALTER TABLE pracownicy ADD COLUMN dzial varchar(255);
Dodaje do struktury tabeli ”pracownicy” kolumnę ”dzial” (dział), jako pole
tekstowe o długości max. 255 znaków.
1
Połączenie z bazą MySQL
Do połączenia z bazą użyjemy klienta mysql wywołanie z linii poleceń jest
następujące:
mysql -u root
aby zakończyć połączenie należy wpisać polecenie exit.
1.1
Ćwiczenie 1
Połącz się z bazą danych i utwórz bazę danych o nazwie takiej jak Twoje
nazwisko np.:
create database izdebski;
przejdź do utworzonej przez siebie bazy przy pomocy polecenia use np.:
use izdebski;
utwórz tabelę o nazwie moja klasa zawierającą pola id, imie, nazwisko. Pole
id ma być kluczem głównym i zawierać wartość liczbową z ustawioną autonumeracją.
create table moja_klasa (id int not null auto_increment,
imie varchar(30), nazwisko varchar(50), primary key (id));
3
opracował: Jacek Izdebski
http://ektanet.pl
1.2
Ćwiczenie 2
Wyświetl i obejrzyj strukturę utworzonej tabeli poleceniem:
describe moja_klasa;
1.3
Ćwiczenie 3
Wpisz do bazy imiona i nazwiska wszystkich uczniów z Twojej klasy.
insert into moja_klasa values (’’,’Jacek’,’Izdebski’);
1.4
Ćwiczenie 4
Wyświetl zawartość tabeli moja klasa. Potrzebne informacje na temat składni
poleceń SQL możesz przeczytać w internecie (np.: http://home.pl/pomoc/
kursy/sql).
4