Tworzenie bazy danych – mySQL

84
1 Tworzenie bazy danych – mySQL Sposób utworzenia bazy danych w mySQL: – uruchomienie programu: mysql – utworzenie bazy: CREATE DATABASE nazwa; – przełączenie się do bazy: USE nazwa; – teraz można utworzyć tabele – utworzenie tabeli wymaga podania nazw pól (kolumn) oraz ich typów.

description

Tworzenie bazy danych – mySQL. Sposób utworzenia bazy danych w mySQL: uruchomienie programu: mysql utworzenie bazy: CREATE DATABASE nazwa ; przełączenie się do bazy: USE nazwa ; teraz można utworzyć tabele – utworzenie tabeli wymaga podania nazw pól (kolumn) oraz ich typów. - PowerPoint PPT Presentation

Transcript of Tworzenie bazy danych – mySQL

Page 1: Tworzenie bazy danych – mySQL

1

Tworzenie bazy danych – mySQL• Sposób utworzenia bazy danych w mySQL:

– uruchomienie programu: mysql

– utworzenie bazy:CREATE DATABASE nazwa;

– przełączenie się do bazy:USE nazwa;

– teraz można utworzyć tabele – utworzenie tabeli wymaga podania nazw pól (kolumn) oraz ich typów.

Page 2: Tworzenie bazy danych – mySQL

2

Operacje na bazach danych

• Tworzenie bazy danych:

• Usuwanie całej bazy:

• Wyświetlenie istniejących baz danych:

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

• CREATE DATABASE baza;

• DROP DATABASE baza;

• SHOW DATABASES;

• USE baza;

Page 3: Tworzenie bazy danych – mySQL

3

Tworzenie bazy danych – mySQL

• CREATE DATABASE SQL_w_3_tygodnie;

• Use SQL_w_3_tygodnie;

• DROP DATABASE ............;

Page 4: Tworzenie bazy danych – mySQL

4

Typy danych• Typy danych mySQL – liczby całkowite:

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

• Dodatkowe atrybuty:– UNSIGNED – liczba bez znaku– ZEROFILL – dopełnienie zerami– (M) – wyświetlenie M cyfr

Page 5: Tworzenie bazy danych – mySQL

5

Typy danych• Typy danych mySQL – liczby

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

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

Page 6: Tworzenie bazy danych – mySQL

6

Typy danych

• Typy danych mySQL – data i czas:– 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)

Page 7: Tworzenie bazy danych – mySQL

7

SQL – liczby i napisy

• Łańcuchy znaków: 'napis' lub "napis"

• użycie backslasha (\): 'napis \'03'

• Liczby całkowite: 1221 0 -32

• Liczby zmiennoprzecinkowe: 294.42 -32032.6809e+10

• Liczby szesnastkowe: x'4D7953514C' 0x5061756c

• Wartość pusta: NULL

Page 8: Tworzenie bazy danych – mySQL

8

Operacje na tabelach• Tworzenie tabeli (przykład):

• Usuwanie tabeli:

• Wyświetlenie istniejących baz danych:

• Wyświetlenie struktury tabeli:

• CREATE TABLE tabela (id INT, nazwa VARCHAR(30));

• DROP TABLE tabela;

• SHOW TABLES;

• DESCRIBE tabela;

Page 9: Tworzenie bazy danych – mySQL

9

Tworzenie tabeli MySQL

CREATE TABLE czeki (

nr_czeku INT AUTO_INCREMENT,

odbiorca VARCHAR(30),

kwota float,

uwagi char(30),

PRIMARY KEY (nr_czeku));

Usuń tabele ?

Page 10: Tworzenie bazy danych – mySQL

10

Operacje na tabelach• Zmiana nazwy:

• Zmiana struktury tabeli – ALTER TABLE

• Dodanie kolumny:

• Usuwanie kolumny:

• RENAME TABLE tabela TO nowa_tabela;

• ALTER TABLE tabela ADD (opis TEXT);

