0% found this document useful (0 votes)
41 views8 pages

Sheet 3 SQL

Uploaded by

Ramy Elbasha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views8 pages

Sheet 3 SQL

Uploaded by

Ramy Elbasha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

SQL Server Sheet 3

7- Alter Table Statement

‫ عشان اغير في الهيكل او الجدول مش تعديل علي البيانات – يعني مثال بعد ما عملت جدول‬alter ‫بستخدم‬
data type ‫ اغير حجمه او ال‬column ‫ نسيته او اعدل في مواصفات ال‬column ‫لقيت اني محتاجة ازود‬
‫ زيادة و عايزة‬column ‫ او اصال زودت‬rename ‫ او اشيلها او اعمل السمه‬null ‫او ازود انه يكون‬
‫ خالص مش محتجاه‬constraint ‫ علي جدول معين او امسح‬constraint ‫امسحه – او كمان عايزة ازود‬

ADD column

ALTER TABLE table_name


ADD column_name data_type column_constraint;

‫**ممكن نزود واحد او اكتر‬


ALTER TABLE table_name
ADD column_name1 data_type1 column_constraint1;
ADD column_name2 data_type2 column_constraint2;
ADD column_name3 data_type3 column_constraint3;

MODIFY column

ALTER TABLE table_name


ALTER COLUMN column_name new_data_type(new_size);

ALTER TABLE table_name


ALTER COLUMN column_name new_data_type(new_size) NULL;

ALTER TABLE table_name


ALTER COLUMN column_name new_data_type(new_size) NOT
NULL;

‫ او العكس الزم يكون الجدول فاضي من غير بيانات‬INT ‫ ل‬VARCHAR ‫ من‬data type ‫** لو محتاج تغير نوع ال‬

DROP column

ALTER TABLE table_name


DROP COLUMN column_name;

DROP TABLE table_name; ‫** انما عشان تمسح الجدول كله‬

Prepared by: Asmaa Zakria


SQL Server Sheet 3

ADD constraint

UNIQUE

ALTER TABLE table_name


ADD CONSTRAINT constraint_name UNIQUE (column_name);

PRIMARY key

ALTER TABLE table_name


ADD CONSTRAINT constraint_name PRIMARY KEY
(column_name);

FOREIGN key

ALTER TABLE child_table_name foreign key


ADD CONSTRAINT constraint_name PRIMARY KEY
(column_name)
REFERENCES parent_table_name (parent_column_name);

DROP constraint

ALTER TABLE table_name


DROP CONSTRAINT constraint_name;

RENAM table

EXEC sp_rename 'old_table_name', 'new_table_name';

‫ جاهزة عشان‬function ‫ دي‬sp_rename ‫ اسمها‬sql server ‫ في ال‬build in ‫ جاهزة‬stored procedures ‫** في‬
execute ‫ تتنفذ بنكتب قبلها‬stored procedures ‫اي‬

RENAM column

EXEC sp_rename 'table_name.column_name',


'new_column_name', 'object_type_name';

'COLUMN' ‫ ف هزود في االخر‬column ‫ اللي عايزة اغير اسمه هنا انا بغير اسم ال‬object ‫** بحدد نوع ال‬

Prepared by: Asmaa Zakria


SQL Server Sheet 3

REMEMBER again :

- Structured Query Language (SQL) is the database language that is used to


perform certain operations on the existing database and also we can use this
language to create a database.

- SQL commands are mainly categorized into four categories as:


o DDL – Data Definition Language
o DML – Data Manipulation Language
o DQL – Data Query Language
o DCL – Data Control Language

- DDL or Data Definition Language actually consists of the SQL commands


that can be used to define the database schema. It simply deals with
descriptions of the database schema and is used to create and modify the
structure of database objects in the database.
- DDL is a set of SQL commands used to create, modify, and delete
database structures but not data. These commands are normally not used
by a general user, who should be accessing the database via an
application.

List of DDL commands:

- CREATE: This command is used to create the database or its objects


(like table, index, function, views, store procedure, and triggers).
- DROP: This command is used to delete objects from the database.
- ALTER: This is used to alter the structure of the database.
- TRUNCATE: This is used to remove all records from a table, including all
spaces allocated for the records are removed.
- CREATE INDEX: this is used to create indexes in tables. Indexes are used
to retrieve data from the database more quickly than otherwise. The users
cannot see the indexes; they are just used to speed up searches/queries.

1- Here is the schema of a company database, please implement it on any RDBMS


you like (only structure do not insert data)

Prepared by: Asmaa Zakria


SQL Server Sheet 3

