izmenjena prezentacija sql

30
SQL Vežbe V

Upload: milos-petropoljac

Post on 22-Jun-2015

790 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Izmenjena prezentacija sql

SQLVežbe V

Page 2: Izmenjena prezentacija sql

CREATE DATABASECREATE DATABASE naziv-baze-podataka

[ ON < filespec > [ ,...n ] ] [ LOG ON < filespec > [ ,...n ] ]

< filespec > ::= ( [ NAME = logical_file_name , ]     FILENAME = 'os_file_name'

    [ , SIZE = size ]     [ , MAXSIZE = { max_size | UNLIMITED } ]      [ , FILEGROWTH = growth_increment ] ) [ ,...n ] )

Page 3: Izmenjena prezentacija sql

Primer

CREATE DATABASE student ON ( NAME = ’stud_sl_pod’, FILENAME = 'C:\Program Files\Microsoft SQL Server\

MSSQL.1\ MSSQL\Data\student.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )LOG ON

( NAME = 'stud_sl_log', FILENAME = 'C:\Program Files\Microsoft SQL

Server\MSSQL.1\MSSQL\Data\student.ldf’, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )

Tip datoteke Ekstenzija

Primarna datoteka podataka

.mdf

Sekundarne datoteke podataka

.ndf

Transakcioni log fajl .ldf

Page 4: Izmenjena prezentacija sql

CREATE DATABASE sajt ON(NAME='sajt_pod',FILENAME=‘D:\procedura\sajt.mdf')LOG ON(NAME='sajt_log',FILENAME=‘D:\procedura\sajt.ldf')

Page 5: Izmenjena prezentacija sql

ALTER DATABASEALTER DATABASE database_name

{ ADD FILE < filespec > [ ,...n ] | ADD LOG FILE < filespec > [ ,...n ] | REMOVE FILE logical_file_name | MODIFY FILE < filespec > | MODIFY NAME = new_dbname

| SET < optionspec > [ ,...n ] [ WITH < termination > ]}

< optionspec > = < state_option >

| < cursor_option > | < auto_option > | < sql_option > | < recovery_option >

     < state_option > =        { SINGLE_USER | RESTRICTED_USER | MULTI_USER }       | { OFFLINE | ONLINE }        | { READ_ONLY | READ_WRITE }

Page 6: Izmenjena prezentacija sql

Primer

