Jogg.About::$Me->RaVbaker

 

09

kwietnia

2007

« Bedzie krótko o tym czego mi trzeba w... Google Reader Lomo wydaje się być OK »

MySQL cheat sheet

Ostatnio zainteresował mnie wynalazek zwany cheat sheet. Zaczęło się wszystko od tego, że znalazłem takowe tablice do Ruby on Rails, a potem zapragnąłem mieć ich więcej do innych popularnych narzędzi z których korzystam na codzień. I tak oto kolejnym dla mnie problemem okazały się braki w obsłudze MySQL. Postanowiłem zatem poszukach cheatów do tego, jednak nic nie zadowalało mnie w pełni. Cóż mi pozostało? Napisać własne cheat sheet do tego co potrzebuję. I oto one: MySQL cheat sheet. (Być może w przyszłości zamieszczę także wersję PDF.)

Wybór bazy danych:

mysql> USE database;

Wykaz wszystkich baz danych:

mysql> SHOW DATABASES;

Wykaz wszystkich tabel w wybranej bazie danych:

mysql> SHOW TABLES;

Wykaz wszystkich tabel z danej bazy danych:

mysql> SHOW TABLES FROM database;

Opis danych zawartych w wybranej przez nas tabeli:

mysql> DESCRIBE table; lub mysql> SHOW columns FROM database;

Tworzenie nowej bazy danych:

mysql> CREATE DATABASE db_name;

Tworzenie nowej tabeli:

mysql> CREATE TABLE table_name (field1_name TYPE(SIZE), field2_name TYPE(SIZE));Przykład: mysql> CREATE TABLE pet (name VARCHAR(20), sex CHAR(1), birth DATE);

Ładowanie danych do bazy z pliku tekstowego(poszczególne informacje oddzielone tabulacjami a rekordy znakiem \n):

mysql> LOAD DATA LOCAL INFILE “file.txt” INTO TABLE table_name;

Dodawanie nowej kolumny do wybranej tabeli:

mysql> ALTER TABLE table ADD COLUMN [składnia nowej kolumny] (AFTER|BEFORE) col_name;

Dodawanie nowego rekordu do bazy:

mysql> INSERT INTO table_name (name, owner, date, wife) VALUES (’MyName’, ‘MyOwner’, ‘2002-08-31′, NULL);
Uwaga! W polach których danych brak wpisz NULL.
Przykład tworzenia tabeli z AUTO_INCREMENT: mysql> mysql> CREATE TABLE table (number INT NOT NULL AUTO_INCREMENT, name CHAR(10) NOT NULL);

Uaktualnianie danych w wybranym rekordzie:

mysql> UPDATE table SET column_name1 = "new_value", column_name2 = "new_value2" WHERE record_name = "value";

Wyciąganie informacji z tabeli:

mysql> SELECT from_columns FROM table WHERE warunki;
Wszystkie wartości: mysql> SELECT * FROM table;
Wybrane wartości: mysql> SELECT * FROM table WHERE sth_name = "value";
Zawiłe kryterium: mysql> SELECT * FROM table WHERE rec1 = "value1" AND rec2 = "value2";
Wybrana kolumna: mysql> SELECT some_column FROM table;
Dane posortowane (ASC-rosnąco(domyślne),DESC-malejąco): mysql> SELECT col1,col2 FROM table ORDER BY col2 [ASC|DESC];
Zwraca dane bez powtórzeń: SELECT DISTINCT col_name FROM table;

Zwraca ilość rekordów odnalezionych w danym zapytaniu dla każdego pola:

mysql> SELECT field1,field2,COUNT(*) FROM table;
Ilość wszystkich rekordów w danej tabeli:mysql> SELECT COUNT(*) FROM table;

Porównywanie wzorców:

mysql> SELECT * FROM table WHERE sth LIKE "bla,b_a,bl_%"; Znak % zastępuje dowolny ciąg niebiałych znaków.
Znak _ zastępuje jeden znak.
mysql> SELECT * FROM table WHERE sth (RLIKE|REGEXP) "^regular expression$";
Aby używać porównywania z uwzględnieniem wielkości liter użyj: BINARY

Obecnie używania baza danych:

mysql> SELECT DATABASE();

Zmiania nazwy tabeli:

mysql> ALTER TABLE table_name RENAME AS new_table_name;

Zmiana nazwy kolumny:

mysql> ALTER TABLE table_name CHANGE COLUMN col_name new_col_name new_col_type;

Usuwanie danych z wybranej tabeli:

mysql> DELETE FROM table_name;

Usuwanie kolumny z bazy danych:

mysql> mysql> ALTER TABLE table DROP COLUMN col;

Usuwanie tabeli z bazy danych

mysql> DROP TABLE table_name;

Usuwanie bazy danych:

mysql> DROP DATABASE db_name;

Backup bazy danych z poziomu konsoli:

# mysqldump --opt -u username -p database > database_backup.sql (Użyj 'mysqldump --opt --all-databases > all_backup.sql' aby zrobić backup wszystkiego.)

Typy danych w MySQL

