Categorii
programare web

Învață MySQL de la zero

Îți dorești să înveți MySQL de la zero?

Programarea conține multe tehnologii. Ca și programator, e bine să ai cunoștințe de bază în cât mai multe tehnologii, dar e esențial să ajungi să stăpânești câteva pentru a avansa în carieră.

În acest articol îți voi prezenta ce anume vei învăța într-un curs MySQL de la zero.

1. Introducere în MySQL

  • Ce este MySQL?

MySQL este un sistem de gestiune a bazelor de date relaționale, apărut în mod public în 1996.

Este robust și foarte rapid. Avantajul unei baze de date este că astfel poți administra datele într-un mod eficient: le poți căuta, sorta, sau le poți stoca în funcție de cerințele clientului.

  • MySQL – Instalare

Se poate instala de pe site-ul oficial MySQL (mysql.com) sau dacă descarci un XAMPP, LAMP sau MAMP este inclus în pachet și configurat pentru utilizare.

2. Bazele MySQL

Primul pas este să inveți bazele sistemului MySQL:

  • Crearea bazelor de date
    Această parte din curs conține informații despre cum creăm o bază de date, deoarece până să o gestionezi, e necesar să știi cum o creezi.
  • Ștergerea bazelor de date – Am creat o bază de date, dar poate nu ne mai este de folos, așa că în această parte vei învăța cum ștergi o bază de date;
  • Crearea tabelelor – O bază de date conține mai multe tabele, un tabel conține mai multe coloane;
  • Listarea si descrierea tabelelor
  • Inserarea datelor (records) – Vei învăța cum să inserezi recorduri, aceasta fiind o parte importantă din MySQL;
  • Selectarea datelor – Pe lângă selectare vei învăța și despre cum să filtrezi datele.
  • Redenumirea tabelelor
  • Auto Increment IDs
  • Actualizarea datelor – Actualizarea unui singur record si actualizare pentru mai multe recorduri
  • Ștergerea datelor
  • Limitarea datelor – În această parte voi explica cum setezi limita pentru numărul de vizualizări;
  • Ordonarea datelor – Cursul conține informații pas cu pas despre cum se ordonează recordurile;
  • Join – Înveți cum să conectezi 2 sau mai multe tabele relaționale;
  • Clauza de like
  • Numărarea recordurilor – Înveți cum să numeri numărul recordurilor și ce poți face cu rezultatul.

3. Introducere în MySQL și PHP

  • Introducere în PDO – PDO este un modul de PHP care permite comunicare din aplicație PHP cu MySQL și alte baze de date. PDO are varianta funcțională și varianta OOP.
  • Manipularea datelor MySQL în PHP – Vei învăța despre instrucțiunile și funcțiile MySQL.

4. Modulul PDO în PHP

  • Cum sa te conectezi – În această parte vei învăța cum să te conectezi la o bază de date MySQL dintr-o aplicație PHP;
  • Interogări de baza – Mai multe tipuri de selecții și filtrarea datelor direct în PHP
  • Rezultate – Cum să citim rezultatele în urma interogărilor;
  • Variabile PHP in Queries – Despre ce înseamnă să lucrezi și cum lucrezi cu variabilele în interogări;
  • SQL Injectons – Aici vei învăța cum să te protejezi asupra atacurilor MySQL de tip SQL Injections
  • Views – Tabele temporare.
  • Proceduri stocate

Pentru un curs de MySQL și PHP este nevoie de 3-4 ședințe iar dacă dorești să facem un proiect de la zero, un prototip de magazin online, vei avea nevoie 4-6 ședințe + cunoștințe de bază a limbajului PHP.

Dacă îți dorești să înveți MySQL de la zero sau alte tehnologii din domeniul programării cu un trainer web , mă poți contacta aici.

Categorii
programare web

Top 32 întrebări MySQL la un interviu

După ce ai învățat bazele sistemului MySQL urmează pregătirea pentru interviu. Este foarte important să te prezinți pregătit pentru că vrei să impresionezi, să arăți că ești candidatul potrivit pentru un salar adecvat.

