440 likes | 622 Views
SQL. SQL. Syntaks. SQL. SQL ( S tructured Q uery L anguage, uttales: sequel eller ess-que-ell ) er et komplett sett av kommandoer for aksess til en relasjons-database. SQL er i dag standard database-språk for relasjons-databaser.
E N D
SQL SQL Syntaks
SQL • SQL (Structured Query Language, uttales: sequel eller ess-que-ell)er et komplett sett av kommandoer for aksess til en relasjons-database. • SQLer i dag standard database-språk for relasjons-databaser. • SQLbenyttes til: - Opprette datase-tabeller - Lagre data - Gjenfinne data - Endre data - Endre tabell-strukturer - Kombinere og beregne data - Ta hånd om database-sikkerhet • SQLer mengde-orientert, dvs kan anvendes på en gruppe av recordseller enkelt-record. • SQLer ikke-prosedyrisk, men kan innebygges i prosedyre-språk.
Typer av SQL-kommandoer (1) • Data Definition Commands ( DDL ) • Data Manipulation Commands ( DML ) • Data Query Commands ( DQL ) • Transaction Control Commands • Data Administation Commands • Data Control Commands
Typer av SQL-kommandoer (2) • Data Definition Commands ( DDL )CREATE EVENTCREATE INDEXCREATE SYNONYMCREATE TABLECREATE TRIGGERCREATE VIEWPROCEDURE • Data Manipulation Commands ( DML )DELETEINSERTUPDATE • Data Query Commands ( DQL )SELECT
Typer av SQL-kommandoer (3) • Transaction Control CommandsCOMMITROLLBACKSAVEPOINT • Data Administration CommandsAUDIT MESSAGESTART AUDITSTOP AUDIT
Typer av SQL-kommandoer (4) • Data Control Commands (1)ALTER DATABASEALTER DBAREAALTER PASSWORDALTER STOGROUPALTER TABLEALTER TRIGGERCHECK DATABASECHECK TABLECOMMENT ON
Typer av SQL-kommandoer (5) • Data Control Commands (2)CREATE DATABASECREATE DBAREACREATE EVENTCREATE INDEXCREATE STOGROUPCREATE SYNONYMCREATE TABLECREATE TRIGGERCREATE VIEW
Typer av SQL-kommandoer (6) • Data Control Commands (3)DBATTRIBUTEDEINSTALL DATABASEDROP DBAREADROP EVENTDROP INDEXDROP STOGROUPDROP SYNONYMDROP TABLEDROP TRIGGERDROP VIEWGRANTGRANT EXECUTE ONINSTALL DATABASELABELLOADLOCK DATABASE
Typer av SQL-kommandoer (7) • Data Control Commands (4)REVOKEREVOKE EXECUTE ONROWCOUNTSET DEFAULT STOGROUPUNLOADUNLOCK DATABASEDUPDATE STATISTICS
CREATE TABLE Oppretter en tabell CREATE TABLE <TableName> (<ColumnName> <DataType>[<Size>], <ColumnName> <DataType>[<Size>], ...) Database Tabell_1 Tabell_2 Tabell_3
Data-typer ( SQLBase ) Char(length) Max 254 tegn VarChar(length) Max 254 tegn Long VarChar Vilkårlig lengde, tekst og binære data SmallInt [-32768, +32767] 5 siffer Integer [-2147483648, + 2147483647] 10 siffer Decimal[(prec, scale)] [-999....., + 999.....] 15 siffer precision: Totalt ant siffer (5 default) scale: Ant desimaler (0 default) Float[prec] Vilkårlig tall opp til 15 siffer totalt Number Vilkårlig tall opp til 15 siffer totalt DateTime Format Day.Time Day ant dager siden 10.12.1899 Time = Frac part (0 = 12:00 AM) TimeStamp Samme som DateTime (DB2 komp.) Date Time part = 0 Time Date part = 0
INSERT Innsetter en rad i en tabell INSERT table name view name , ( column name ) VALUES ( constant ) bind variable ADJUSTING cursor name system keyword subselect
SELECT SELECT SelectItem ALL , DISTINCT * FROM TableSpecification , WHERE SearchCondition GROUP BY GroupingColumn , HAVING SearchCondition ORDER BY SortSpecification ,
UPDATE Oppdaterer en tabell UPDATE table name view name correlation name SET column name = expression NULL WHERE search condition CHECK EXISTS CURRENT OF cursor name
DELETE Sletter rad(er) i en tabell DELETE table name view name correlation name WHERE search condition CURRENT OF cursor name
SQL Funksjoner • Aggregat funksjoner • String funksjoner • Date / Time funksjoner • Logiske funksjoner • Spesielle funksjoner • Matematikk funksjoner • Finans funksjoner
Aggregat-funksjoner AVG Gjennomsnitt COUNT Antall MAX Maksimum @MEDIAN Middelverdi MIN Minimum SUM Sum @SDV Standard avvik
String funksjoner @CHAR ASCII tegn til en desimal kode @CODE ASCII tegn til første tegn i en string @DECODE Returnerer en string, gitt et uttrykk @EXACT Sammenligner to stringer @FIND Posisjon til string1 i string2 @LEFT Første (venstre) substring @LENGTH Lengden av en string @LOWER Omgjøring til små bokstaver @MID Returnerer en string, gitt startpunkt @NULLVALUE Returnerer string/tall spesifisert ved y hvis x er NULL @PROPER Omgjøring av første bokstav i hvert ord til stor bokstav @REPEAT Konkatenering av en string med seg selv n ganger @REPLACE Erstatter tegn i en string @RIGHT Siste (høyre) substring @SCAN Søker en string etter gitt mønster @STRING Omgjøring av tall til string @SUBSTRING Returnerer en del av en string @TRIM Redusering av blanke tegn (innledende og multiple) @UPPER Omgjøring til store bokstaver @VALUE Omgjøring fra string til tall
Date / Time funksjoner @DATE Konvertering til dato @DATETOCHAR Edit en dato @DATEVALUE Edit en dato @DAY Dag i måneden @HOUR Time til en dag @MICROSECOND Mikrosekund @MINUTE Minutt i en time @MONTH Måneden i et år @MONTHBEG Første dag i en måned @NOW Gjeldende Date / Time @QUARTER Tall som representerer kvartal @QUARTERBEG Første dag i et kvartal @SECOND Sekunder av et minutt @TIME Returnerer date/time @TIMEVALUE Returnerer en date/time verdi fra hh:mm:ss @WEEKBEG Mandag av uke @WEEKDAY Dag av en uke @YEAR År relativt til 1900 @YEARBEG Første dag i året @YEARNO Kalender år
Matematikk funksjoner @ABS Absolutt-verdi @ACOS Arcus cosinus @ASIN Arcus sinus @ATAN Arcus tangens @ATAN2 To-kvadrant arcus tangens @COS Cosinus @EXP Eksponential-funksjon @FACTORIAL Fakultet @INT Heltallsdel @LN Naturlige logaritme @LOG 10’er logaritme @MOD Divisjonsrest @PI Tallet Pi (=3.14159265...) @ROUND Avrunding @SIN Sinus @SQRT Kvadratrot @TAN Tangens
Finans funksjoner @CTERM Antall perioder for å oppnå en fremtidig verdi @FV Fremtidig verdi av ekvidistante innbetalinger @PMT Periodiske innbetalinger ved nedbetaling @PV Verdi av ekvidistante innbetalinger @RATE Renter for å vokse til gitt beløp @SLN Rettlinjet verdi-foringelse @SYD Sum av et års verdi-foringelse @TERM Antall innbetalings-perioder for gitt investering
Spesielle funksjoner @CHOOSE Velger en verdi basert på korrelasjon @DECIMAL Desimal verdi av en hexadesimal string @DECRYPT Dekrypting av et passord @DECODE Returnerer en string, gitt et uttrykk @HEX Hexadesimal string fra et desimal-tall @LICS Sortering basert på internasjonalt tegn-sett
Logiske funksjoner @IF Tester og returnerer 1 hvis TRUE, 2 hvis FALSE @ISNA Returnerer TRUE hvis NULL
UNLOAD Laster data fra en database ut til en fil av gitt format UNLOAD SQL ‘file name’ source table COMPRESS DATA CONTROL ‘file name’ OVERWRITE ALL ASCII ‘file name’ source table DATA CONTROL ‘file name’ OVERWRITE DIF ‘file name’ source table DATA CONTROL ‘file name’ OVERWRITE DATABASE ‘file name’ COMPRESS SHEMA CONTROL ‘file name’ OVERWRITE ALL ON CLIENT LOG ‘logfile name’ SERVER
LOAD Laster data fra en fil av gitt format inn til en tabell i databasen LOAD SQL ‘file name’ COMPRESS CONTROL ‘file name’ ASCII ‘file name’ table name CONTROL ‘file name’ DIF ‘file name’ CONTROL ‘file name’ table name ON CLIENT LOG ‘logfile name’ START AT line SERVER
ALTER TABLE Endrer på kolonne-strukturen i en tabell ALTER TABLE table name , DROP column name ADD column name data type (size) NOT NULL NOT NULL WITH DEFAULT , RENAME column name new name TABLE new name , MODIFY column name data type (length) NULL NOT NULL NOT NULL WITH DEFAULT
ALTER TABLE (Referential Integrity) Endrer på PRIMARY KEY / FOREIGN KEY strukturen i en tabell ALTER TABLE table name , PRIMARY KEY ( column name ) DROP , , FOREIGN KEY ( column name ) REFERENCES parent table name DROP foreign key name ON DELETE RESTRICT CASCADE SET NULL
ALTER TABLE (Error Message) Endrer på USERERROR strukturen i en tabell ALTER TABLE table name ADD USERERROR error number DROP MODIFY FOR ‘DELETE_PARENT’ OF PRIMARY KEY ‘UPDATE_PARENT’ FOREIGN KEY key name ‘UPDATE_DEPENDENT’
ALTER TRIGGER Enable / Disable en trigger ALTER TRIGGER trigger name ENABLE DISABLE
COMMIT Commits alle endringene til databasen siden forrige COMMIT eller ROLLBACK. Commits gjelder alle SqlHandles / Cursors som gjeldende applikasjon har koblet opp mot databasen. COMMIT WORK TRANSACTION <id> FORCE
ROLLBACK Omgjør siste transaksjon ROLLBACK savepoint identifier TRANSACTION <id> FORCE
SAVEPOINT Genererer SAVEPOINT til bruk ved ROLLBACK SAVEPOINT savepoint identifier
CREATE INDEX Oppretter en indeks CREATE INDEX index name UNIQUE CLUSTERED HASHED , ON table name ( column name ) ASC DESC PCTFREE integer constant SIZE integer value ROWS BUCKETS Max size = 6 + number of + sum of <= 255 columns in length of all index columns in index
CREATE SYNONYM Oppretter synonym (alias) navn til en tabell CREATE SYNONYM synonym name PUBLIC FOR table name authorization ID view name
ROWCOUNT Returnerer antall rader i en tabell ROWCOUNT tablename
UNION Genererer resultatsett som union av multiple SELECT UNION ALL select command , ORDER BY integer constant ASC DESC SELECT … UNION ALL SELECT … UNION ALL SELECT … ... Duplikater blir ikke eliminert
UPDATE STATISTICS Oppdaterer statistikk-informasjon i databasen. Benyttes til å generere applikasjonsplan. UPDATE STATISTICS INDEX index name , SET system catalog column name = expression , DISTINCTCOUNT (index key) = expression TABLE , SET system catalog column name = expression DATABASE
Authority Level SYSADM DBA RESOURCE CONNECT
Database Authority , GRANT RESOURCE TO AuthID DBA , , CONNECT TO AuthID IDENTIFIED BY Password
Table Privileges , GRANT ALL SELECT INSERT DELETE INDEX ALTER UPDATE , ( ColumnName ) , , ON TableName TO AuthID ViewName PUBLIC
SAL funksjonalitet i SQLBase (1) SqlClearImmediate Disconnect Sql Handle benyttet av SqlImmediate SqlClose Lukker en navngitt cursor SqlCommit Commit gjeldende SQL transaksjon SqlConnect Connect en Sql Handle til en database SqlDisconnect Disconnect en Sql Handle fra en database SqlDropStoredCmd Sletter en lagret kommando eller lagret prosedyre SqlError Henter gjeldende error kode for gitt Sql Handle SqlExecute Eksekverer et SQL statement, lagret kommendo eller lagret prosedyre SqlExists Sjekker eksistens av spesifisert(e) rad(er) SqlFetchNext Henter neste rad i et resultatsett SqlFetchPrevious Henter forrige rad i et resultatsett SqlFetchRow Henter gitt rad i et resultatsett SqlGetErrorPosition Returnerer offset i en error innen et SQL statement SqlGetErrorText Returnerer error-tekst for et gitt SQL error number SqlGetModifiedRows Returnerer antall endrete rader i en INSERT, UPDATE eller DELETE SqlGetParameter Returnerer en databaseparameter SqlGetParameterAll Returnerer en databaseparameter SqlGetResultSetCount Returnerer antall rader i et resultatsett SqlGetRollbackFlag Returnerer database rollback flag
SAL funksjonalitet i SQLBase (2) SqlImmediate Kompilerer og eksekverer et SQL statement SqlOpen Navngir en cursor og eksekverer et SQL statement SqlPrepare Kompilerer et SQL statement eller ikke-lagret prosedyre SqlPrepareAndExecute Kompilerer og eksekverer et SQL statement eller ikke-lagret prosedyre SqlRetrieve Henter en lagret kommando eller lagret prosedyre SqlSetIsolationLevel Setter isolasjonsnivå SqlSetLockTimeout Setter timeout periode for venting på en lås SqlSetParameter Setter en database parameter SqlSetParameterAll Setter en database parameter SqlSetResultSet Setter resultatsett mode på/av SqlStor Kompilerer og lagrer en kommando eller prosedyre
Relaterte SQLTalk kommandoer ERASE Sletter en lagret kommando eller lagret prosedyre EXECUTE Eksekverer en lagret kommando eller lagret prosedyre PERFORM Eksekverer enten en preparert SQL kommando / lagret prosedyre eller gjenfinner en lagret kommando / lagret prosedyre PREPARE Kompilerer en SQL kommando eller ikke-lagret prosedyre SET TRACE Enable/Diasable statement tracing SET TRACEFILE Trace output til server-fil eller servers aktivitets-skjerm SHOW TRACE Viser enabling/disabling av TRACE SHOW TRACEFILE Viser trace output (server-fil eller aktivitets-skjerm) STORE Kompilerer og lagrer en kommando eller prosedyre i systemkatalogene (og dens eksekveringsplan for seinere eksekvering)