Bazy Danych i Systemy informacyjne Wykład 2 Piotr Syga 16.10.2017
Dodawanie, usuwanie i zmienianie rekordów Wstawianie rekordu wstawianie do tabeli INSERT INTO A VALUES ( fioletowy, okrągły, słodko-kwaśny ); wstawianie wybranych kolumn INSERT INTO A (kolor,smak) VALUES ( żółtry, kwaśny ); Uwaga: Schemat tabeli musi pozwalać na wartości NULL lub mieć przypisane wartości domyślne. wstawianie danych z tabeli INSERT INTO slodkie (kolor, kształt) SELECT kolor, kształt FROM A WHERE smak= słodki ;
Dodawanie, usuwanie i zmienianie rekordów Zmienianie i usuwanie ustalonego rekordu Update Do tabeli wstawiliśmy dane z literówką: żółtry UPDATE A SET kolor = żółty WHERE kolor = żółtry ; Delete Usuńmy wpisy mieszane: DELETE FROM A WHERE smak LIKE %-% ;
Dodawanie, usuwanie i zmienianie rekordów Zmienianie i usuwanie rekordów Modyfikacja z warunkiem z wielu tabel UPDATE Tab T1 INNER JOIN Tab T2 ON T1.ID=T2.ID AND T2.to_update = 1 SET T1.update_count = T1.update_count+1; Usuwanie z warunkiem z wielu tabel DELETE FROM Tab1 WHERE ID IN (SELECT T1.ID FROM a T1 JOIN b T2 ON T1.ID = T2.ID); alternatywnie DELETE Tab1 FROM Tab1 INNER JOIN Tab2 ON Tab1.ID = Tab2.ID;
Modyfikacja i tworzenie tabel Dostawianie kolumn do istniejących tabel Za każdym razem, gdy chcemy zmienić coś w tabeli używamy słów kluczowych ALTER TABLE. Dodawanie kolumn ALTER TABLE A ADD (COLUMN) nazwa int FIRST; ALTER TABLE A ADD (COLUMN) R int AFTER kolor; ALTER TABLE A ADD (COLUMN) G int AFTER R; ALTER TABLE A ADD (COLUMN) B int AFTER G; Modyfikacja kolumn ALTER TABLE A ALTER COLUMN nazwa string;
Modyfikacja i tworzenie tabel Usuwanie kolumn Usuwanie jednej kolumny ALTER TABLE A DROP (COLUMN) R; Możliwość usuwania kilku kolumn jednocześnie: ALTER TABLE A DROP COLUMN G, DROP COLUMN B; Uwaga Usuwanie kolumny zakończy się błędem jeśli jest ona wykorzystywana poza oryginalną tabelą (np. FK, index).
Modyfikacja i tworzenie tabel Tworzenie nowych tabel Podstawowa składnia CREATE TABLE Tabela (kolumna typ); Typy Numeryczne Tekstowe Data bit(n) (national) char(n) ( ) date (unsigned) #int(n) (national) varchar(n) ( ) datetime bool binary(n) timestamp (unsigned) decimal(n,d) text(n) time (unsigned) float(n,d) blob(n) year (unsigned) double(n,d) enum (vals)( ) set(vals)( ) # int, tinyint, smallint, mediumint, bigint : CHARACTER SET _ COLLATE _ SHOW CHARACTER SET; SHOW COLLATION WHERE Charset = wybrany_charset ;
Modyfikacja i tworzenie tabel Tworzenie tabel wersja (odrobinę) rozszerzona CREATE (TEMPORARY) TABLE (IF NOT EXISTS) tabela( kolumna0 int NOT NULL AUTO_INCREMENT, kolumna1 typ1 (COMMENT komentarz), kolumna2 typ2 (NULL), kolumna3 typ3 (DEFAULT val), nazwaa varchar(30), FOREIGN KEY (nazwaa) REFERENCES A(nazwa) ON DELETE CASCADE, CHECK (kolumna2>=threshval), CONSTRAINT nazwacst CHECK (kolumna1<tval AND kolumna3 LIKE patt) );
Modyfikacja i tworzenie tabel Modyfikacja ograniczeń Podobnie jak kolumny możemy dodawać i usuwać ograniczenia: Modyfikacja wartości początkowej ALTER TABLE tabela AUTO_INCREMENT=70; Dodawanie ALTER TABLE tabela ADD CHECK (kolumna2<upperbound); ALTER TABLE tabela ADD CONSTRAINT namecst CHECK (kolumna1<tval OR kolumna3 LIKE patt); Usuwanie ALTER TABLE tabela DROP CHECK nazwacst;
Operacje na bazie Tworzenie i modyfikacje bazy Podstawowe operacje CREATE DATABASE (IF NOT EXISTS) baza (CHARACTER SET charset); DROP DATABASE (IF EXISTS) baza; Zmiany bazy Konwersja nazw dla 5.0+: ALTER DATABASE #mysql50#baza UPGRADE DATA DIRECTORY NAME; ALTER DATABASE baza CHARACTER SET charset;
Operacje na bazie Tworzenie użytkowników Dodawanie użytkownika CREATE USER user @ localhost ; (CREATE USER user @ % ;) SET PASSWORD FOR user @ localhost = PASSWORD( pass ); ALTER USER user @ localhost WITH MAX_QUERIES_PER_HOUR (MAX_UPDATES_PER_HOUR MAX_CONNECTIONS_PER_HOUR) 10;
Operacje na bazie Tworzenie użytkowników cd. Nadawanie uprawnień GRANT ALL PRIVILEGES ON *.* TO user @ localhost ; FLUSH PRIVILEGES; Podstawowe Uprawnienia Cele Alter *.* Create baza.* Delete baza.tabela Drop tabela Insert baza.funkcja Select Show Update