Am pregătit o listă cu cele mai populare întrebări despre MySQL. Majoritatea sunt de nivel junior și restul pentru nivel avansat.

Întrebări MySQL nivel junior

1. Ce este MySQL?

MySQL este un sistem de gestiune a bazelor de date relaționale. Portul standard este 3306.

2. Prin ce librării te poți pot conecta la MySQL din PHP?

PDO sau MySQLi. Prin PDO este compatibil cu alte baze de date cum ar fi MSSQL, etc.

3. Ce clienți MySQL cunoști?

HeidiSQL, MySQL Workbench, Navicat, etc.

4. Ce sunt indecșii?

Rolul indecșilor este să crească performanța SELECT-urilor, se pot crea indecși pentru una sau mai multe coloane.

Este ca și cuprinsul unei cărți, verifici pe ce pagină este un capitol și deschizi cartea exact acolo. Este mult mai rapid decât să cauți pagină cu pagină.

5. Cum se creează o bază de date și o tabelă?

CREATE DATABASE mydbname;
CREATE TABLE users (
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    location VARCHAR(255)
);

6. Ce este un primary key?

Primary key este o coloana în care sunt valabile următoarele:

  • Valorile sunt unice
  • Valorile sunt NOT NULL
  • Coloana are index
  • O tabelă poate să aibă o singură coloană primary key
  • Este recomandat să se seteze tip INT, BIGINT și să se adauge AUTO_INCREMENT.

7. Ce este un foreign key?

Foreign Keys permit referințe cross între mai multe tabele păstrând consistența de date. Aceste keys se definesc în tabele child.

8. Selectează toți utilizatorii din tabela users

SELECT * FROM users;

9. Selectează utilizatorii din tabela users având localitatea Oradea

SELECT * FROM users
WHERE location = 'Oradea'
;

10. Adaugă un utilizator nou în tabela users

INSERT INTO users(email, password, location)
VALUES('john@example.com', 'password','Oradea')
;

11. Adaugă mai mulți utilizatori în tabela users

INSERT INTO users(email, password, location)
VALUES('john@example.com', 'password','Oradea')
VALUES('jane@example.com', 'password','Oradea')
VALUES('ana@example.com', 'password','Arad')
;

12. Actualizează un utilizator după adresă de email

UPDATE users
SET location = 'Brasov'
WHERE email = 'john@example.com'
;

13. Selectează utilizatorul după adresă de email

SELECT * FROM users
WHERE email = 'john@example.com'
;

14. Șterge utilizatorul după adresă email

DELETE FROM users
WHERE email = 'john@example.com'
;

15. Creează un index pentru coloana email în tabela users

CREATE INDEX idx_email
ON users (email)
;

16. Creează 2 tabele: users și user_profiles

CREATE TABLE users (
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    location VARCHAR(255)
);

CREATE TABLE user_profiles (
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    user_id INT(11) NOT NULL,
    data VARCHAR(255)
);

17. Ce tipuri de join-uri există?

LEFT JOIN
RIGHT JOIN
INNER JOIN
LEFT OUTER JOIN
RIGHT INNER JOIN
FULL OUTER JOIN

18. Creeaza un VIEW pentru tabele: users și user_profiles

CREATE VIEW user_profiles_view as 
SELECT * FROM users
JOIN user_profiles ON users.id = user_profiles.user_id
;

19. Citește datele din VIEW

SELECT * FROM user_profiles_view;

20. Selectează utilizatorii creați în ultimele 2 zile

SELECT * FROM users
WHERE created_at > DATE_SUB(NOW(), INTERVAL 2 DAY)
;

21. Creează tabela products și selectează prețul maxim, minim, medie și suma

CREATE TABLE products(
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    price DECIMAL(10,2) NOT NULL,
    stock INT(11)
);

SELECT MAX(price) price_max FROM products;
SELECT MIN(price) price_min FROM products;
SELECT AVG(price) price_avg FROM products;
SELECT SUM(price) price_sum FROM products;

22. Numără câte produse sunt în tabelă