ALTER DATABASE studentADD FILE ( NAME = 'Stud_sl_pod2', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\student.ndf', SIZE = 5MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10% )

Page 7: Izmenjena prezentacija sql

DROP DATABASE

DROP DATABASE database_name [ ,...n ]USE database_name

Page 8: Izmenjena prezentacija sql

Naredbe SQL-a

• Naredbe vezane za šemu baze podataka CREATE, ALTER, DROP

• Naredbe vezane za podatke INSERT, BULK INSERT, UPDATE, SELECT, DELETE

• Naredbe vezane za transakcije COMMIT, ROLLBACK

• Naredbe vezane za kontrolu CALL, RETURN

• Naredbe vezane za sesije SET

Page 9: Izmenjena prezentacija sql

Tabele i kolone – Osnovna svojstva

•Bazna tabela – tabela čiji se podaci smeštaju u bazu podataka

•Tabela pogleda – imenovani upit koji se može pozvati korišćenjem datog imena

•Izvedena tabela – rezultat izvršavanja upita

Page 10: Izmenjena prezentacija sql

SQL TIPOVI PODATAKA

• Binarni BIT, BIT VARYING, BLOB

• Datumski DATE, TIME

• Logički BOOLEAN

• Numerički▫ tačni

INT, SMALLINT, DEC▫ približni

REAL, FLOAT

• Tekstualni CHAR, VARCHAR, CLOB

Page 11: Izmenjena prezentacija sql
Page 12: Izmenjena prezentacija sql

CREATE TABLE

CREATE TABLE naziv-tabele ( def.-kolone-1,..., [ def.-ograničenja-na-nivou-tabele-1, ...] )

Definicija-kolonenaziv-kolone tip-podatka [DEFAULT klauzula] [def.-ograničenja-na-

nivou-kolone]Definicija-ograničenja-na-nivou-kolone[NOT NULL] [UNIQUE | DISTINCT] [PRIMARY KEY]

[REFERENCES klauzula] [CHECK klauzula]REFERENCES naziv-tabele [(naziv-kolone-1)]CHECK (uslov)Definicija-ograničenja-na-nivou-tabele[UNIQUE|DISTINCT (naziv-kol-1, ...)] [PRIMARY KEY (naziv-kol-

1, ...)] [FOREIGN KEY (naziv-kol-1, ...) REFERENCES klauzula] [CHECK klauzula]

Page 13: Izmenjena prezentacija sql

PrimerCREATE TABLE student (bro_dos CHAR(10) PRIMARY KEY, pre_stu VARCHAR(20) NOT NULL, ime_stu VARCHAR(20) NOT NULL, pol_stu CHAR(1) DEFAULT 'z' CONSTRAINT stud_c_po CHECK (pol_stu IN ('z','m')), dat_rod_stu SMALLDATETIME NOT NULL)

CREATE TABLE upis (bro_dos CHAR(10) CONSTRAINT upis_r_bd REFERENCES student, sko_god SMALLINT CONSTRAINT upis_c_sg CHECK (sko_god BETWEEN 1970 AND 2010), god_stu SMALLINT CONSTRAINT upis_c_gs CHECK (god_stu BETWEEN 1 AND 4), nac_fin CHAR(1) CONSTRAINT upis_c_ns CHECK (nac_fin='b' OR nac_fin='s'), CONSTRAINT upis_pk PRIMARY KEY (bro_dos, sko_god))

CREATE TABLE ispit

(bro_dos CHAR(10) CONSTRAINT ispit_r_bd REFERENCES student, sko_god SMALLINT CHECK (sko_god BETWEEN 1970 AND 2010), isp_rok SMALLINT CHECK (isp_rok BETWEEN 1 AND 13), sif_pre SMALLINT, ocena SMALLINT CHECK (ocena BETWEEN 5 AND 10 ), dat_isp SMALLDATETIME, PRIMARY KEY (bro_dos, sko_god, isp_rok, sif_pre))

Page 14: Izmenjena prezentacija sql

ALTER TABLEALTER TABLE naziv-tabele [ADD klauzula] [DROP klauzula] [ALTER

klauzula] ADD klauzulaADD naziv-kolone tip-podatka [DEFAULT klauzula] [def.-

ograničenja-na-nivou-kolone] [BEFORE naziv-kolone]ADD [UNIQUE|DISTINCT (naziv-kol-1, ...)] [PRIMARY KEY (naziv-

kol-1, ...)] [FOREIGN KEY (naziv-kol-1, ...) REFERENCES klauzula] [CHECK klauzula]

DROP klauzulaDROP naziv-koloneDROP naziv-ograničenjaALTER klauzulaALTER naziv-kolone tip-podatka [DEFAULT klauzula] [def.-

ogranicenja-na-nivou-kolone]

Page 15: Izmenjena prezentacija sql

Primer

ALTER TABLE upis ADD dat_up SMALLDATETIME

ALTER TABLE ispit DROP CONSTRAINT ispit_r_bd

ALTER TABLE ispit ADD FOREIGN KEY (bro_dos, sko_god) REFERENCES upis

Page 16: Izmenjena prezentacija sql

CREATE INDEX

CREATE [UNIQUE] [CLUSTER] INDEX naziv-indeksa ON naziv-tabele (naziv-kol-1 [DESC], ...)

Page 17: Izmenjena prezentacija sql

INSERT

INSERT [ INTO] { table_name| view_name }

[ ( column_list ) ] { VALUES ( { DEFAULT | NULL | expression } [ ,...n] )   | select_statement

 }

Page 18: Izmenjena prezentacija sql

INSERT INTO naziv-tabele [ (naziv-kolone-1, ...) ] VALUES klauzula | SELECT iskaz

VALUES klauzulaVALUES (NULL | broj | "string" | konstanta,

...)konstanta

USER | DATETIME | TODAY | CURRENT | ...

Page 19: Izmenjena prezentacija sql

BULK INSERT

BULK INSERT naziv_tabele FROM 'data_file' }

    [ WITH         (  [ CHECK_CONSTRAINTS ]             [ [ , ] FIELDTERMINATOR [ = 'field_terminator' ] ]             [ [ , ] FIRSTROW [ = first_row ] ]             [ [ , ] LASTROW [ = last_row ] ]             [ [ , ] ROWTERMINATOR [ = 'row_terminator' ] ] )     ]

