baze podataka vezbe v za net - university of novi sad · • naredbe vezane za šemu baze podataka...
TRANSCRIPT
SQLVežbe V
CREATE DATABASE
CREATE 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 ] )
Primer
CREATE DATABASE student
ON
( NAME = ’stud_sl_pod’,
FILENAME = 'C:\Program Files\Microsoft SQL //UNETI SVOJU PUTANJU
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
CREATE DATABASE sajt ON
(NAME='sajt_pod',
FILENAME=‘D:\procedura\sajt.mdf')
LOG ON
(NAME='sajt_log',
FILENAME=‘D:\procedura\sajt.ldf')
ALTER DATABASE
ALTER 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 }
Primer
ALTER DATABASE student
ADD FILE
( NAME = Stud_sl_pod2,
FILENAME = 'C:\Program Files\Microsoft SQL
Server\MSSQL.1\MSSQL\Data\student.ndf',
SIZE = 5MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10% )
DROP DATABASE
DROP DATABASE database_name [ ,...n ]
USE database_name
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
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
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
CREATE TABLE
CREATE TABLE naziv-tabele ( def.-kolone-1,..., [ def.-ograničenja-na-nivou-tabele-1, ...] )
Definicija-kolone
naziv-kolone tip-podatka [DEFAULT klauzula] [def.-ograničenja-na-nivou-kolone]
Definicija-ograničenja-na-nivou-kolone
[NOT NULL] [UNIQUE ] [PRIMARY KEY] [REFERENCES klauzula] [CHECK klauzula]
REFERENCES naziv-tabele [(naziv-kolone-1)]
CHECK (uslov)
Definicija-ograničenja-na-nivou-tabele
[UNIQUE(naziv-kol-1, ...)] [PRIMARY KEY (naziv-kol-1, ...)] [FOREIGN KEY (naziv-kol-1, ...) REFERENCES klauzula] [CHECK klauzula]
Primer
CREATE TABLE student(bro_dos CHAR(10) PRIMARY KEY,pre_stu CHAR(25) NOT NULL,ime_stu CHAR(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_c_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) 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,sif_nas CHAR(6),ocena SMALLINT CHECK (ocena BETWEEN 5 AND 10 OR ocena=1),dat_isp SMALLDATETIME,PRIMARY KEY (bro_dos, sko_god, isp_rok, sif_pre))
ALTER TABLE
ALTER TABLE naziv-tabele [ADD klauzula] [DROP klauzula] [ALTER klauzula]
ADD klauzula
ADD naziv-kolone tip-podatka [DEFAULT klauzula] [def.-ograničenja-na-nivou-kolone] [BEFORE naziv-kolone]
ADD [UNIQUE (naziv-kol-1, ...)] [PRIMARY KEY (naziv-kol-1, ...)] [FOREIGN KEY (naziv-kol-1, ...) REFERENCES klauzula] [CHECK klauzula]
DROP klauzula
DROP COLUMN naziv-kolone
DROP CONSTRAINT naziv-ograničenja
ALTER klauzula
ALTER COLUMN naziv-kolone tip-podatka [DEFAULT klauzula] [def.-ograničenja-na-nivou-kolone]
Primer
ALTER TABLE upis ADD vrs_upi SMALLINT
ALTER TABLE ispit DROP CONSTRAINT ispit_r_bd
ALTER TABLE ispit ADD FOREIGN KEY (bro_dos, sko_god) REFERENCES upis
CREATE INDEX
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX naziv-indeksa ON naziv-tabele (naziv-kol-1 [DESC], ...)
DROP INDEX naziv-indeksa on naziv-tabele
INSERT INTO naziv-tabele [ (naziv-kolone-1, ...) ] VALUES klauzula | SELECT iskaz
VALUES klauzula
VALUES (NULL | broj | "string" | konstanta, ...)
konstanta
USER | CURRENT | ...
BULK INSERT
BULK INSERT naziv_tabele
FROM 'data_file' }[ WITH ( [ CHECK_CONSTRAINTS ] [ [ , ] FIELDTERMINATOR [ =
'field_terminator' ] ] [ [ , ] FIRSTROW [ = first_row ] ] [ [ , ] LASTROW [ = last_row ] ] [ [ , ] ROWTERMINATOR [ =
'row_terminator' ] ] ) ]
DELETE
DELETE [FROM] naziv-tabele [ WHERE uslov ]