SELECT COUNT(*) as nr FROM products;

23. Numără câți utilizatori sunt per localitate

SELECT location, COUNT(*) as nr FROM users
GROUP BY location
;

24. Selectează primele 5 produse ordonate după preț crescător

SELECT * FROM products 
ORDER BY price ASC
;

25. Care este valoarea maximă care se poate stoca în coloana price având tipul decimal(6,2)?

9999.99

26. Cum se șterg toate datele dintr-o tabelă?

TRUNCATE TABLE products;

27. Cum se caută un șir de caractere într-un câmp text?

SELECT * FROM products
WHERE title LIKE '%laptop%'
;

28. Care sunt cele mai folosite tipuri de date in MySQL?

INT(11), BIGINT
VARCHAR
TEXT
DATE,TIME, DATETIME

29. Care este rolul AUTO_INCREMENT-ului?

Crește valoare câmpului cu 1 la fiecare insert, asigurându-se că valorile coloanei sunt unice.

30. Ce se întâmplă cu AUTO_INCREMENT după ce se șterge un record din tabelă?

AUTO_INCREMENT-ul rămâne neschimbat.

31. Selectează produsele care sunt în stoc și au prețuri între 50-200.

SELECT * FROM products 
WHERE price >=50 
  AND price <=200
;
SELECT * FROM products 
WHERE price BETWEEN 50 AND 200
;

32. Selectează utilizatorii fără profil, adică să nu aibă corespondent în tabela user_profiles.

SELECT * FROM users
LEFT JOIN user_profiles ON users.id = user_profiles.user_id
WHERE user_profiles.id IS NULL
;
Categorii
programare web

10 cursuri pentru a deveni Junior Web Developer

În această perioadă cu toții avem suficient timp să învățăm ceva nou, să ne reprofilăm, sau pur și simplu să încercăm programarea web.

La o prima căutare pe orice rețea de socializare sau motor de căutare, vei găsi o mulțime de informații, și îți va fi foarte greu să iei o decizie cu ce anume să începi.

Am o veste bună pentru tine: am pregătit un roadmap / ghid despre cum poți să devii php developer / javascript developer într-un timp cât mai scurt. Poți parcurge singur acest roadmap sau cu prietenii. Dacă ai pe cineva lângă tine vei simți o provocare, vei vrea să devii mai bun și în același timp vei putea discuta provocările apărute. Dacă alegi să înveți singur, vei avea nevoie de multă ambiție, perseverență și de un laptop decent.

1. Bazele limbajului PHP

Primul pas este să învățăm bazele limbajului PHP, este important să știi ce este o variabilă, o instrucțiune, o funcție, noțiuni de OOP (programare orientată pe obiecte) și cum te poți conecta la o bază de date MySQL.

Îți recomand 2 siteuri:
www.php.net – Site oficial
w3schools.com – Este un site prietenos, unde și cel mai leneș poate învăța, pentru că sunt exerciții rezolvate și poți da click pe Try Now.

Totuși, te rog să rescrii toate exercițiile utilizând un editor de text (nu Microsoft Word) și să le salvezi în fișiere separate.

Pentru a rula script php ai nevoie de php instalat pe calculator. Pentru utilizatorii de Windows recomand XAMPP, WAMPP orice software similar, pe Linux avem LAMP iar pentru MacOS avem MAMP.

2. OOP în PHP – nivel avansat

Programarea orientată pe obiecte este o cerință importantă, majoritatea aplicațiilor fiind construite obiectual. OOP înseamnă ca funcționalitățile și variabilele le poți grupa în așa numite clase PHP. Un obiect este instanța unei clase.

Pe w3schools găsești mai multe informații și exemple aici, pentru manual OOP accesați siteul oficial PHP.

3. Laravel 6+

Laravel este un framework PHP stabil, rapid și ușor de învățat. Se pot construi atât aplicații simple cât și aplicații foarte complexe. Pentru baze de date folosește MySQL și are ORM propriu Eloquent. Prin Eloquent este foarte ușor să citești, să scrii, să editezi și să ștergi date.

