Date post: | 11-Jan-2016 |
Category: |
Documents |
Upload: | gervais-singleton |
View: | 225 times |
Download: | 2 times |
SQL Basics
SQL
SQL (Structured Query Language) is a special-purpose programming language designed from managing data in relational database management system
SQL Instrunctions can be grouped into different classes:
Date defininition language (DDL): create, alter, drop
Data manipulation language (DML):
Insert – insert new data into a database
Update – updates data in a database
Delete – deletes data from a database
Select – extracts data from a database
2
Data definition language (DDL)
CREATE TABLE Studenti(
nrMatricol int NOT NULL,
nume varchar(20) NULL,
initialaTatalui varchar(3) NULL,
prenume varchar(30) NULL,
facultate varchar(10) NULL,
specializare varchar(10) NULL,
grupa int NULL
)
3
DDL (Cont)
CONSTRAINTS
NOT NULL - specifies that the column does not accept NULL values
PRIMARY KEY - constraints identify the column or set of columns that have values that uniquely identify
a row in a table
FOREIGN KEY - constraints identify and enforce the relationships between tables. You cannot insert a
row with a foreign key value, except NULL, if there is no candidate key with that value. The ON DELETE clause controls what actions are taken when you try to delete a row to which existing foreign keys point. The ON
DELETE clause has the following options: NO ACTION specifies that the deletion fails with an error; CASCADE specifies that all the
rows with foreign keys pointing to the deleted row are also deleted; SET NULL specifies that all rows with foreign keys pointing to the
deleted row are set to NULL; SET DEFAULT specifies that all rows with foreign keys pointing to the deleted row are set to their default
value
The ON UPDATE clause defines the actions that are taken if you try to update a candidate key value to which existing foreign keys point.
This clause also supports the NO ACTION, CASCADE, SET NULL and SET DEFAULT options.
UNIQUE - constraints enforce the uniqueness of the values in a set of columns
CHECK (P), where P is a predicate - constraints enforce domain integrity by limiting the values that can
be put in a column
4
DDL (Cont)
ALTER TABLE Studenti
ADD nationalitate varchar(30)
ALTER TABLE Studenti
ADD CONSTRAINT PK_nrMatricol primary key (nrMatricol)
ALTER TABLE Studenti
ALTER COLUMN initialaTatalui varchar(5)
5
DDL (Cont)
Drop table table_name Drop view schema_name.view_name Drop function schema_name.function_name Drop index index_name on object_name Drop trigger trigger_name on {database | all server} Drop database database_name Drop schema schema_name Drop role role_name Drop user user_name
6
Data manipulation language (DML)
INSERT INTO Studenti
( nrMatricol
,nume
,initialaTatalui
,prenume
,facultate
,specializare
,grupa
,nationalitate)
VALUES
( 12546
,'Georgescu'
,'A'
,'Maria'
,'MI'
,'info-ro'
,122
,'romana')
insert into Grupe
select grupa, specializare
from Studenti
7
DML (Cont)
update Studenti set nrMatricol =
nrMatricol+1
update Studenti set nume = 'Ionnica' where nrMatricol =
9546
8
DML (Cont)
DELETE FROM Studenti
WHERE nrmatricol < 10000
DELETE FROM Studenti
DELETE * FROM Studenti
TRUNCATE TABLE Studenti
The difference between truncate and delete removes all rows from a table the operation cannot be rolled back and no triggers will be fired is faster and doesn't use as much undo space as a DELETE. that the truncate resets auto increment column.
9
DML (Cont)
SELECT nrMatricol
,nume
,initialaTatalui
,prenume
,facultate
,specializare
,grupa
,nationalitate
FROM Studenti
WHERE nrmatricol = 12486
WHERE grupa = 123
WHERE nationalitate is null
WHERE prenume like 'V%'
WHERE specializare like '%ro'
10
DML (Cont)
IS NULL / IS NOT NULL – checks if the column is null or not BETWEEN – selects a range of data between two values. The values can be
numbers, text, or dates [val1, val2) EXISTS / NOT EXISTS – returns the value true if the argument subquery is
nonempty IN / NOT IN – operator allows you to specify multiple values in a WHERE
clause. LIKE / NOT LIKE – operator is used in a WHERE clause to search for a
specified pattern in a column; ‘%’ - matches any substring, ‘_’ - matches any character.
11
Aggregate Functions
Avg() – returns the average values Min() – returns the min value Max() – returns the max value Sum() – returns the average values Count() – returns the number of rows
12
Stored Procedures
CREATE PROC [ EDURE ] [ owner. ] procedure_name [ ; number ]
AS
sql_statement [ ...n ]
CREATE PROCEDURE au_info_all AS SELECT au_lname, au_fname, title, pub_name FROM authors a INNER JOIN titleauthor ta ON a.au_id = ta.au_id
INNER JOIN titles t ON t.title_id = ta.title_id INNER JOIN publishers p ON t.pu
EXEC au_info_allb_id = p.pub_id GO
13
Cursor
DECLARE cursor_name CURSOR
FOR select_statement
OPEN cursor_name
FETCH NEXT FROM curtor_name INTO @variable_column_name
WHILE @@FETCH_STATUS = 0 BEGIN
… sql_statement
FETCH NEXT FROM curtor_name INTO @variable_column_name
END
CLOSE cursor_name ;
DEALLOCATE cursor_name;
14