You are on page 1of 39

Web programiranje

SQL

dr Ðorđe Obradović

Singidunum Centar Novi Sad


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Uvod

Web programiranje – dr Ðorđe Obradović 2/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Uvod

• Baze podataka
• Sistemi za upravljanje podacima
• SQL jezik

Web programiranje – dr Ðorđe Obradović 3/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Baze podataka

Uređen skup različitih kolekcija međusobno povezanih podataka.

Web programiranje – dr Ðorđe Obradović 4/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Sistemi za upravljanje podacima

• relacioni modeli SQL


• hijerarhijski model
• mrežni model
• dokument orijentisani NoSQL

Web programiranje – dr Ðorđe Obradović 5/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SQL

Standardni upitni jezik

• create
• select
• insert
• update
• delete

Web programiranje – dr Ðorđe Obradović 6/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Sistemi za upravljanje podacima

Web programiranje – dr Ðorđe Obradović 7/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Relacioni

• MySQL
• Oracle
• PostgreSQL
• Microsoft SQL Server
• Microsoft Access

Web programiranje – dr Ðorđe Obradović 8/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Relacioni

Web programiranje – dr Ðorđe Obradović 9/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Ostali

• MongoDb
• ApacheHBASE
• Cassandra
• Redis
• Neo4j

Web programiranje – dr Ðorđe Obradović 10/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Ostali

Web programiranje – dr Ðorđe Obradović 11/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SQL

Web programiranje – dr Ðorđe Obradović 12/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Model podataka

Web programiranje – dr Ðorđe Obradović 13/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

CREATE - komanda
CREATE TABLE ‘Movies‘ (
‘moviesId‘ INT NOT NULL AUTO_INCREMENT,
‘imdb_id‘ VARCHAR(45) NULL,
‘title‘ VARCHAR(500) NULL,
‘budget‘ INT NULL,
‘popularity‘ DOUBLE NULL,
‘poster_path‘ VARCHAR(500) NULL,
‘release_date‘ DATE NULL,
‘revenue‘ DOUBLE NULL,
‘runtime‘ INT NULL,
‘vote_average‘ DOUBLE NULL,
‘vote_count‘ INT NULL,
PRIMARY KEY (‘moviesId‘))
Web programiranje – dr Ðorđe Obradović 14/39
Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

CREATE - komanda

CREATE TABLE ‘Genres‘ (


‘genresId‘ INT NOT NULL,
‘name‘ VARCHAR(255) NULL,
PRIMARY KEY (‘genresId‘))

Web programiranje – dr Ðorđe Obradović 15/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

CREATE - komanda

CREATE TABLE ‘MoviesGenres‘ (


‘id‘ INT NOT NULL AUTO_INCREMENT,
‘Genres_genresId‘ INT NOT NULL,
‘Movies_moviesId‘ INT NOT NULL,
PRIMARY KEY (‘id‘, ‘Genres_genresId‘, ‘Movies_moviesId‘),
INDEX ‘fk_MoviesGenres_Genres_idx‘ (‘Genres_genresId‘ ASC),
INDEX ‘fk_MoviesGenres_Movies1_idx‘ (‘Movies_moviesId‘ ASC),
CONSTRAINT ‘fk_MoviesGenres_Genres‘
FOREIGN KEY (‘Genres_genresId‘)
REFERENCES ‘mydb‘.‘Genres‘ (‘genresId‘)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT ‘fk_MoviesGenres_Movies1‘
FOREIGN KEY (‘Movies_moviesId‘)
REFERENCES ‘mydb‘.‘Movies‘ (‘moviesId‘)
ON DELETE NO ACTION
ON UPDATE NO ACTION)

Web programiranje – dr Ðorđe Obradović 16/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT

SELECT * FROM Movies;

Web programiranje – dr Ðorđe Obradović 17/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Movies WHERE title LIKE ’%alien%’;

Web programiranje – dr Ðorđe Obradović 18/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Movies WHERE title LIKE ’alien%’;

Web programiranje – dr Ðorđe Obradović 19/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Movies WHERE popularity>20;

Web programiranje – dr Ðorđe Obradović 20/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Movies WHERE popularity>20 ORDER BY popularity;

Web programiranje – dr Ðorđe Obradović 21/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Movies WHERE popularity>20 ORDER BY popularity DESC;

Web programiranje – dr Ðorđe Obradović 22/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT imdb_id, title
FROM Movies WHERE popularity>20 ORDER BY popularity DESC;

Web programiranje – dr Ðorđe Obradović 23/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Genres;

Web programiranje – dr Ðorđe Obradović 24/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Genres;

Web programiranje – dr Ðorđe Obradović 25/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM mydb.MoviesGenres
WHERE Movies_moviesId=1;

Web programiranje – dr Ðorđe Obradović 26/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT - Svi zanrovi filma čiji je moviesId=1


SELECT a.name FROM Genres a, MoviesGenres b
WHERE a.genresId=b.Genres_genresId AND Movies_moviesId=1;

Web programiranje – dr Ðorđe Obradović 27/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT - sve avanture sortirane po popularnosti


SELECT a.name, a.popularity FROM Movies a, MoviesGenres b
WHERE a.moviesId=b.Movies_moviesId AND Genres_genresId=12
ORDER BY a.popularity DESC;

Web programiranje – dr Ðorđe Obradović 28/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Genres;

Web programiranje – dr Ðorđe Obradović 29/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

INSERT

INSERT INTO Genres(genresId, name)VALUES(13, ’Avantura’);

Web programiranje – dr Ðorđe Obradović 30/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Genres;

Web programiranje – dr Ðorđe Obradović 31/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

UPDATE

UPDATE Genres SET name=’AVANTURA’ WHERE genresId=13;

Web programiranje – dr Ðorđe Obradović 32/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Genres;

Web programiranje – dr Ðorđe Obradović 33/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

DELETE

DELETE FROM Genres WHERE genresId=13;

Web programiranje – dr Ðorđe Obradović 34/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

SELECT
SELECT * FROM Genres;

Web programiranje – dr Ðorđe Obradović 35/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Korišćenje u PYTHON programskom jeziku

Web programiranje – dr Ðorđe Obradović 36/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Uvod

• Instalirati paket

import mysql.connector

Web programiranje – dr Ðorđe Obradović 37/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Konekcija između python app i baze

dbconfig = {
"host": ’localhost’,
"database" : "mydb",
"user" : "singi",
"password" : "Osnovna"
}

pool = mysql.connector.pooling.MySQLConnectionPool(
pool_name = "mypool", pool_size = 3, **dbconfig)

Web programiranje – dr Ðorđe Obradović 38/39


Uvod Sistemi za upravljanje podacima SQL Korišćenje u PYTHON programskom jeziku

Izvršavanje komandi

con = pool.get_connection()
cur = con.cursor(buffered=True)
cur.execute("""
INSERT INTO Genres(genresId, name)
VALUES(’{0}’, ’{1}’)""".format(
int(genre[’id’]), genre[’name’])
)
con.commit()
con.close()

Web programiranje – dr Ðorđe Obradović 39/39

You might also like