Juhej MySQL

Vir za večino predavanja je mysqltutorial.org

V prednameščenem okolju, v katerem delamo je nameščen tudi strežnik MySQL - no v resnici je naložen MariaDB (zakaj, na povezavi).

Delo v terminalu / MariaDB odjemalcu

Strežnik je sotopen na naslovu "localhost".

Na strežnik se prijavite z uporabniškim imenom in geslom, s katerim dostopate do "virtualke." Neposredno do strežnika pridete prek terminala (ctrl-alt-t).

     mysql -h localhost -u kroneggerl -p
     Enter password:
     

Glede na to da delamo lokalno se lahko prijavite tudi samo z mysql brez vsega - ali pa celotno prijavo speljete od začetka do konca

     mysql --host localhost --user kroneggerl --database  SP_kroneggerl -p
     Enter password:
     
V mySQL okolju, lahko pregledamo katere baze že obstajajo:
     MariaDB [(none)]> show databases;

     +--------------------+
     | Database           |
     +--------------------+
     | information_schema |
     | SP_kroneggerl         |
     +--------------------+
     2 rows in set (0,00 sec)

     

Uporabljali bazo pripravljeno za nas (pri meni je to SP_kroneggerl)

MariaDB [(none)]> use SP_kroneggerl; Database changed MariaDB [SP_kroneggerl]>

     

*** Če delamo na svojem strežniku***, moramo najprej ustvariti bazo. Za to, na vzpostavljenem strežniku nimamo pravic.


     mysql> create database kroneggerl;
     Query OK, 1 row affected (0.004 sec)

     
Brisanje obstoječe baze:
     mysql>   DROP DATABASE IF EXISTS kroneggerl;
     Query OK, 0 rows affected (0.009 sec)


     
Napolnimo s podatki:
     USE SP_kroneggerl;
     CREATE TABLE imenik(
         ime VARCHAR(30) NOT NULL,
         priimek VARCHAR(30) NOT NULL,
         mesto VARCHAR(40) NOT NULL,
         telefon VARCHAR(20) NOT NULL
     );


     
Za ponovitev posameznih tipov zapisov:
 
		     ------------ ŠTEVILSKI TIPI ------------
		
		TINYINT: Število z vrednostjo največ 127 ali najmanj -128  
		SMALLINT: Število z vrednostjo največ 32.768 ali najmanj -32.767  
		MEDIUMINT: Število z vrednostjo največ 8.388.608 ali najmanj -8.388.608  
		INT: Število z vrednostjo največ 2^31 ali najmanj -2^31  
		BIGINT: Število z vrednostjo največ 2^63 ali najmanj -2^63  
		FLOAT: Število z decimalnimi mesti, z vrednostjo največ 1.1E38 ali najmanj -1.1E38  
		DOUBLE: Število z decimalnimi mesti, z vrednostjo največ 1.7E308 ali najmanj -1.7E308  
		
		------------ NIZI (STRINGI) ------------
		
		CHAR: Niz znakov s fiksno dolžino  
		VARCHAR: Niz znakov s spremenljivo dolžino  
		BLOB: Lahko vsebuje do 2^16 bajtov podatkov  
		ENUM: Niz znakov z omejenim številom možnih vrednosti, ki jih morate vnaprej določiti  
		SET: Seznam dovoljenih nizov znakov. Za razliko od ENUM lahko SET vsebuje več vrednosti hkrati, medtem ko ENUM omogoča le eno  
		
		------------ DATUM IN ČAS ------------
		
		DATE: Datum v formatu (YYYY-MM-DD)  
		TIME: Čas v formatu (HH:MM:SS)  
		DATETIME: Datum in čas v formatu (YYYY-MM-DD HH:MM:SS)  
		TIMESTAMP: Datum in čas, pogosto uporaben za samodejno beleženje časa spremembe zapisa (YYYYMMDDHHMMSS)  
		YEAR: Leto v formatu (YYYY)
     


     
Kako sedaj to izgleda?

     MariaDB [SP_kroneggerl]>   DESCRIBE imenik
     -> ;
     +---------+-------------+------+-----+---------+-------+
     | Field   | Type        | Null | Key | Default | Extra |
     +---------+-------------+------+-----+---------+-------+
     | ime     | varchar(30) | NO   |     | NULL    |       |
     | priimek | varchar(30) | NO   |     | NULL    |       |
     | mesto   | varchar(40) | NO   |     | NULL    |       |
     | telefon | varchar(20) | NO   |     | NULL    |       |
     +---------+-------------+------+-----+---------+-------+
     4 rows in set (0.060 sec)



     
Še pobrišimo tabelo
     MariaDB [SP_kroneggerl]> drop table imenik;
     Query OK, 0 rows affected (0.045 sec)

     

Če delamo na svojem strežniku poskrbimo za varnost!!!

Ustvarimo uporabnika baze s čim manj pravicami (v realnosti je to naša spletna stran, ki se bo povezovala na bazo) Tako kot vedno gre za varnost. Spodnje ukaze izvedete direktno na strežniku mysql. Na pripravljenem strežniku nimamo pravic za ustvarjanje novih profilov.

   GRANT INSERT, SELECT, DELETE, UPDATE ON SP_kroneggerl.*
   TO 'studentweb'@'localhost'
   IDENTIFIED BY 'Živel 1. maj!';
   
Uporabniku z imenom "studentweb"
In geslom "Živel 1. maj!"
V bazi "test2" dovolimo:

Priklop na bazo s PHP