INFORMATICS

The Best

Przełącznik języka

This Site

CMS

Hardware

Uncategorised

useful sites

Databases

Emulators

Powershell

Storage Array

DNS

Antivirus program

Licznik

1.png8.png0.png9.png4.png3.png1.png
Today138
Yesterday801
This week6242
This month26393
Total1809431

Visitor Info

  • IP: 3.231.226.13
  • Browser: Unknown
  • Browser Version:
  • Operating System: Unknown

Who Is Online

2
Online

Saturday, 30 May 2020 05:00

Komendy MYSQL

User Rating: 4 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Inactive
 

SQL jest językiem 4-generacji (4GL) jest niezależny od platform i produktu jest językiem strukturalnym
 
Podstawowe komendy do pracy z MySQL:
Logowanie z unix shell użyj opcji -h
     # [mysql dir]/bin/mysql -h hostname -u user -p 

Po zalogowaniu otrzymasz linię zachęty ze znakiem

mysql>

Tworzenie nowej bazy

Przykład komendy gdzie logującym się jest user - root

mysql -h localhost -u root -p

Zakończenie pracy z konsolą

mysql> \q lub

mysql> quit

mysql> \help     - podstawowe komendy - pomoc

mysql> \s         - sprawdzenie statusu serwera

Przydatne zapytania:

SELECT version();

lub zapytanie bardziej złożone:

SELECT Version(), Now(), user(), current_date():

Rozpoczynamy pracę z bazą danych
     mysql> create database [nazwabazy];
Pokaż wszystkie zapisane bazy
     mysql> show databases;
Tworzenie tabeli
  mysql> CREATE table [nazwa tabeli];
  Przykład:
      mysql> CREATE TABLE example (
         id INT,
         data VARCHAR(100)
       );

 Wybór bazy danych - przełączanie pomiędzy bazami
     mysql> use [db name];
 Pokaż tabele w wybranej bazie danych
     mysql> show tables;