• ALTER TABLE tabela DROP opis;

Page 11: Tworzenie bazy danych – mySQL

11

Operacje na tabelach

• Modyfikacja typu kolumny (ograniczenia typu!):

• Zmiana nazwy kolumny:

• Za pomocą ALTER TABLE możliwe jest również dodawanie i usuwanie atrybutów pól.

• ALTER TABLE tabela MODIFY opis VARCHAR(50);

• ALTER TABLE tabela CHANGE opis info VARCHAR(50);

Page 12: Tworzenie bazy danych – mySQL

12

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:

– 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

Page 13: Tworzenie bazy danych – mySQL

13

AUTO_INCREMENT i DEFAULT

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

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

• Wynik: (1, 'XYZ', 'brak opisu')

Page 14: Tworzenie bazy danych – mySQL

14

AUTO_INCREMENT i DEFAULT

• CREATE TABLE wykonawcy {id INT NOT NULL

AUTO_INCREMENT,wykonawca VARCHAR(30),opis TEXT DEFAULT 'brak

opisu'};

Page 15: Tworzenie bazy danych – mySQL

15

TIMESTAMP

• 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.

Page 16: Tworzenie bazy danych – mySQL

16

INSERT INTO CZEKI (odbiorca, uwagi, kwota ) VALUES ('Ma Bell', 'Lepiej miec syna', 150);

Wstawianie danych do tabeli

INSERT INTO nazwa_tabeli(kolumna1, kolumna2,....)

VALUES(wartość1, wartość2, wartość3);

Co z polem nr_czeku ?

Page 17: Tworzenie bazy danych – mySQL

17

Wypełnianie tabeli MySQLTabela czeki :• nr_czeku INT AUTO_INCREMENT

PRIMARY KEY,• odbiorca VARCHAR(30), • kwota float,• uwagi char(30),

INSERT INTO CZEKI (odbiorca, uwagi, kwota )

VALUES ('Ma Bell', 'Lepiej miec syna', 150);

Co z polem nr_czeku ?

Page 18: Tworzenie bazy danych – mySQL

18

Wyszukiwanie danych

• Wyszukiwanie danych w tabeli – instrukcja SELECT

• Ogólna postać instrukcji SELECT:

• SELECT które_kolumny

• FROM z_której_tabeli

• WHERE które_rekordy;

Page 19: Tworzenie bazy danych – mySQL

19

Wyszukiwanie danych• SELECT [DISTINCT]• { {funkcja agregująca | wyrażenie [ AS

nazwa_kolumny ]}

| {kwalifikator.*}

| *• INTO specyfikacja_obiektu_docelowego, ...• FROM { {nazwa_tabeli [AS] {alias}

[(nazwa_kolumny, ...]}

| podzapytanie

|tabela_złączona

[ WHERE predykat]

Page 20: Tworzenie bazy danych – mySQL

20

Zdanie SELECT cd.• [ GBROUP BY {nazwa tabeli | ALIAS }.nazwa

kolumny]• [HAVING predykat]• [ORDER BY {{kolumna_wyjściowa {ASC |

DESC]},..}];

Page 21: Tworzenie bazy danych – mySQL

21

Zdanie SELECT cd.• INTO - określa obiekt docelowy• FROM - wskazuje tabele z których zapytanie

pobiera lub wylicza wartości• WHERE - kryteria, których spełnienia wymaga się

od wierszy wyjściowych• GROUP BY - grupuje wyniki zapytania w oparciu o

wartości w określonych kolumnach• HAVING określa wymagania dotyczące grup

wierszy określonych klauzulą GROUP BY• ORDER BY - porządkuje wynik wg określonych

kryteriów

Page 22: Tworzenie bazy danych – mySQL

22

Wyszukiwanie danych

• Najprostsza postać instrukcji SELECT

• Wyszukiwanie:– w tabeli albumy– wszystkich pól (kolumn) – „*”– wszystkich rekordów (wierszy) – brak warunku

WHERE

• SELECT * FROM albumy;

Page 23: Tworzenie bazy danych – mySQL

23

Wyszukiwanie – wybór kolumn

• Wyszukiwanie danych – wyświetlenie wybranych kolumn

• W ten sposób można uzyskać powtarzające się wyniki:

• Eliminacja powtórzeń wyników:

• SELECT rok, tytuł, wykonawca FROM albumy;

• SELECT wykonawca FROM albumy;

• SELECT DISTINCT wykonawca FROM albumy;

Page 24: Tworzenie bazy danych – mySQL

24

Page 25: Tworzenie bazy danych – mySQL

25

# Query:# select * from czeki#'nr_czeku', ’odbiorca’, 'kwota', 'uwagi','1', 'Ma Bell', '150', 'Lepiej miec syna','2', 'Reading R.R', '245.34', 'pociag do Chicago','3', 'Ma Bell', '200.32', 'telefon komórkowy','4', 'Local utilities','98', 'Paliwo','5', 'Joes Stale $ Dent','150', 'Artykuly spozywcze','6', 'Cash', '25', 'Szalona noc','7', 'Joan Gas', '25.1', 'Paliwo',

Page 26: Tworzenie bazy danych – mySQL

26

select odbiorca, uwagi, kwota, nr_czeku from czeki;

select odbiorca, uwagi, kwota, nr_czeku from czeki;

Jak pisać instrukcje

Page 27: Tworzenie bazy danych – mySQL

27

Wybieranie kolumn

Page 28: Tworzenie bazy danych – mySQL

28

Zapytania z rozróżnieniem

Page 29: Tworzenie bazy danych – mySQL

29

Zapytania z rozróżnieniem

Page 30: Tworzenie bazy danych – mySQL

30

Czy umiesz?Czy zdania są równoważne:SELECT * FROM CZEKI;select * from czeki;

Zapytania nie działają:Select *Select * from czekiSelect kwota nazwisko odbiorca from czeki;

Które zapytanie są dobre:select *from czeki;select * from czeki;select * from czeki

Page 31: Tworzenie bazy danych – mySQL

31

Wyszukiwanie – wybór wierszy• Wyszukiwanie rekordów spełniających

zadany warunek – instrukcja WHERE

Page 32: Tworzenie bazy danych – mySQL

32

Operatory• Operatory używane w instrukcji

SELECT ... WHERE:– porównania: = <> < > <= >= <=>– logiczne: NOT ! AND && OR || XOR– IS NULL, IS NOT NULL– expr BETWEEN min AND max (NOT

BETWEEN)– expr IN (lista) (NOT IN)

Page 33: Tworzenie bazy danych – mySQL

33

Wyszukiwanie – wybór wierszy

• SELECT tytuł FROM albumyWHERE wykonawca = 'Pink Floyd';

• SELECT wykonawca, rok FROM albumyWHERE tytuł = 'The Best Of' AND rok < 1970;

Page 34: Tworzenie bazy danych – mySQL

34

Page 35: Tworzenie bazy danych – mySQL

35

Operatory• SELECT * FROM albumyWHERE wykonawca IN ('Pink Floyd', ‘Dire Straits')AND (rok < 1975 OR rok BETWEEN 1979 AND 1983);

Page 36: Tworzenie bazy danych – mySQL

36

Symbole wieloznaczne

• Symbole wieloznaczne używane w instrukcji WHERE:– % zastępuje dowolny ciąg znaków– _ zastępuje jeden znak

• SELECT * FROM albumyWHERE wykonawca LIKE 'The %s';

Page 37: Tworzenie bazy danych – mySQL

37

Symbole wieloznaczne

• Symbole wieloznaczne używane w instrukcji WHERE:– Operator symboli wieloznacznych: LIKE, NOT

LIKE

• SELECT * FROM albumyWHERE album NOT LIKE 'The Best in 197_';

Page 38: Tworzenie bazy danych – mySQL

38

Operator podobieństwa LIKE

Page 39: Tworzenie bazy danych – mySQL

39

Sortowanie wyników

• Sortowanie wyników wg zadanej kolumny:– ORDER BY pole – w porządku rosnącym– ORDER BY pole ASC – jw.– ORDER BY pole DESC – w porządku

malejącym

• SELECT * FROM albumyORDER BY rok DESC, wykonawca;

Page 40: Tworzenie bazy danych – mySQL

40

Sortowanie wyników wg pola ‘kwota’

Page 41: Tworzenie bazy danych – mySQL

41

Sortowanie wyników z frazą WHERE

Page 42: Tworzenie bazy danych – mySQL

42

Pytania, niejasności, Pytania, niejasności, powtórkipowtórki

Page 43: Tworzenie bazy danych – mySQL

43

[1 1]ADDAGAINSTALLALTERANALYZEANDASASCBETWEENBINARYBINLOGBOTHBYCASCADECASECHANGECHARACTERCOLUMNCONSTRAINTCREATECROSSDATABASEDATABASES....

Syntax.txt:

Należy podać lokalizację pliku i wtedy wybrane wyrazy pisze w kolorze niebieskim

Page 44: Tworzenie bazy danych – mySQL

44

Page 45: Tworzenie bazy danych – mySQL

45

Page 46: Tworzenie bazy danych – mySQL

46

Page 47: Tworzenie bazy danych – mySQL

47

Page 48: Tworzenie bazy danych – mySQL

48

Page 49: Tworzenie bazy danych – mySQL

49

Page 50: Tworzenie bazy danych – mySQL

50

Struktura zapytania (kwerendy)SELECT lista atrybutów wyświetlanych w odpowiedzi*, ALL wskazuje że wszystkie atrybuty mają być wyświetloneFROM tabela lub tabele do których jest zapytanieWHERE warunki wyboru;

Page 51: Tworzenie bazy danych – mySQL

51

Tabela Persons ( ahv, surname, forename, phone, fax, email, www)

SELECT surname, emailFROM PersonsWHERE surname='Smith' AND forename='John' ;

ze zmianą nazw atrybutówSELECT surname AS name, email AS contactFROM PersonsWHERE surname='Smith' AND forename='John' ;

Page 52: Tworzenie bazy danych – mySQL

52

Page 53: Tworzenie bazy danych – mySQL

53

Page 54: Tworzenie bazy danych – mySQL

54

Eliminacja duplikatów SQL nie eliminuje duplikatów, chyba że użyjemy instrukcji DISTINCTPersons ( ahv, surname, forename, phone, fax, email, www)

SELECT DISTINCT forenameFROM PersonsWHERE surname='Smith' ;

Page 55: Tworzenie bazy danych – mySQL

55

Page 56: Tworzenie bazy danych – mySQL

56

Porównywanie ciągów znakowych

SELECT surname, forename, emailFROM PersonsWHERE email LIKE '%@inf.ethz.ch' ;

SELECT surname, forename, emailFROM PersonsWHERE surname < 'N' ;

Page 57: Tworzenie bazy danych – mySQL

57

Page 58: Tworzenie bazy danych – mySQL

58

System aliasów System aliasów można wykorzystać, •jeśli chcemy porównywać zmienne z tej samej tabeli.• jest wygodny, gdy chcemy uniknąć dwuznaczności używając powtarzających się nazw atrybutów.

SELECT p1.surname, p2.surnameFROM Persons p1, Persons p2WHERE p1.phone = p2.phone

Page 59: Tworzenie bazy danych – mySQL

59

Połączenie typu ‘każdy z każdym’

Page 60: Tworzenie bazy danych – mySQL

60

Grouping Specify list of grouping attributes in GROUP BY clause Aggregate operations in SELECT clause applied withingroupsPersons ( ahv, surname, forename, phone, fax, email, www)SELECT forename, COUNT(ahv)FROM PersonsGROUP BY forename ;

Page 61: Tworzenie bazy danych – mySQL

61

Funkcje agregujące

COUNT - zwraca liczbę rekordów spełniających warunekSUM - zwraca sumę wartości w kolumnieAVG - znajduje wartość średnią w kolumnieMAX - zwraca wartość maksymalnąMIN - zwraca wartość minimalnąVARIANCE - zwraca kwadrat odchylenia standardowegoSTDDEV - podaje odchylenie standardowe

Page 62: Tworzenie bazy danych – mySQL

62

Funkcje arytmetyczne

ABS - wartość bezwzględnaCEIL - zaokrągla w góręFLOOR - zaokrągla w dółCOS, COSH, SIN, SINH, TAN, TANH -

funkcje trygonometryczneEXP, LN, LOG - funkcje logarytmiczneMOD - reszta z dzieleniaSQRT - pierwiastek kwadratowyPOWER - podnoszenie liczby do potęgi

Page 63: Tworzenie bazy danych – mySQL

63

Funkcje znakowe

CHR - zwraca znak odpowiadający podanej liczbie w kodzie ASCIICONCAT - łączy dwa łańcuchy znakoweUPPER - wyświetla WIELKIMI LITERAMILOWER - wyświetla małymi literami

LPAD - dodaje tekst z lewej stronyRPAD - dodaje tekst z prawej stronyLTRIM - usuwa wybrany znak z tekstu z lewej stronyRTRIM - usuwa wybrany znak z tekstu z prawej stronySUBSTR - wyjmuje ciąg znaków ze łańcucha

Page 64: Tworzenie bazy danych – mySQL

64

Frazy w SQL

WHERE - wybiera rekordy z tabeliSTARTING WITH - działa podobnie jak LIKE(wyrażenie) ORDER BY - określa kolumnę sortującą wynikiGroup BY - pozwala wyświetlać i obliczać informacje dotyczące kilku rekordówHAVING - wybiera dane zwracane przez „GROUP BY’

Page 65: Tworzenie bazy danych – mySQL

65

Page 66: Tworzenie bazy danych – mySQL

66

Page 67: Tworzenie bazy danych – mySQL

67

Page 68: Tworzenie bazy danych – mySQL

68

Więcej niż jedna funkcja agregująca...

Ile pieniędzy dostali odbiorcy i ile czeków wystawiono

Page 69: Tworzenie bazy danych – mySQL

69

Ile pieniędzy dostali odbiorcy na takie same okazje

Page 70: Tworzenie bazy danych – mySQL

70

Ile czeków wystawiono na tego samego odbiorcę:

Page 71: Tworzenie bazy danych – mySQL

71

Fraza WHERE wybiera REKORDY spełniające określone kryterium

Fraza HAVING umożliwia wybieranie ROZWIĄZAŃ spełniających określone kryteriumFraza WHERE nie działa z funkcjami agregującymi !!!

Page 72: Tworzenie bazy danych – mySQL

72

Persons ( ahv, surname, forename, phone, fax, email, www)SELECT forename, COUNT(ahv)FROM PersonsGROUP BY forenameHAVING surname < 'N' ;) ;

Page 73: Tworzenie bazy danych – mySQL

73

Pytania, niejasności, Pytania, niejasności, powtórkipowtórki

Page 74: Tworzenie bazy danych – mySQL

74

JoinsPersons ( ahv, surname, forename, phone, fax, email, www)Organisations ( orgname, phone, fax, email, www)Worksfor ( ahv, orgname)SELECT orgname, surname, forenameFROM Persons, Worksfor, OrganisationsWHERE Persons.ahv=Worksfor.ahvAND Worksfor.orgname=Organisations.orgname

Page 75: Tworzenie bazy danych – mySQL

75

JOIN operations SQL standard also supports various JOIN operatorsr1 CROSS JOIN r2 cross productr1 JOIN r2 ON p theta-join with condition pr1 NATURAL JOIN r2 natural join

Page 76: Tworzenie bazy danych – mySQL

76

JOIN operations ... Various forms of OUTERJOIN operations also supportedr1 NATURAL FULL OUTER JOIN r2r1 NATURAL LEFT OUTER JOIN r2r1 NATURAL RIGHT OUTER JOIN r2r1 FULL OUTER JOIN r2 ON pr1 LEFT OUTER JOIN r2 ON pr1 RIGHT OUTER JOIN r2 ON p

Page 77: Tworzenie bazy danych – mySQL

77

Page 78: Tworzenie bazy danych – mySQL

78

Grupowanie wyników• Tworzenie zestawień przez grupowanie

wyników:– użycie funkcji, np. COUNT, SUM, MAX, MIN,

AVG

– nazwanie kolumny z wynikami (opcjonalnie) – AS

– zgrupowanie wyników – ORDER BY

• Przykład – obliczenie ilości albumów wszystkich wykonawców:

• SELECT wykonawca, COUNT(*) FROM albumyGROUP BY wykonawca;

• SELECT wykonawca, COUNT(*) AS ilosc FROM albumyGROUP BY wykonawca ORDER BY ilosc DESC;

Page 79: Tworzenie bazy danych – mySQL

79

Grupowanie wyników• Ograniczenie rekordów uzyskanych w

wyniku grupowania– operator HAVING

• Nie należy mylić instrukcji WHERE i HAVING!

• Przykład – obliczenie ilości albumów wszystkich wykonawców, wyświetlenie tylko tych, którzy mają więcej niż 5 albumów:

• SELECT wykonawca, COUNT(*) AS ilosc FROM albumyGROUP BY wykonawcaHAVING ilosc > 5;

Page 80: Tworzenie bazy danych – mySQL

80

Ograniczenie liczby wyników

• Ograniczenie liczby zwracanych wyników – LIMIT• LIMIT n – n pierwszych wyników• LIMIT m,n – n wyników, pomijając m pierwszych

• Przykład: 10 wykonawców o największej liczbie albumów:

• 20 następnych wyników (11-30):

• SELECT wykonawca, COUNT(*) AS ilosc FROM albumyGROUP BY wykonawca LIMIT 10;

• SELECT wykonawca, COUNT(*) AS ilosc FROM albumyGROUP BY wykonawca LIMIT 10,20;

Page 81: Tworzenie bazy danych – mySQL

81

Wyszukiwanie w wielu tabelach

• Pobieranie danych w więcej niż jednej tabeli

• Przykład bazy danych – dwie tabele:– albumy– utwory

• Wybranie wszystkich możliwych kombinacji rekordów z obu tabel (iloczyn kartezjański):

•Gatunek•Rok•Album•Wykonawca•IDA

•IDA•Czas•Utwór•IDU

• SELECT * FROM albumy, utwory;

Page 82: Tworzenie bazy danych – mySQL

82

Wyszukiwanie w wielu tabelach

• Uwzględnienie relacji między tabelami:

• Łączy ze sobą rekordy obu tabel mające takie same dane w polach, które są połączone relacją:

– albumy

– utwory

• SELECT * FROM albumy, utworyWHERE albumy.IDA = utwory.IDA;

•Gatunek•Rok•Album•Wykonawca•IDA

•IDA•Czas•Utwór•IDU

Page 83: Tworzenie bazy danych – mySQL

83

Wyszukiwanie w wielu tabelach

• Wybór kolumn:

• Krótsza wersja – aliasy nazw tabel:

• SELECT albumy.wykonawca, albumy.album, utwory.utwor, utwory.czas FROM albumy, utworyWHERE albumy.IDA = utwory.IDA;

• SELECT a.wykonawca, a.album, u.utwor, u.czas FROM albumy a, utwory uWHERE a.IDA = u.IDA;

Page 84: Tworzenie bazy danych – mySQL

84

Wstawianie danych – inne metody

• Wstawianie do tabeli danych uzyskanych w wyniku zapytania:

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

• INSERT INTO nowa (autor, dzielo)SELECT DISTINCT wykonawca, albumFROM albumy;

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