Poniżej przedstawię typy danych w MySQLu.
Numeryczne typy danych MySQL
TypRozmiarOpis
TINYINT[długość]1 bajtLiczba z zakresu od –128 do 127 lub od 0 do 255, jeżeli jest typu UNSIGNED.
SMALLINT[Długość] 2 bajty Liczba z zakresu od –32 768 do 32 767 lub od 0 do 65 535, jeżeli jest typu UNSIGNED.
MEDIUMINT[Długość] 3 bajty Liczba z zakresu od –8 388 608 do 8 388 607 lub od 0 do 16 777 215, jeżeli jest typu UNSIGNED.
INT[Długość] 4 bajty Liczba z zakresu od –2 147 483 648 do 2 147 483 647 lub od 0 do 4 294 967 295, jeżeli jest typu UNSIGNED.
BIGINT[Długość] 8 bajtów Liczba z zakresu od –9 223 372 036 854 775 808 do 9 223 372 036 854 775 807 lub od 0 do 18 446 744 073 709 551 615, jeżeli jest typu UNSIGNED.
FLOAT[Długość,Pozycje] 4 bajty Mała wartość zmiennoprzecinkowa.
DOUBLE[Długość,Pozycje] 8 bajtów Duża wartość zmiennoprzecinkowa.
DECIMAL[Długość,Pozycje] Długość + 1 lub
Długość + 2 bajty
Wartość typu DOUBLE ze stałą liczbą cyfr po przecinku.
Tekstowe typy danych MySQL
CHAR[Długość] Liczba bajtów Pole o stałej długości; długość od 0 do 255 znaków.
VARCHAR(Długość) Długość ciągu + 1 bajt Pole o stałej długości; długość od 0 do 255 znaków (od MySQL 5.0.3 65 535 znaków).
TINYTEXT Długość ciągu + 1 bajt Ciąg tekstowy o maksymalnej długości 255 znaków.
TEXT Długość ciągu + 2 bajty Ciąg tekstowy o maksymalnej długości 65 536 znaków.
MEDIUMTEXT Długość ciągu + 3 bajty Ciąg tekstowy o maksymalnej długości 16 777 215 znaków.
LONGTEXT Długość ciągu + 4 bajty Ciąg tekstowy o maksymalnej długości 4 294 967 295 znaków.
BINARY[Długość] Długość bajtów Podobny do CHAR, ale przechowuje dane binarne.
VARBINARY[Długość] Długość danych + 1 bajt Podobny do VARCHAR, ale przechowuje dane binarne.
TINYBLOB Długość danych + 1 bajt Przechowuje dane binarne o maksymalnej długości 255 bajtów.
BLOB Długość danych + 2 bajty Przechowuje dane binarne o maksymalnej długości 65 535 bajtów.
MEDIUMBLOB Długość danych + 3 bajty Przechowuje dane binarne o maksymalnej długości 16 777 215 bajtów.
LONGBLOB Długość danych + 4 bajty Przechowuje dane binarne o maksymalnej długości 4 294 697 295 bajtów.
ENUM 1 lub 2 bajty Wyliczenie, które pozwala na to, by każda kolumna posiadała jedną z kilku możliwych wartości.
SET 1,2,3,4 lub 8 bajtów Typ podobny do ENUM z tą różnicą, że może posiadać więcej niż jedną z dopuszczalnych wartości.
Dostępne w MySQL typy daty i czasu
DATE 3 bajty Data w formacie:
RRRR-MM-DD.
DATETIME 8 bajtów Data i czas w formacie:
RRRR-MM-DD
GG:MM:SS.
TIMESTAMP 4 bajty Znacznik czasowy w formacie: GG:MM:SS;
zakres wartości kończy się w roku 2037.
TIME 3 bajty Znacznik czasowy w formacie GG:MM:SS.
YEAR 1 bajt Rok w formacie RRRR
i zakresie od 1901 do 2155.
Uff... To już wszystko.

 

Komentarze

 
 
 

№ 1

09 kwietnia 2007, 08:39:17

radmen

no takie coś może się przydać :]

 
 
 

№ 2

09 kwietnia 2007, 09:51:35

Seban

Popracuj nad wersją PDF :-)

 
 
 

№ 3

09 kwietnia 2007, 09:57:25

Seban

Ups, bardzo przepraszam, pośpieszyłem się z komentarzem. Nie musisz już robić wersji pdf, ona juz istnieje. MySQL cheat sheet
Dzięki, że miałeś chęci to zebrać, ale jak widać coś takiego już jest. Mokrego dnia ;-)

 
 
 

№ 4

09 kwietnia 2007, 11:00:29

RaVbaker

Seban:

Ta wersja od ilovejackdaniels.com mnie właśnie nie satysfakcjonowała. Brakowało mi tam wielu rzeczy. A do PDFa wrzucę... Niedługo. :-)

 
 
 

№ 5

17 czerwca 2007, 12:19:07

radmen

RaVbaker: kiedy ten pdf? :>

 
 
 

№ 6

17 czerwca 2007, 20:51:45

Rafał 'RaVbaker' Piekarski

Pewnie kiedyś. Obecnie znalazłem sobie pracę i to mnie pochłania bez reszty…

 
 
 

№ 7

15 lutego 2010, 20:45:10

Anonim

a ja mam inne pytanie co to za czcionka którą pisane są numery kolejnych komentarzy :) ? w moim przypadki No 7

a co do poradnika to bardzo fachowy.

 
 
 

Dodaj komentarz

 

Podpis

 

URL

 

Treść
(z textile)

 
 
 
 

Flakoblog