Presentation is loading. Please wait.

Presentation is loading. Please wait.

C1. SQL BAsic.

Similar presentations


Presentation on theme: "C1. SQL BAsic."— Presentation transcript:

1 C1. SQL BAsic

2 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 in good company 13/1/19

3 ddl CREATE TABLE Studenti( nrMatricol int NOT NULL,
   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 ) in good company 13/1/19

4 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 in good company 13/1/19

5 ddl (Cont) ALTER TABLE Studenti ADD nationalitate varchar(30) ADD CONSTRAINT PK_nrMatricol primary key (nrMatricol) ALTER COLUMN initialaTatalui varchar(5) in good company 13/1/19

6 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 in good company 13/1/19

7 DMl insert into Grupe select grupa, specializare from Studenti
INSERT INTO Studenti ( nrMatricol ,nume ,initialaTatalui ,prenume ,facultate insert into Grupe ,specializare ,grupa select grupa, specializare ,nationalitate) VALUES from Studenti ( 12546 ,'Georgescu' ,'A' ,'Maria' ,'MI' ,'info-ro' ,122 ,'romana') in good company 13/1/19

8 Dml (Cont) update Studenti set nrMatricol = nrMatricol+1 set nume = 'Ionnica' where nrMatricol = 9546 in good company 13/1/19

9 Dml (Cont) The difference between truncate and delete
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. in good company 13/1/19

10 Dml (Cont) SELECT nrMatricol ,nume ,initialaTatalui ,prenume ,facultate ,specializare ,grupa ,nationalitate FROM Studenti WHERE nrmatricol = WHERE grupa = 123 WHERE nationalitate is null WHERE prenume like 'V%' WHERE specializare like '%ro' in good company 13/1/19

11 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. in good company 13/1/19

12 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 in good company 13/1/19

13 Common Table Expressions (cte)
WITH expression_name [ ( column_name [,...n] ) ] AS ( CTE_query_definition ) Recursive queries using CTE WITH cte_name ( column_name [,...n] ) AS ( CTE_query_definition –- Anchor member is defined. UNION ALL CTE_query_definition –- Recursive member is defined referencing cte_name. ) Statement using the CTE SELECT * FROM cte_name in good company 13/1/19

14 CTE - example (Cont) USE AdventureWorks2008; GO WITH DirectReports (ManagerID, EmployeeID, Title, DeptID, Level) AS ( -- Anchor member definition SELECT e.ManagerID, e.EmployeeID, e.Title, edh.DepartmentID, 0 AS Level FROM HumanResources.Employee AS e INNER JOIN HumanResources.EmployeeDepartmentHistory AS edh ON e.EmployeeID = edh.EmployeeID AND edh.EndDate IS NULL WHERE ManagerID IS NULL UNION ALL -- Recursive member definition SELECT e.ManagerID, e.EmployeeID, e.Title, edh.DepartmentID, Level + 1 INNER JOIN HumanResources.EmployeeDepartmentHistory AS edh ON e.EmployeeID = edh.EmployeeID AND edh.EndDate IS NULL INNER JOIN DirectReports AS d ON e.ManagerID = d.EmployeeID) - Statement that executes the CTE SELECT ManagerID, EmployeeID, Title, DeptID, Level FROM DirectReports INNER JOIN HumanResources.Department AS dp ON DirectReports.DeptID = dp.DepartmentID WHERE dp.GroupName = N'Sales and Marketing' OR Level = 0 in good company 13/1/19

15 Stored procedure 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 in good company 13/1/19

16 cursor DECLARE cursor_name CURSOR FOR select_statement OPEN cursor_name FETCH NEXT FROM cursor_name WHILE = 0 BEGIN … sql_statement END CLOSE cursor_name ; DEALLOCATE cursor_name; in good company 13/1/19

17 Q&a in good company 13/1/19


Download ppt "C1. SQL BAsic."

Similar presentations


Ads by Google