Se instalează ușor, ai nevoie doar de composer – package manager pentru php. Prin composer instalezi tool-ul laravel, iar pentru un proiect nou rulezi comanda:

laravel new nume-proiect

Laravel are un tool mișto care se numește artisan și îți ușurează munca. Acest tool se rulează în linia de comandă, pentru asta, dacă ai Windows, neapărat să instalezi git bash.

4. REST API

Pe scurt, un API îți permite să comunici cu alte aplicații. De exemplu, majoritatea aplicațiilor mobile folosesc un API să interacționeze cu aplicația web/desktop și să trimită/primească informații din baza de date.

REST înseamnă Representational State Transfer.
API vine de la Application Programming Interface.

Sună complicat, de fapt sunt niște requesturi care returnează un JSON – obiect sub formă de string. Majoritatea limbajelor de programare cunosc acest format.

Cel mai bun site de unde poți afla mai multe este restfulapi.net .

5. jQuery + Ajax

jQuery este o librărie javascript care ne ușurează munca. Limbajul javascript este complex și greu de învățat, în jQuery același lucru este simplu și ușor de învățat. Dacă întrebi un programator web cu experiență, probabil că o să-ți spună să nu înveți/folosești jQuery. Dezavantajul este că e vorba de o librărie mare ca dimensiune și e relativ lent.

Eu totuși îți recomand, depinde de proiect, dacă folosești sau nu. De exemplu în Laravel avem inclus și configurat jQuery și framework de css Bootstrap.

AJAX vine de la Asynchronous Javascript and XML și înseamnă că poți să faci requesturi fără să reîncarci pagina de fiecare dată. Este un best practice de câțiva ani buni.

6. Javascript ES6+

Javascript-ul avansează constant, în fiecare an fiind adăugate funcționalități noi. Cele mai multe schimbări s-au întâmplat în 2015 când a fost introdus standardul ES6.

Este vorba despre javascript pur mai deștept, mai bine gândit, și din acest moment au început să se nască frameworkuri JS care permit să implementezi o aplicație server side în javascript.

7. NodeJS / ExpressJS / MongoDB / Rest API

Dacă ai studiat și ai înțeles primele 6 cursuri, urmează să construiești un REST API folosind NodeJS, framework-ul ExpressJS și MongoDB pentru bază de date. Pe scurt, MongoDB este o bază de dată tip document iar MySQL este o bază de date relațională.

Pentru acest curs îți recomand să folosești Visual Studio Code ca și editor text.

8. VueJS

VueJS este un framework Javascript popular, permite realizarea aplicațiilor complexe real-time. Sintaxa se învață într-un weekend și se poate integra în orice aplicație existentă în PHP.

Este conceput pentru SAP – single page application – dar se poate folosi și la alte tipuri de proiecte.

9. VueCli / VueRouter / Vuex

VueJS este un fișier js mic ca și dimensiune, din acest motiv anumite lipsesc anumite funcționalități de bază cu care te-ai obișnuit deja în framework-uri PHP, cum ar fi: tooluri in terminal, router, central storage.

VueCLI îți permite să creezi un schelet de aplicație care include câteva module javascript și setări.

Prin VueRouter poți să creezi multi page application.

Vuex stocheaza datele într-un loc centralizat.

10. VueJS / Laravel 6+

Framework-ul Laravel are pregătit tot pentru integrare VueJS. Tot ce ai de făcut este să-ți instalezi modulele javascript prin rularea comenzii:

npm install

Poți să folosești toate funcționalitățile din VueJS, VueRouter, Vuex. Eu personal cred că este cea mai bună combinație pentru a implementa o aplicație complexă real-time cu un API stabil.

Interviu de angajare

După ce ai parcurs și învățat învățat cele 10 cursuri în ordinea menționată, poți să începi pregătirea pentru angajare ca și programator web junior. Este important să ai un portofoliu cât mai mare și cu multe funcționalități.

Dacă nu-ți place să înveți singur sau dorești să înveți într-un ritm mai rapid, scrie-mi un email sau contactează-mă pe whatsapp.