יצירת טבלאות SQL – ניתן להעזר בדוגמאות קוד אלו כדי לתרגל את יצירת הטבלאות, בנוסף הייתי ממליץ להעזר בפוסט הבא

-- DROP DATABASE testDB

CREATE DATABASE testDB
GO

USE testDB
GO

--------------------------
-- DDL
--------------------------

-------------------------
-- CREATE TABLE EX1
-------------------------

CREATE TABLE employees
(employeeID int,
 lastName varchar(25))

 DROP TABLE employees 

-------------------------
-- CREATE TABLE EX2 (IDENTITY / DEFAULT)
-------------------------

CREATE TABLE employees
(employeeID int IDENTITY(1,1) ,
 lastName varchar(25),
 salary money DEFAULT 4000 )

 INSERT INTO employees
 VALUES (1, 'yossi' , 6000)

 INSERT INTO employees
 VALUES ( 'yossi' , 6000)

 SELECT * FROM employees 

 -- Implicit Insert
 INSERT INTO employees
 VALUES ('moshe' , DEFAULT)
 -- Explicit Insert
 INSERT INTO employees (lastName)
 VALUES ('haim') 

 SELECT * FROM employees 

 DROP TABLE employees 

 -------------------------
-- CREATE TABLE EX3 (CONSTRAINTS)
-------------------------

-- NOT NULL 

DROP TABLE employees 

CREATE TABLE employees
(employeeID int  ,
 lastName varchar(25) NOT NULL ,
 salary money DEFAULT 4000 )

 INSERT INTO employees
 VALUES (1, NULL , 6000)

 -- UNIQUE 

 DROP TABLE employees 

CREATE TABLE employees
(employeeID int  ,
 lastName varchar(25) NOT NULL ,
 salary money DEFAULT 4000 ,
 phoneNumber varchar(25) UNIQUE)

 INSERT INTO employees
 VALUES (1, 'Moshe' , 6000 , '03-5555555') 

 INSERT INTO employees
 VALUES (2, 'Yossi' , 7000 , '03-5555555')

 -- PRIMARY KEY 

 DROP TABLE employees 

CREATE TABLE employees
(employeeID int PRIMARY KEY  ,
 lastName varchar(25) NOT NULL ,
 salary money DEFAULT 4000 ,
 phoneNumber varchar(25) UNIQUE)

 INSERT INTO employees
 VALUES (1, 'Moshe' , 6000 , '03-5555555')

 INSERT INTO employees
 VALUES (1, 'Yossi' , 7000 , '03-7777777')

 INSERT INTO employees
 VALUES (NULL, 'Yossi' , 7000 , '03-7777777')

 -- CHECK 1

DROP TABLE employees 

CREATE TABLE employees
(employeeID int PRIMARY KEY  ,
 lastName varchar(25) NOT NULL ,
 salary money DEFAULT 4000 CHECK (salary BETWEEN 0 AND 10000),
 phoneNumber varchar(25) UNIQUE)

  INSERT INTO employees
 VALUES (1, 'Moshe' , 10001 , '03-5555555')

  INSERT INTO employees
 VALUES (1, 'Moshe' , 9999 , '03-5555555')

 -- CHECK 2

DROP TABLE employees 

CREATE TABLE employees
(employeeID int PRIMARY KEY  ,
 lastName varchar(25) NOT NULL ,
 salary money DEFAULT 4000 CHECK (salary BETWEEN 0 AND 10000),
 phoneNumber varchar(25) UNIQUE ,
 email varchar(25) CHECK (email LIKE '%@gmail.com'))

 INSERT INTO employees
 VALUES (1, 'Moshe' , 9999 , '03-5555555' , 'moshe@walla.co.il')

 INSERT INTO employees
 VALUES (1, 'Moshe' , 9999 , '03-5555555' , 'moshe@gmail.com')

 -- FOREIGN KEY 

 DROP TABLE employees 

 CREATE TABLE departments
 (department_id int PRIMARY KEY,
  department_name varchar(25))

  INSERT INTO departments
  VALUES (50 , 'IT')

  INSERT INTO departments
  VALUES (60 , 'HR')

  INSERT INTO departments
  VALUES (70 , 'SA')

 CREATE TABLE employees
(employeeID int PRIMARY KEY  ,
 lastName varchar(25) NOT NULL ,
 salary money DEFAULT 4000 CHECK (salary BETWEEN 0 AND 10000),
 phoneNumber varchar(25) UNIQUE ,
 email varchar(25) CHECK (email LIKE '%@gmail.com'),
 department_id int REFERENCES departments (department_id))

 INSERT INTO employees
 VALUES (1, 'Moshe' , 9999 , '03-5555555' , 'moshe@gmail.com' , 50 )

 INSERT INTO employees
 VALUES (2, 'Yossi' , 9999 , '03-7777777' , 'yossi@gmail.com' , 999 )

 DELETE FROM departments
 WHERE department_id = 50 

 DELETE FROM departments
 WHERE department_id = 60