Prepared by: Asmaa Zakria


SQL Server Sheet 3

Prepared by: Asmaa Zakria


SQL Server Sheet 3

2- Here is the schema of a Bike Stores, please implement it on any RDBMS you like.

Solution:

-- create schemas
CREATE SCHEMA production;
go

CREATE SCHEMA sales;


go

-- create tables
CREATE TABLE production.categories (
category_id INT IDENTITY (1, 1) PRIMARY KEY,
category_name VARCHAR (255) NOT NULL
);

CREATE TABLE production.brands (


brand_id INT IDENTITY (1, 1) PRIMARY KEY,
brand_name VARCHAR (255) NOT NULL
);

Prepared by: Asmaa Zakria


SQL Server Sheet 3

CREATE TABLE production.products (


product_id INT IDENTITY (1, 1) PRIMARY KEY,
product_name VARCHAR (255) NOT NULL,
brand_id INT NOT NULL,
category_id INT NOT NULL,
model_year SMALLINT NOT NULL,
list_price DECIMAL (10, 2) NOT NULL,
FOREIGN KEY (category_id) REFERENCES production.categories (category_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (brand_id) REFERENCES production.brands (brand_id) ON DELETE
CASCADE ON UPDATE CASCADE
);

CREATE TABLE sales.customers (


customer_id INT IDENTITY (1, 1) PRIMARY KEY,
first_name VARCHAR (255) NOT NULL,
last_name VARCHAR (255) NOT NULL,
phone VARCHAR (25),
email VARCHAR (255) NOT NULL,
street VARCHAR (255),
city VARCHAR (50),
state VARCHAR (25),
zip_code VARCHAR (5)
);

CREATE TABLE sales.stores (


store_id INT IDENTITY (1, 1) PRIMARY KEY,
store_name VARCHAR (255) NOT NULL,
phone VARCHAR (25),
email VARCHAR (255),
street VARCHAR (255),
city VARCHAR (255),
state VARCHAR (10),
zip_code VARCHAR (5)
);

CREATE TABLE sales.staffs (


staff_id INT IDENTITY (1, 1) PRIMARY KEY,
first_name VARCHAR (50) NOT NULL,
last_name VARCHAR (50) NOT NULL,
email VARCHAR (255) NOT NULL UNIQUE,
phone VARCHAR (25),
active tinyint NOT NULL,
store_id INT NOT NULL,
manager_id INT,
FOREIGN KEY (store_id) REFERENCES sales.stores (store_id) ON DELETE
CASCADE ON UPDATE CASCADE,

Prepared by: Asmaa Zakria


SQL Server Sheet 3
FOREIGN KEY (manager_id) REFERENCES sales.staffs (staff_id) ON DELETE NO
ACTION ON UPDATE NO ACTION
);

CREATE TABLE sales.orders (


order_id INT IDENTITY (1, 1) PRIMARY KEY,
customer_id INT,
order_status tinyint NOT NULL,

-- Order status: 1 = Pending; 2 = Processing; 3 = Rejected; 4 = Completed


order_date DATE NOT NULL,
required_date DATE NOT NULL,
shipped_date DATE,
store_id INT NOT NULL,
staff_id INT NOT NULL,
FOREIGN KEY (customer_id) REFERENCES sales.customers (customer_id) ON
DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (store_id) REFERENCES sales.stores (store_id) ON DELETE
CASCADE ON UPDATE CASCADE,
FOREIGN KEY (staff_id) REFERENCES sales.staffs (staff_id) ON DELETE NO
ACTION ON UPDATE NO ACTION
);

CREATE TABLE sales.order_items (


order_id INT,
item_id INT,
product_id INT NOT NULL,
quantity INT NOT NULL,
list_price DECIMAL (10, 2) NOT NULL,
discount DECIMAL (4, 2) NOT NULL DEFAULT 0,
PRIMARY KEY (order_id, item_id),
FOREIGN KEY (order_id) REFERENCES sales.orders (order_id) ON DELETE
CASCADE ON UPDATE CASCADE,
FOREIGN KEY (product_id) REFERENCES production.products (product_id) ON
DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE production.stocks (


store_id INT,
product_id INT,
quantity INT,
PRIMARY KEY (store_id, product_id),
FOREIGN KEY (store_id) REFERENCES sales.stores (store_id) ON DELETE
CASCADE ON UPDATE CASCADE,
FOREIGN KEY (product_id) REFERENCES production.products (product_id) ON
DELETE CASCADE ON UPDATE CASCADE
);

Prepared by: Asmaa Zakria

You might also like