jezyki zapytan dla relacyjnych baz danych Flashcards

1
Q

Polecenia SQL dotyczą:

A

 tworzenia i usuwania baz danych, tabel, kluczy
 wprowadzania, uaktualniania i usuwania danych
 wyszukiwania danych
 ustawiania praw dostępu do danych
 administracji bazą danych
 zarządzania transakcjami

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Sposób wprowadzania do bazy poleceń SQL:

A

 w programie działającym z linii poleceń
(np. mySQL monitor)
 w programie z graficznym interfejsem użytkownika
(np. mySQL Navigator)
 w skryptach i programach komunikujących się z bazą
danych (np. skrypty PHP)
 pośrednio, przy użyciu graficznego interfejsu
użytkownika (np. Access

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

utworzenie bazy:

A

CREATE DATABASE nazwa;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

przełączenie się do bazy:

A

USE nazwa;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Typy danych mySQL – liczby całkowite:

A

 TINYINT (1 bajt)
 SMALLINT (2 bajty)
 MEDIUMINT (3 bajty)
 INT (4 bajty)
 BIGINT (8 bajtów)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Dodatkowe atrybuty:

A

 UNSIGNED – liczba bez znaku
 ZEROFILL – dopełnienie zerami
 (M) – wyświetlenie M cyfr

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Typy danych mySQL – liczby zmiennoprzecinkowe:

A

 FLOAT (n) – pojedyncza precyzja, n liczb
 DOUBLE (M,D) – podwójna precyzja
 DECIMAL (M,D) – liczba zapisywana jako tekst

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

 Dodatkowe atrybuty:

A

 UNSIGNED – liczba bez znaku
 ZEROFILL – dopełnienie zerami
 (M) – wyświetlenie M cyfr
 (M,D) – wyświetlenie M cyfr, D cyfr po przecinku

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

 Typy danych mySQL – data i czas:

A

 DATETIME – data + czas (2003-10-15 15:00:12)
 DATE – data (2003-10-15)
 TIME – czas (15:00:12)
 YEAR – rok (2003 lub 03)
 TIMESTAMP (n) – znacznik czasu (n – liczba znaków)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Typy danych mySQL – łańcuchy tekstowe:

A

 CHAR (n) – stała długość n (max. 255)
 VARCHAR (n) – zmienna długość, max. n (do 255)
 TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
– dane tekstowe ASCII
 TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
– dane binarne
 ENUM – typ wyliczeniowy
 SET – zbiór wartości

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Utworzenie tabeli wymaga podania nazw pól
(kolumn) oraz ich typów.

A

CREATE TABLE albumy (
id INT NOT NULL,
wykonawca VARCHAR(30),
tytuł VARCHAR(30),
rok YEAR,
liczba-utw SMALLINT,
opis TEXT
);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wstawianie danych z podaniem wszystkich kolumn
tabeli (należy zachować kolejność!)

A

INSERT INTO albumy
VALUES (1, ‘Pink Floyd’, ‘The Division Bell’,
1994, 11, ‘Ostatni studyjny album’);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wyszukiwanie danych w tabeli – instrukcja SELECT

A

SELECT które_kolumny FROM z_której_tabeli
WHERE które_rekordy;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Eliminacja powtórzeń wyników:

A

SELECT DISTINCT wykonawca FROM albumy;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wyszukiwanie rekordów spełniających zadany
warunek
– instrukcja WHERE

A

SELECT tytuł FROM albumy
WHERE wykonawca = ‘Pink Floyd’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Operatory używane w instrukcji SELECT …
WHERE:

A

 porównania: = <> < > <= >= <=>
 logiczne: NOT ! AND && OR || XOR
 IS NULL, IS NOT NULL
 expr BETWEEN min AND max (NOT BETWEEN)
 expr IN (lista) (NOT IN)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Symbole wieloznaczne używane w instrukcji WHERE:

A

 % zastępuje dowolny ciąg znaków
 _ zastępuje jeden znak

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Operator symboli wieloznacznych:

A

LIKE, NOT LIKE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Sortowanie wyników wg zadanej kolumny:

A

 ORDER BY pole – w porządku rosnącym
 ORDER BY pole ASC – jw.
 ORDER BY pole DESC – w porządku malejącym

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Grupowanie wyników

A

 użycie funkcji, np. COUNT, SUM, MAX, MIN, AVG
 nazwanie kolumny z wynikami (opcjonalnie) – AS
 zgrupowanie wyników – GROUP BY

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Ograniczenie rekordów uzyskanych w wyniku
grupowania

A

operator HAVING

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Ograniczenie liczby wyników

A

LIMIT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Uwzględnienie relacji między tabelami:

A

SELECT * FROM albumy, utwory
WHERE albumy.IDA = utwory.IDA;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wstawianie do tabeli danych uzyskanych w wyniku
zapytania:

A

INSERT INTO nowa (autor, dzielo)
SELECT DISTINCT wykonawca, album
FROM albumy;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Wstawianie danych z pliku na komputerze klienta
(pola rozdzielone tabulatorami, rekordy – znakiem
nowej linii)
– komenda mySQL (nie standard):

A

LOAD DATA LOCAL INFILE ‘dane.txt’
INTO nowa_tabela;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Usunięcie rekordów spełniających zadane kryteria

A

– instrukcja DELETE. Warunki takie same jak w SELECT.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Zmiana danych rekordów już istniejących w tabeli

A

UPDATE albumy
SET wykonawca = ‘Pink Floyd’
WHERE wykonawca = ‘Fink Ployd’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Usuwanie całej bazy:

A

DROP DATABASE baza;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Wyświetlenie istniejących baz danych:

A

SHOW DATABASES;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Przełączenie się na inną bazę danych:

A

USE baza;

31
Q

Wyświetlenie struktury tabeli:

A

DESCRIBE tabela;

32
Q

Zmiana nazwy:

A

RENAME TABLE tabela TO nowa_tabela;

33
Q

Zmiana struktury tabeli – ALTER TABLE

A

ALTER TABLE tabela ADD (opis TEXT);
ALTER TABLE tabela DROP opis;

34
Q

Modyfikacja typu kolumny

A

ALTER TABLE tabela MODIFY opis VARCHAR(50);

35
Q

Zmiana nazwy kolumny:

A

ALTER TABLE tabela CHANGE opis info VARCHAR(50);

36
Q

Atrybuty pól tabeli
 Przy tworzeniu lub zmianie tabeli można podać
opcjonalne atrybuty pól (kolumn) tabeli:
 CREATE TABLE (pole typ atrybuty, …);
 Dostępne atrybuty:

A

 NULL – można nie podawać wartości (domyślnie)
 NOT NULL – wartość musi być podana
 DEFAULT wartość – gdy nie podamy wartości
 AUTO_INCREMENT – automatycznie zwiększany licznik
 COMMENT ‘opis’ – komentarz
 PRIMARY KEY, KEY – indeksy główne

37
Q

AUTO_INCREMENT

A

nie wpisujemy danych, baza
wpisuje aktualny stan licznika i zwiększa go o 1.

38
Q

DEFAULT

A

jeżeli nie wprowadzimy danych,
zostanie wpisana wartość domyślna

39
Q

TIMESTAMP

A

 Wartością domyślną dla kolumny o typie
TIMESTAMP
jest aktualny znacznik czasu (data i czas).
 Kolumna tego typu umożliwia zachowanie czasu
wprowadzenia lub ostatniej modyfikacji rekordu.
 Jeżeli zostanie podana wartość – jest ona
wpisywana.
 Jeżeli nie zostanie podana wartość (NULL) –
wpisywany jest znacznik czasu.

40
Q

Sprawdzanie poprawności danych

A

 NOT NULL – w tej kolumnie muszą być wpisane dane
 CHECK (wyrażenie) – dane muszą spełniać podany
warunek

41
Q

Na wybrane kolumny tabeli mogą być nakładane
indeksy (klucze) w celu:

A

 przyspieszenia wyszukiwania
 zdefiniowania relacji pomiędzy tabelami

42
Q

Typy indeksów w MySQL:

A

 KEY, INDEX
 UNIQUE
 PRIMARY KEY
 FULLTEXT

43
Q

UNIQUE

A

żadne dwa rekordy w tabeli nie mogą mieć
jednakowych danych w indeksowanej kolumnie. Jest
to jednocześnie INDEX.

44
Q

Indeks główny – PRIMARY KEY

A

 identyfikuje jednoznacznie każdy rekord w tabeli
 może istnieć tylko jeden w tabeli
 jest typu UNIQUE
 indeksowana kolumna otrzymuje automatycznie
atrybut NOT NULL
 ma nazwę PRIMARY (nie można podać własnej)
 bierze domyślnie udział w relacjach z innymi tabelami

45
Q

Tworzenie indeksu głównego podczas definiowania
tabeli

A

CREATE TABLE dane {
nazwisko VARCHAR(30) NOT NULL,
pesel CHAR(11) PRIMARY KEY,
};

46
Q

MySQL posiada specjalny typ klucza FULLTEXT,
umożliwiający wyszukiwanie informacji w polach
tekstowych. Indeks ten nie wchodzi w skład
standardu SQL.

A

CREATE TABLE albumy {
tytul VARCHAR(30) PRIMARY KEY,
wykonawca VARCHAR(30),
recenzja TEXT,
FULLTEXT indeks (tytul, recenzja)
};

47
Q

Wyszukiwanie dosłowne:

A

MATCH (kolumny) AGAINST (napis)

48
Q

Wyszukiwanie w trybie logicznym

A

– operator IN BOOLEAN MODE

49
Q

 Operatory wyszukiwania:

A

 +słowo – słowo musi wystąpić
 –słowo – słowo nie może wystąpić
 “całe zdanie” – musi wystąpić podana fraza
 słow* – słowo zaczynające się od podanych liter
 () – grupowanie operatorów
 ~ – zaprzeczenie

50
Q

Przykład wyszukiwania w trybie logicznym:

A

SELECT * FROM albumy
WHERE MATCH (tytul, recenzja)
AGAINST (‘+rock +”debut album” -awful’
IN BOOLEAN MODE);

51
Q

 Język SQL udostępnia szereg funkcji umożliwiających
wykonywanie operacji na danych w zapytaniach.
 Funkcje:

A

 matematyczne
 tekstowe
 daty i czasu

52
Q

Użycie w warunku wyboru kolumn – zamienia
litery na wielkie w zwracanych danych:

A

SELECT UPPER(wykonawca) FROM albumy;

53
Q

Tryb transakcji –

A

wprowadzane operacje zostaną
wykonane dopiero po podaniu odpowiedniej komendy.

54
Q

 START TRANSACTION

A

rozpoczęcie transakcji
 Kolejne operacje są zapamiętywane, ale nie są
wykonywane.

55
Q

COMMIT

A

wykonanie operacji z całej transakcji

56
Q

ROLLBACK

A

cofnięcie do początku transakcji

57
Q

Możliwe jest ustawienie w trakcie transakcji punktów
zapisu za pomocą komendy

A

SAVEPOINT nazwa
ROLLBACK TO SAVEPOINT nazwa

58
Q

Blokowanie:

A

LOCK TABLES tabela1 typ, tabela2 typ, … ;
Typ blokady:
 READ – blokada do odczytu
 WRITE – blokada do zapisu
Odblokowanie tabel:
 UNLOCK TABLES;

59
Q

 MySQL obsługuje różne standardy zapisywania tabel.
 Typy nie udostępniające mechanizmu transakcji:

A

 MyISAM (domyślny), ISAM (stary), HEAP, MERGE

60
Q

 Typy udostępniające mechanizm transakcji i blokowania:

A

 InnoDB, BDB

61
Q

Aby utworzyć tabelę innego typu, należy podać
żądany typ na końcu instrukcji:

A

CREATE TABLE nazwa (definicja) TYPE=InnoDB;

62
Q

Zmiana typu tabeli (w praktyce utworzenie nowej
tabeli, przepisanie danych i usunięcie starej
tabeli):

A

ALTER TABLE nazwa TYPE=InnoDB;

63
Q

System zarządzania bazą danych obsługuje tzw.
system przywilejów (privilege system):

A

 autoryzacja użytkownika łączącego się z bazą z określonego
komputera (login, hasło),
 określenie praw do wykonywania poszczególnych operacji na
bazie danych (przywileje)

64
Q

Przywileje są ustalane na podstawie:

A

 nazwy użytkownika
 nazwy sieciowej komputera klienta
 operacji, którą chce wykonać użytkownik

65
Q

Sprawdzanie przywilejów odbywa się na dwóch
poziomach

A

Poziom 1 – połączenie z bazą
Poziom 2 – wykonanie operacji

66
Q

Nadanie praw wykonywania określonych operacji na
danych w bazie:

A

 GRANT przywilej (kolumny_tabeli)
 ON baza_danych.tabela
 TO użytkownik@host IDENTIFIED BY ‘hasło’;

67
Q

 Odbieranie praw dostępu:

A

 REVOKE przywilej (kolumny_tabeli)
 ON baza_danych.tabela
 FROM użytkownik@host;

68
Q

 Przywileje dostępu do danych (ON) mogą
dotyczyć:

A

 wszystkich baz danych na serwerze (poziom globalny):
GRANT … ON .
 wszystkich tabel w określonej bazie:
GRANT … ON baza_danych.*
 określonej tabeli:
GRANT … ON baza_danych.tabela
 pojedynczych kolumn w określonej tabeli

69
Q

Przywileje dla użytkowników

A

użytkownik user z dowolnego komputera:
user@’%’
 użytkownik user z komputera w domenie:
user@’%.eti.pg.gda.pl’
 użytkownik z określonego komputera:
user@sound.eti.pg.gda.pl
user@localhost
user@153.19.49.25

70
Q

Ustalenie hasła przy nadawaniu praw:

A

GRANT ALL ON . TO user IDENTIFIED BY ‘hasło’;

71
Q

Nadanie wybranych praw do tabeli dane użytkownikowi
joe łączącemu się z podanej domeny

A

GRANT SELECT,INSERT,UPDATE ON forum.dane
TO joe@’%.eti.pg.gda.pl’
IDENTIFIED BY ‘alamakota’;

72
Q

Po połączeniu się z bazą systemową należy ustawić hasło:

A

mysql -u root mysql;
SET PASSWORD FOR root = PASSWORD(‘tajnehaslo’);

73
Q

Dodanie użytkownika z jednoczesnym nadaniem
praw dostępu do danych:

A

GRANT ALL ON baza.* TO user IDENTIFIED BY ‘haslo1’;