SALES
create database SALES;
use SALES
create table CUSTOMER
(
CustID varchar(12) not null primary key,
FirstName char(20) not null,
LastName char(20) not null,
City varchar(30) not null,
IndustryType char not null,
);
create table SALESPERSON
(
SP_ID varchar(10) not null primary key,
Name char(20) not null,
Gender char(6) not null check (Gender='Female' or
Gender='Male'),
Salary money,
);
create table ORDERS
(
Ord_No varchar(10) not null primary key,
OrderDate datetime,
SP_ID varchar(10) not null foreign key references
SALESPERSON(SP_ID),
CustID varchar(12) not null foreign key references
CUSTOMER(CustID),
Amount money,
);
alter table SALESPERSON
add Age int
use SALES
insert into SALESPERSON(SP_ID, Name, Gender, Salary, Age)
values('101', 'Hailu', 'Male', 1400, 51),
('102', 'Aster', 'Female', 2400, 44),
('103', 'Azeb', 'Female', 2000, 35),
('104', 'Muluken', 'Male', 2500, 31),
('105', 'Tigist', 'Female', 1500, 56),
('106', 'Meseret', 'Female', 2800, 28)
insert into CUSTOMER (CustID, FirstName, LastName, City,
IndustryTYpe)
values ('201', 'Hailu', 'Teshome', 'Bahirdar', 'P'),
('202', 'Aster', 'Abebe', 'Gondar', 'P'),
('203', 'Azeb', 'Bekele', 'Markos', 'H'),
('204', 'Rechard', 'Balie', 'Dessie', 'H')
insert into ORDERS(Ord_No, OrderDate, SP_ID, CustID, Amount)
values('1', '2000/05/02', '102', '201', 540),
('2', '2000/01/30', '105', '204', 1800),
('3', '2001/07/14', '101', '204', 460),
('4', '2003/01/29', '102', '203', 2400),
('5', '2003/02/03', '104', '202', 600),
('6', '2003/03/02', '104', '202', 720),
('7', '2003/05/06', '104', '204', 150)
use SALES
select Name, Gender, Salary
from SALESPERSON
where Gender='Female' and Salary>=2400
/* 8 <--- */
select Name, OrderDate
from SALESPERSON
left join ORDERS on SALESPERSON.SP_ID=ORDERS.SP_ID
left join CUSTOMER on ORDERS.CustID=CUSTOMER.CustID
where OrderDate is null
/*
Or
*/
select sp.Name from SALESPERSON sp Where sp.SP_ID NOT IN (
SELECT o.SP_ID FROM ORDERS o join CUSTOMER c on o.CustID =
c.CustID
);
/* ---> */
/* 9 */
SELECT sp.Name, sp.SP_ID, sp.Salary, sp.Gender
FROM SALESPERSON sp
JOIN Orders o ON sp.SP_ID = o.SP_ID
GROUP BY sp.Name, sp.SP_ID, sp.Salary, sp.Gender
HAVING COUNT(*) >= 2;
/* 10 */
delete from CUSTOMER where City='Dessie'
/* 11 */
backup database SALES to disk='E:\SALES_Backup.bak'
/* 12 */
restore database SALES from disk='E:\SALES_Backup.bak' with
replace
EFF
create database EFF;
use EFF
create table TEAM
(Team_Code varchar (20)not null primary key,
Team_Name varchar (40) not null,
Budget money not null
);
use EFF
insert into TEAM (Team_Code, Team_Name, Budget)
values ('A001', 'Arbaminch_Kenema', 50000),
('EC001','Ethiopian_Coffee F.C', 45000),
('AW001', 'Awassa_Kenema', 44000),
('D001', 'Dedebit F.C', 35000),
('DA001', 'Dashen F.C', 42000),
('DR001', 'DrieDawa F.C', 2900),
('AK001', 'Adama_Kenema F.C', 60000)
use EFF
insert into TEAM (Team_Code, Team_Name, Budget)
values ('BD001', 'Adama_Kenema', 60000)
select * from TEAM
alter table TEAM
set Player_No = 'P001' where Team_Code= 'A001'
set Player_FName = 'Ashenafi'
set Annual_Income = '13 Million' where Team_Code='AW001'
set Annual_Income = '10 Million' where Team_Code='BD001'
set Annual_Income = '11 Million' where Team_Code='D001'
set Annual_Income ='18 Million' where Team_Code= 'DA001'
set Annual_Income ='21 Million' where Team_Code= 'DR001'
set Annual_Income ='6 Million' where Team_Code='EC001'
Team_Name varchar (40) not null);
select Club_Name, Annual_Income, Player_No, Playing_StartDate
into _1NF from UNF
select * from Club3
select * from Club
select * from Player
select Player_FName
from Club
inner join Player on Club.Player_No=Player.Player_No
where Club_Name='Adama_Kenema F.C'
select Club_Name
from Club
inner join Player on Club.Player_No=Player.Player_No
where Annual_Income between 10000000 and 18000000
delete from Club
where Club_Name ='Adama_Kenema F.C' and Player_No='P008'
select Player_FName
from Club
inner join Player on Club.Player_No=Player.Player_No
where Playing_StartDate <= '5/2/1999'
insert into Club (Club_Name, Annual_Income, Player_No)
values ('Adama_Kenema F.C', 13000000, 'P008');
alter table Club
add Club_Id int identity (1,1) not null
delete from Club
where Club_Id=9
update Player
set Player_FName='Eliyas' where Player_FName='Ashenafi'
use EFF
create table UNF
(Club_Name varchar (40) not null,
Annual_Income money not null,
Player_No varchar (20),
Player_FName varchar (40) not null,
Goal int,
Playing_StartDate date not null);
create table Player
(Player_No varchar (20) not null primary key,
Player_FName varchar (40) not null,
Goal int,
Playing_StartDate date not null);
create table Club
(Club_Name varchar (40) not null primary key,
Annual_Income money,
Player_No varchar (20) not null foreign key (Player_No)
references Player (Player_No));
.use EFF
insert into UNF (Club_Name,
Annual_Income,Player_No,Player_FName, Goal, Playing_StartDate)
values
('Arbaminch_Kenema', 5000000,'P001', 'Ashenafi', 5, '2/2/2000'),
('Ethiopian_Coffee F.C', 12000000, 'P002', 'Jemal', 3,
'4/3/1950'),
('Awassa_Kenema',10000000, 'P003', 'Tariku', 3, '3/4/1970'),
('Dedebit F.C', 18000000,'P004', 'Dereje', 4, '5/2/1999'),
('Dashen F.C', 21000000, 'P005', 'Abebaw', 1, '6/7/1998'),
('DrieDawa F.C', 6000000, 'P006', 'Kedir', 2, '8/9/1960'),
('Adama_Kenema F.C',13000000, 'P007', 'Sisay', 5, '5/5/1950'),
('Adama_Kenema F.C', 13000000, 'P008', 'Oumed', 3, '10/1/1974');
insert into Player (Player_No,Player_FName, Goal,
Playing_StartDate)
values ('P001', 'Ashenafi', 5, '2/2/2000'),
('P002', 'Jemal', 3, '4/3/1950'),
('P003', 'Tariku', 3, '3/4/1970'),
('P004', 'Dereje', 4, '5/2/1999'),
('P005', 'Abebaw', 1, '6/7/1998'),
('P006', 'Kedir', 2, '8/9/1960'),
('P007', 'Sisay', 5, '5/5/1950'),
('P008', 'Oumed', 3, '10/1/1974');
insert into Club(Club_Name,Player_No, Annual_Income)
values ('Arbaminch_Kenema', 'P001', 5000000),
('Ethiopian_Coffee F.C', 'P002', 12000000),
('Awassa_Kenema','P003',10000000),
('Dedebit F.C','P004', 18000000),
('Dashen F.C','P005', 21000000),
('DrieDawa F.C', 'P006',6000000),
('Adama_Kenema F.C', 'P007', 13000000);
select * from UNF
select * from Club
select * from Player
alter table Player
drop column Annual_Income
alter table Player
alter column Player_No varchar (20) not null unique ,
Library
create database Library;
use Library
CREATE TABLE Employee(
[EmpID] int identity(1,1) NOT NULL,
[EID] nvarchar(15) NOT NULL,
[Name] nvarchar(30) NOT NULL,
[Sex] char(1) NOT NULL,
CONSTRAINT [PK_Emp] PRIMARY KEY([EmpID])
)
CREATE TABLE Book(
[BookID] int identity(1,1) NOT NULL,
[ISBN] nvarchar(15) NOT NULL,
[title] nvarchar(50) NOT NULL,
[author] nvarchar(50) NOT NULL,
[category] nvarchar(20) NOT NULL,
[publisher] nvarchar(30) NOT NULL,
[pubYear] nvarchar(4) NOT NULL,
CONSTRAINT [PK_Book] PRIMARY KEY([BookID])
)
CREATE TABLE audioVisual(
[AVID] int identity(1,1) NOT NULL,
[serial] nvarchar(15) NOT NULL,
[title] nvarchar(50) NOT NULL,
[pubYear] nvarchar(4) NOT NULL,
[length] int NOT NULL,
[mediaType] nvarchar(10) NOT NULL,
CONSTRAINT [PK_AV] PRIMARY KEY([AVID]),
)
CREATE TABLE Circulation(
[CrclID] int identity(1,1) NOT NULL,
[EmpID] int NOT NULL,
[BookID] int NOT NULL,
[AVID] int NOT NULL,
[StartDate] datetime NOT NULL,
[DueDate] datetime NOT NULL,
CONSTRAINT [PK_Crcl] PRIMARY KEY([CrclID]),
CONSTRAINT [FK_Crcl_Emp] FOREIGN KEY (EmpID) REFERENCES
Employee([EmpID]),
CONSTRAINT [FK_Crcl_Book] FOREIGN KEY (BookID) REFERENCES
Book([BookID]),
CONSTRAINT [FK_Crcl_AV] FOREIGN KEY (AVID) REFERENCES
audioVisual([AVID])
)
select * from Employee
select * from Book
select * from audioVisual
select * from Circulation
XYZ_CLINIC
create database XYZ_CLINIC;
use XYZ_CLINIC
create table DOCTOR
(
DID varchar (50) not null primary key,
DName varchar (50) not null,
DSex varchar(6) not null check (DSex='Female' or DSex='Male'),
DAge int null check (DAge>=18 or DAge<=40),
Specialization varchar (100) not null,
DSalary money check (DSalary>=5000)
);
create table PATIENT
(
PID varchar(50) not null primary key,
PName varchar (50) not null,
PAge int check (PAge<=150),
PSex varchar(6) not null check(PSex='Female' or PSex='Male')
);
create table APPOINTMENT
(
ApID int identity(1,1) primary key,
ApDate datetime,
DID varchar(50) not null foreign key references DOCTOR(DID),
PID varchar(50)not null foreign key references PATIENT(PID)
);
insert into DOCTOR (DID, DName,DSex,DAge, Specialization,
DSalary)
values ('XYZ111', 'Biniam', 'Male', 22, 'Surgeon', 10000),
('XYZ112', 'Elsa', 'Female', 20, 'Haematology', 8000),
('XYZ113', 'Belay', 'Male', 45, 'Denthiolgy', 15000)
insert into PATIENT (PID,PName,PAge,PSex)
values ('PX123', 'Daniel', 40, 'Male'),
('PX124', 'Alex', 35, 'Male'),
('PX125', 'Getaw', 50, 'Male')
insert into APPOINTMENT (ApDate,DID, PID)
values ('2014-04-16' , 'XYZ111', 'PX124'),
('2014-03-10' , 'XYZ112', 'PX124'),
('2014-06-20' , 'XYZ113', 'PX125')
update DOCTOR
set DSalary = DSalary+1500
select DName, ApDate
from DOCTOR
join APPOINTMENT on DOCTOR.DID=APPOINTMENT.DID
where ApDate ='2014-04-16'
select DName,DSex, Specialization, DSalary, ApDate
from DOCTOR
inner join APPOINTMENT on
DOCTOR.DID=APPOINTMENT.DID
where DSex='Female' and ApDate='2014-03-10'
select PName
from PATIENT
inner join APPOINTMENT on
PATIENT.PID = APPOINTMENT.PID
where PAge=35
select * from DOCTOR
SELECT COUNT(*) FROM DOCTOR WHERE DSalary > ANY(SELECT DSalary
FROM DOCTOR);
XYZ_COLLEGE
create database XYZ_COLLEGE;
use XYZ_COLLEGE
create table STUDENT
(
StudID varchar(10) not null primary key,
StudName char (30) not null,
StudSex char(6) not null default 'Female' check
(StudSex='Female'or StudSex='Male'),
BDate datetime not null,
Section char(6) null,
DeptName char(40) not null,
);
create table COURSE
(
CourseCode varchar (8) not null primary key,
CTitle char(40) not null,
Credit int,
);
create table GREPORT
(
SID varchar (10) not null foreign key references
STUDENT(StudID),
CCode varchar(8) not null foreign key references
COURSE(CourseCode),
Grade char(1) check(Grade='A' or Grade='B' or Grade='C' or
Grade='D' or Grade='F'),
);
alter table STUDENT
add EmailAddress char(25) null;
SELECT
[ForeignKey] = f.name
, [TableName] = OBJECT_NAME(f.parent_object_id),
COL_NAME(fc.parent_object_id,fc.parent_column_id)
, [ReferenceTableName] = OBJECT_NAME (f.referenced_object_id)
, ReferenceColumnName = COL_NAME(fc.referenced_object_id,
fc.referenced_column_id)
FROM
sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID =
fc.constraint_object_id
insert into STUDENT(StudID, StudName,StudSex,
BDate,Section,DeptName, EmailAddress)
values ('R101', 'Kiros', 'Male', '1980/02/20', 'Room1',
'Comuter Science', '
[email protected]'),
('R102', 'Mulu', 'Female', '1978/06/12', 'Room1', 'Comuter
Science', '
[email protected]'),
('R103', 'Getachew', 'Male', '1970/01/17', 'Room2', 'Electrical
Engineering', '
[email protected]'),
('R104', 'Melkamu', 'Male', '1973/09/10', 'Room1', 'Comuter
Science', '
[email protected]'),
('R105', 'Seble', 'Female', '1982/01/19', 'Room2', 'Electrical
Engineering', '
[email protected]')
insert into COURSE (CourseCode, CTitle, Credit)
values('ICT001', 'Calculus', 80),
('ICT002', 'Software', 140),
('ELEC003', 'Electrical Engineering', 200)
insert into GREPORT(SID,CCode, Grade)
values ('R101', 'ICT001', 'B'),
('R101', 'ICT002', 'C'),
('R102', 'ICT001', 'A'),
('R103', 'ELEC003', 'C'),
('R104', 'ICT001', 'B'),
('R104', 'ICT002', 'A'),
('R105', 'ELEC003', 'B')
select StudName, Grade
from STUDENT
inner join GREPORT on STUDENT.StudID=GREPORT.SID
where Grade='B'
select STUDENT.StudID, STUDENT.StudName, STUDENT.StudSex,
COURSE.CTitle, GREPORT.Grade
from STUDENT
inner join
GREPORT on STUDENT.StudID=GREPORT.SID
inner join COURSE on
GREPORT.CCode=COURSE.CourseCode
where StudSex='Female' and CTitle='Software' and Grade='A'
select StudID, StudName, DeptName, Grade
from STUDENT
inner join
GREPORT on STUDENT.StudID=GREPORT.SID
where DeptName='Computer Science' and Grade='A'
order by StudName asc, DeptName desc
update STUDENT
set Section='Room2' where StudID='R103'
update STUDENT
set Section='Room2' where StudID='R105'
select StudName, CTitle, Grade
from STUDENT
inner join
GREPORT on STUDENT.StudID=GREPORT.SID
inner join COURSE on
GREPORT.CCode=COURSE.CourseCode
where CTitle='Calculus' and Grade between 'A' AND 'D'
select StudID, StudName, DeptName
from STUDENT
inner join
GREPORT on STUDENT.StudID=GREPORT.SID
inner join COURSE on
GREPORT.CCode=COURSE.CourseCode
where DeptName='Computer Science' and StudName like '%L%'
select StudName, CTitle, DeptName, Grade
from STUDENT,COURSE, GREPORT
where StudID=SID and CCode=CourseCode and DeptName='Computer
Science'
use XYZ_COLLEGE
SELECT *
FROM STUDENT
RIGHT OUTER JOIN COURSE
ON STUDENT.StudID = COURSE.CourseCode
SELECT *
FROM STUDENT
Left OUTER JOIN COURSE
ON STUDENT.StudID = COURSE.CourseCode
backup database XYZ_COLLEGE to disk='E:/XYZ_COLLEGE.bak'
restore database XYZ_COLLEGE from disk='E:/XYZ_COLLEGE.bak' with
replace;
Transaction
CREATE TABLE STUDENT(NUMBER INT PRIMARY KEY, DEPARTMENT
VARCHAR(20), TFEE DECIMAL);
INSERT INTO STUDENT VALUES
(1001,'ICT',100),
(1002,'MANU',500),
(1003,'RAILWAYS',600),
(1004,'RAILWAYS',1000),
(1005,'RAILWAYS',8600),
(1007,'CONSTRUCTION',700),
(1008,'PEDA',800),
(1009,'AUTOMOTIVE',900),
(1010,NULL,900);
use master
select * from STUDENT
BEGIN TRANSACTION
INSERT INTO dbo.STUDENT VALUES (1005 ,'FURNITURE',5600)
UPDATE dbo.STUDENT SET DEPARTMENT='LEATHER'WHERE NUMBER= 1010
DELETE FROM STUDENT WHERE NUMBER= 1005
ROLLBACK TRANSACTION
BEGIN TRANSACTION
INSERT INTO dbo.STUDENT VALUES (1011,'FURNITURE',100)
UPDATE dbo.STUDENT SET DEPARTMENT='LEATHER'WHERE NUMBER= 1010
DELETE FROM STUDENT WHERE NUMBER= 1005
COMMIT TRANSACTION
Schema
create schema Trade;
GO
create table Trade.CUSTOM(TradeId int , width dec(10,2));
Login
create table Login
(username varchar (40) not null,
password varchar (40) not null unique);
select * from Login
insert into Login (username,password)
values ('tesfaye', '1234a'),
('belay', '1002b')
update Login
set password='aa123' where password='1234a'
create LOGIN HIDASIE with password='secure'
create user BENISHANGUL for LOGIN HIDASIE
create role ABAY_DAM
execute sp_addrolemember 'ABAY_DAM','BENISHANGUL'
grant select, insert, update on TEAM to BENISHANGUL
revoke delete, update on TEAM from ABAY_DAM
revoke delete, update on TEAM from BENISHANGUL
create login login1 with
password = 'abc123',
default_database = master,
default_language = US_English
alter login login1 enable
create user user1 for login login1
with default_schema = [DBO]