Page 20: Izmenjena prezentacija sql

UPDATEUPDATE naziv-tabele SET klauzula [ WHERE uslov

]SET klauzulaSET naziv-kolone-1 = izraz | (SELECT iskaz) |

NULL, ... SET (naziv-kolone-1,...) = (izraz | (SELECT iskaz) |

NULL, ...)uslov[NOT] uslov-poredjenja-1 | uslov-sa-podupitom-1

[AND | OR [NOT] uslov-poredjenja-2, ...]]

Page 21: Izmenjena prezentacija sql

DELETE

DELETE naziv-tabele [ WHERE uslov ]

Page 22: Izmenjena prezentacija sql

USLOVIuslovi-poredjenjaizraz relacioni-operator izrazizraz [NOT] BETWEEN izraz

AND izrazizraz [NOT] IN (skup-

vrednosti)naziv-kolone IS [NOT] NULLnaziv-kolone [NOT] LIKE

string

uslovi-sa-podupitomizraz [NOT] IN (SELECT

iskaz)[NOT] EXISTS (SELECT

iskaz)izraz rel.-op. ALL | ANY |

SOME (SELECT iskaz)

Relacioni operatori: <, <=, >, >=, =, <>, !=

Page 23: Izmenjena prezentacija sql

MATCHES vs. LIKE

Page 24: Izmenjena prezentacija sql

SELECTSELECT klauzulaSELECT [ALL | DISTINCT | UNIQUE] izraz-1 [, izraz-2, ...]

izrazi{naziv-kolone | [naziv-tabele.]* | konstanta | agregatna-funkcija |

FROM klauzulaFROM [OUTER] naziv-tabele1 [,[OUTER] naziv-tabele2, ...]WHERE uslov

Page 25: Izmenjena prezentacija sql

GRANTGRANT db-privilegija TO {PUBLIC | lista-korisnika}GRANT tab-privilegija ON naziv-tabele TO {PUBLIC | lista-

korisnika} [WITH GRANT OPTION]GRANT EXECUTE ON naziv-procedure TO {PUBLIC | lista-

korisnika} [WITH GRANT OPTION] tab-privilegije db-privilegijeALTER CONNECTDELETE RESOURCEINDEX DBAINSERT SELECT [(naziv-kolone, ...)] UPDATE [(naziv-kolone, ...)] ALL  

Page 26: Izmenjena prezentacija sql

Primeri za GRANT

GRANT CREATE DATABASE, CREATE TABLE TO Marija, Jovan

GRANT SELECT (bro_dos, pre_stu, ime_stu) ON student TO public

Page 27: Izmenjena prezentacija sql

REVOKE

REVOKE tab-privilegija ON naziv-tabele FROM {PUBLIC | lista-korisnika}

REVOKE db-privilegija FROM {PUBLIC | lista-korisnika}

 REVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ] REVOKE [ GRANT OPTION FOR ] { ALL | permission [ ,...n ] }

    { [ ( column [ ,...n ] ) ] ON { table | view }          | ON { table | view } [ ( column [ ,...n ] ) ]          | ON { stored_procedure | extended_procedure }     }

{ TO | FROM } security_account [ ,...n ] [ CASCADE ]

Page 28: Izmenjena prezentacija sql

Primeri za REVOKE

REVOKE CREATE DATABASE, CREATE TABLE TO Marija, Jovan

REVOKE SELECT ON student FROM Marija

Page 29: Izmenjena prezentacija sql

DENYDENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ]DENY { ALL | permission [ ,...n ] }

    { [ ( column [ ,...n ] ) ] ON { table | view }          | ON { table | view } [ ( column [ ,...n ] ) ]          | ON { stored_procedure | extended_procedure }     }

TO security_account [ ,...n ] [ CASCADE ]

DENY CREATE DATABASE, CREATE TABLE TO Marija, Jovan

DENY INSERT, UPDATE, DELETE ON student TO Studenti

Page 30: Izmenjena prezentacija sql

TRANSAKCIJE

BEGIN TRAN[SACTION] [ transaction_name ]

COMMIT [ TRAN[SACTION] [ transaction_name ] ]

ROLLBACK [ TRAN[SACTION] [ transaction_name ] ]