Wynik
mysql> SHOW CREATE TABLE example;
+---------+------------------------------------------------+
| Table   | Create Table                                   |
+---------+------------------------------------------------+
| example | CREATE TABLE `example` (
  `id` int(11) default NULL,
  `data` varchar(100) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin2 |
+---------+------------------------------------------------+
1 row in set (0.00 sec)

Pokaż strukturę tabeli - formaty pól
    mysql> describe [nazwa tabeli];
    mysql> explain  [nazwa tabeli];
Wynik
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | YES  |     | NULL    |       |
| data  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Usunięcie bazy danych
    mysql> drop database [nazwa bazy];
Usunięcie tabeli
    mysql> drop table [table name];

Przeglądanie danych MYSQL

Przykłady SELECT
WHERE
SELECT * FROM pracownik WHERE pensja > 2500
SELECT * FROM pracownik WHERE (pensja >= 1500) AND (pensja <

2500)
LIKE
SELECT * FROM nazwa_tabeli WHERE nazwa_kolumny LIKE wyrażenie
SELECT * FROM pracownik WHERE nazwisko LIKE ‘Kwia%’ - wyświetla

nazwiska zaczynające się na Kwia
SELECT * FROM pracownik WHERE id_pracownika LIKE ‘%ski'

wyświetla nazwiska kończące sią na ski
SELECT * FROM pracownik WHERE imie LIKE ‘_ar%’ - wyświetla

imiona których 3 i 4 litera to "ar"

Znaki specjalne z polecenia SELECT
"_" - zastępuje dowolny pojedynczy znak - przykład LIKE '_ar_'

oznacza że szukane wyrażenie posiada dowolną pierwszą i ostatną

literę a środkowe litery to "ar"
"%" - dowolny ciąg znaków o dowolnej długości również zerowej -

przykład LIKE 'ar%' oznacza wszystkie wyraz rozpoczynające się

na "ar" łącznie z wyrazem "ar"
"[]" - dowolny ciąg znaków z określonego zakresu - przykład LIKE

'[a-c]%' - oznacza wszystkie wyrazy o dowolnej długości

rozpoczynające się od litery z przedziału a-c
"^" - dowolny ciąg znaków nie pasujący do zakresu - przykład

LIKE '[^a-c]%' - oznacza wszystkie wyrazy o dowolnej długości

których pierwsza litera nie jest literą z przedziału "a-c"

BETWEEN - pozwala określić zakres z operatorem WHERE
SELECT * FROM nazwa_tabeli WHERE (nazwa_kolumny BETWEEN x AND y)
SELECT * FROM pracownik WHERE (id_pracownika BETWEEN 1 AND 220)
Przykład wyświetla rekordy z zakresu gdzie id_pracownika jest pomiędzy 1 a 220


IN - pozwala wskazać rekordy należące do określonego zbioru
SELECT * FROM pracownik WHERE (id_pracownika IN (22, 33))
Wyświetli pracowników których "id_pracownika" to 22 oraz 33

 COUNT - zwraca liczbę rekordów określonych frazą WHERE

select count(*) from LOKAL where CENA<9000;

Zapytanie złożone

select
count(distinct if(CENA<9000, ID, null))
as liczba_aut_tanszych,
avg(if(CENA<100000, CENA, null))
as srednia_cena_pojaut_tanszych,
count(distinct if(CENA>9000, ID, null))
as liczba_aut_drozszych,
avg(if(CENA>9000, CENA, null))
as srednia_cena_pojaut_drozszych
from LOKAL;

 

Pokaż wszystkie dane w tabeli
    mysql> SELECT * FROM [table name];
Pokaż informacje o kolumnach w wybranej tabeli
    mysql> show columns from [nazwa tabeli];
Pokaż wybrane rzędy tabeli z wartościa “xxxx”
    mysql> SELECT * FROM [table name] WHERE [field name] =

"xxxx";
Pokaż wszystkie rekordy zawierające wartość Anton  i numer

telefonu '601673345'.
    mysql> SELECT * FROM [table name] WHERE name = "Anton" AND

phone_number =   '60167336666';
Pokaż wszystkie rekordy które nie zawierają nazwy „Anton” i

numeru telefonu”6016666” porządkując je polem phone_number
    mysql> SELECT * FROM [table name] WHERE name != "Bob" AND

phone_number = '67343434' order by phone_number;
Pokaż wszystkie rekordy rozpoczynające się literą ‘An’ i numerem

telefonu ‘60432452’.
    mysql> SELECT * FROM [table name] WHERE name like "An%" AND

phone_number = '65326453';
Pokaż wszystkie rekordy rozpoczynające się z litery “An” i

numeru telefonu ‘6016666’ ograniczając rekord 1 z 5
    mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND

phone_number = '64563345' limit 1,5;
Użyj regularnego wyrażenia by znaleźć rekord. Używając “REGECP

BINARY” w celu zwiększenia czułości oraz znalezienia dowolnych

rekordow zaczynajacych się od „a”
    mysql> SELECT * FROM [table name] WHERE rec RLIKE "^a";
Pokaż unikalne rekordy
    mysql> SELECT DISTINCT [column name] FROM [table name];
Pokaż wybrane rekordy sortowane rosnąco (asc) lub malejąco

(desc)
    mysql> SELECT [col1],[col2] FROM [table name] ORDER BY

[col2] DESC;
Zwróć liczbę rzędów
    mysql> SELECT COUNT(*) FROM [table name];
Suma kolumn
    mysql> SELECT SUM(*) FROM [table name];
Dołącz do tabel wspólne kolumny
    mysql> select lookup.illustrationid,

lookup.personid,person.birthday from lookup left join person on

lookup.personid=person.personid=statement to join birthday in

person table with primary illustration id;
 
Tworzenie nowego użytkownika logując się jako root.
Połącz sie do bazy mysql i uaktualnij uprawnienia
    # mysql -u root -p
    mysql> use mysql;
    mysql> INSERT INTO user (Host,User,Password) VALUES

('%','username',PASSWORD  ('password'));
    mysql> flush privileges;
Zmień hasło użytkownika z powłoki unixa
    # [mysql dir]/bin/mysqladmin -u username -h

hostname.blah.org -p password 'new-password'
Zmień hasło użytkownika z MySQL prompt zaloguj się jako root

oraz ustaw hasło. Odśwież uprawnienia
    # mysql -u root -p
    mysql> SET PASSWORD FOR 'user'@'hostname' = PASSWORD

('passwordhere');
    mysql> flush privileges;
Odzyskaj hasło roota z MySQL zatrzymaj proces serwera uruchom

ponownie bez uprawnień do tabeli załoguj się ponownie do MySQL

jako root. Ustaw nowe hasło potem wyjdź z MySQL i urochom

ponownie serwer.
    # /etc/init.d/mysql stop
   #  mysqld_safe --skip-grant-tables &
    # mysql -u root
    mysql> use mysql;
    mysql> update user set password=PASSWORD("newrootpassword")

where User='root';
    mysql> flush privileges;
    mysql> quit
    # /etc/init.d/mysql stop
    # /etc/init.d/mysql start
Utwórz nowe hasło użytkownika root będąc zalogowany jako root
    # mysqladmin -u root password newpassword
Zmień hasło użytkownika root
    # mysqladmin -u root -p oldpassword newpassword
Pozwól aby użytkownik "bob" połączył się do serwera z  localnego

hosta używając hasła  "passwd". Logując się jako root przełącz

do bazy MySQL dodaj oraz uaktualnij uprawnienia.
    # mysql -u root -p
    mysql> use mysql;
    mysql> grant usage on *.* to bob@localhost identified by

'passwd';
    mysql> flush privileges;
Przydziel użytkownikowi uprawnienia dla bazy Zaloguj się jako

root przełącz do bazy MySQL, przyznaj oraz uaktualnij

uprawnienia
    # mysql -u root -p
    mysql> use mysql;
    mysql> INSERT INTO user

(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Cr

eate_priv,Drop_priv) VALUES

('%','databasename','username','Y','Y','Y','Y','Y','N');
mysql> flush privileges;  or      mysql> grant all privileges on

databasename.* to username@localhost;
    mysql> flush privileges;
Uaktualnij informacje zawarte w tabeli
    mysql> UPDATE [table name] SET Select_priv = 'Y',Insert_priv

= 'Y',Update_priv = 'Y' where     [field name] = 'user';
Usuń rząd z tabeli
    mysql> DELETE from [table name] where [field name] =

'whatever';

Odśwież uprawnienia dostępy
    mysql> flush privileges;

Usuń kolumne
    mysql> alter table [table name] drop column [column name];

Dodaj kolumne do bazy.
    mysql> alter table [table name] add column [new column name]

varchar (20);

Zmień nazwę kolumny.
    mysql> alter table [table name] change [old column name]

[new column name] varchar (50);

Wykonaj unikalną kolumnę aby zabezpieczyć się przed oszustwem.
    mysql> alter table [table name] add unique ([column name]);
Zwiększ rozmiar kolumny.
    mysql> alter table [table name] modify [column name]

VARCHAR(3);

Usuń unikalną tabelę.
    mysql> alter table [table name] drop index [colmn name];

Wczytaj pliki CSV do tabeli
    mysql> LOAD DATA INFILE '/tmp/filename.csv' replace INTO

TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY

'\n' (field1,field2,field3);

Wykonaj backup WSZYSTKICH baz danych. Plik backupu jest SQL

komenda odtworzenia całej bazy
    # [mysql dir]/bin/mysqldump -u root -p password --opt

>/tmp/alldatabases.sql

Zrzuć jedną baze danych do backupu.
    # [mysql dir]/bin/mysqldump -u username -p password --

databases databasename   >/tmp/databasename.sql

Zrzuć tabelę z bazy.
    # [mysql dir]/bin/mysqldump -c -u username -p password

databasename tablename  > /tmp/databasename.tablename.sql

Odzyskaj bazę lub tabele z backupu.
    # [mysql dir]/bin/mysql -u username -p password databasename

< /tmp/databasename.sql

Utwórz tabele przykład 1.
    mysql> CREATE TABLE [table name] (firstname VARCHAR(20),

middleinitial VARCHAR(3),   lastname VARCHAR(35),suffix VARCHAR

(3),officeid VARCHAR(10),userid VARCHAR (15),username VARCHAR

(8),email VARCHAR(35),phone VARCHAR(25), groups VARCHAR

(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));

Utwórz tabelę przykład 2.
mysql> create table [table name] (personid int(40) not null

auto_increment primary key,firstname varchar(35),middlename

varchar(40),lastnamevarchar(40) default 'bato'); 

Przykład 3.
mysql -u[tutaj wpisz użytkownika z pełnym dostępem do bazy] -p
Enter password:[podaj hasło]
mysql> CREATE DATABASE projekt CHARACTER SET utf8 COLLATE

utf8_polish_ci;
mysql> GRANT USAGE ON projekt.* TO projekt@localhost;
mysql> GRANT ALL ON projekt.* TO projekt@localhost IDENTIFIED BY

'twoje_hasło';
mysql> flush privileges;
mysql> use projekt;

Wykonywanie komend w trybie wsadowym:
mysql> mysql < FilaName;

 

 

 

Search