Chủ Nhật, 19 tháng 2, 2017

design Pattern Observer

-Thuộc nhóm hành vi đối tượng
-Phản ứng lại sự thay đổi của 1 đối tượng trong cùng 1 nhóm


1.Tạo InterFace
public interface IStudentObserver {
  public void Obclass( ObserverClass observerClass);
public  void setchucvu(String chucvu);
  public  String getchucvu();
  public  void setName(String name);
  public  String getName();
         
}

2.Tạo 1 lớp phản ứng lại các thành viên (giống radioButtonGroup)
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Obverser;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Xuanlinh
 */
public class ObserverClass {

    private List<IStudentObserver> listhocsinh = new ArrayList<>();
    

   
    public void addStudent(IStudentObserver student) {
        listhocsinh.add(student);
    }

    public void DeleteStudent(IStudentObserver student) {
        listhocsinh.remove(student);
    }

    public void Update() {
        for (int i = 0; i < listhocsinh.size(); i++) {
            if (listhocsinh.get(i).getchucvu().equals("LT")) {
                for (IStudentObserver s : listhocsinh) {
                    if (!s.getName().equals(listhocsinh.get(i).getName())) {
                        s.setchucvu("Thanh vien");
                    }
                } 
                break;
            }
           
        }
    }
    public void getInfo(){
        Update();
    for(IStudentObserver s : listhocsinh)
            System.out.println("\nTen hoc sinh : "+s.getName()+"chuc vu : "+s.getchucvu());
    }
}
1.Tạo 1 lớp thành viên (giống radioButton)
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Obverser;

/**
 *
 * @author Xuanlinh
 */
public class Student implements IStudentObserver{
     
    public  Student(String name)
    {
    this.name=name;
    }
    @Override
    public void Obclass( ObserverClass observerClass) {
      observerClass.addStudent(this);
    }
      String chucvu,name;
    @Override
    public void setchucvu(String chucvu) {
       this.chucvu=chucvu;
    }

    @Override
    public String getchucvu() {
      return chucvu;
    }

    @Override
    public void setName(String name) {
       this.name=name;
    }

    @Override
    public String getName() {
       return name;
    }
    
}
------------Main------------
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Obverser;

/**
 *
 * @author Xuanlinh
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        ObserverClass observerClass=new ObserverClass();
     Student s1=new Student("S1");
     Student s2=new Student("S2");
     Student s3=new Student("S3");
     Student s4=new Student("S4");
     s1.setchucvu("HV");
     s2.setchucvu("cf");
     s3.setchucvu("aa");
     s4.setchucvu("LT");
    
     s1.Obclass(observerClass);
      s2.Obclass(observerClass);
       s3.Obclass(observerClass);
        s4.Obclass(observerClass);
        observerClass.getInfo();
    }
    
}


Design Pattern Factory

---Design Pattern Factory :-Thuộc nhóm Nhóm khởi tạo
                             -Tạo lớp khởi tạo thuộc cùng 1 nhóm
                             - Khởi tạo đối tượng linh hoạt

                     
1.tạo lớp Interface
package InterFace;

/**
 *
 * @author Xuanlinh
 */
public interface IPersonal {
    public void In();
    public void Nhap();
    public void Tinh();
   
}

2.Tạo lớp thực thi
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package InterFace;

import java.util.Scanner;

public class Personal implements IPersonal{

   protected String ten;

    public String getTen() {
        return ten;
    }

    public void setTen(String ten) {
        this.ten = ten;
    }

    public String getTuoi() {
        return tuoi;
    }

    public void setTuoi(String tuoi) {
        this.tuoi = tuoi;
    }

    public String getDiachi() {
        return diachi;
    }

    public void setDiachi(String diachi) {
        this.diachi = diachi;
    }
   protected  String tuoi;
   protected  String diachi;
 
    @Override
    public void In() {
         System.out.print("\n---------------------------------------");
      System.out.print("\nNhap vao ten"+ten);
             
                System.out.print("\nNhap vao tuoi"+tuoi);
               
                  System.out.print("\nNhap vao diachi"+diachi);
                 
               
                 
                 
    }

    @Override
    public void Nhap() {
       Scanner input = new Scanner(System.in);
     
              System.out.print("\nNhap vao ten");
              ten=input.nextLine();
                System.out.print("\nNhap vao tuoi");
                tuoi=input.nextLine();
                  System.out.print("\nNhap vao diachi");
                    diachi=input.nextLine();
                 
                 
    }

    @Override
    public void Tinh() {
     
    }
   
   
}
----------------------------------------
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package InterFace;

import java.util.Scanner;

/**
 *
 * @author Xuanlinh
 */
public class Manager extends Personal implements IPersonal{
   
    String capbac;
        @Override
    public void In() {
         System.out.print("\n---------------------------------------");
      super.In();
               
                  System.out.print("\nNhap vao cap bac"+capbac);
                 
               
                 
                 
    }

    public String getCapbac() {
        return capbac;
    }

    public void setCapbac(String capbac) {
        this.capbac = capbac;
    }

    @Override
    public void Nhap() {
       Scanner input = new Scanner(System.in);
      super.Nhap();
            System.out.print("\nNhap vao capbac");
                    capbac=input.nextLine();
             
                 
                 
    }
    @Override
    public void Tinh() {
        System.out.print("\nLuong  là 50 triệu");
    }
}
-------------------------------------------------------
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package InterFace;

import java.util.Scanner;

/**
 *
 * @author Xuanlinh
 */
public class teacher extends Personal implements IPersonal{

      String chucvu;

    public String getChucvu() {
        return chucvu;
    }

    public void setChucvu(String chucvu) {
        this.chucvu = chucvu;
    }
        @Override
    public void In() {
         System.out.print("\n---------------------------------------");
      super.In();
               
                  System.out.print("\n chucvu"+chucvu);
                 
               
                 
                 
    }

    @Override
    public void Nhap() {
       Scanner input = new Scanner(System.in);
      super.Nhap();
             System.out.print("\nNhap vao chucvu");
                    chucvu=input.nextLine();
                 
                 
    }
    @Override
    public void Tinh() {
        System.out.print("\nLuong  là 10 triệu");
    }
   
}
-------------------------------
3.Tạo 1 lớp Factory quản lý các lớp thư thi của Interface personal
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package InterFace;

/**
 *
 * @author Xuanlinh
 */
public class FactoryIPersonal {
   private IPersonal p;
  public FactoryIPersonal (){}
          ;
  public IPersonal Employee(String name)
  {
  switch(name)
  {
      case "teacher" :{
      p=new teacher();
      return p;
      }
      case "manager" :{
      p=new Manager();
      return p;
      }
  }
 
  return null;
  }
}
4.gọi lớp khởi tạo factory
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package InterFace;

public class Main {

 
    public static void main(String[] args) {
      IPersonal pa=new FactoryIPersonal().Employee("teacher");
      pa.Nhap();
      pa.In();
      pa.Tinh();
      pa=new FactoryIPersonal().Employee("manager");
      pa.Nhap();
      pa.In();
      pa.Tinh();
      Employee E=new Employee(new teacher());
      E.nhap();
      E.in();
      E.tinh();
    }
   
}



Thứ Tư, 9 tháng 9, 2015

Bài tập lớn:store procedure và trigger trong sql


Sử dụng store procduced và trigger để xây dựng các chương trình quản lý
I)Tạo bảng
thành viên:
+lại văn dũng Nhóm trưởng:xây dựng ,phân công nhiệm vụ(
dung.1300984@thanhdo.edu.vn
)
+Lê xuân linh : viết chương trình kết nối csdl(
thoicungduoc0@gmail.com
)
+lê hữu đoàn:xây dựng thêm truy vấn liên quan(
doan.1300738@thanhdo.edu.vn
)
+hoàng văn sơn :hoàn thiện chương trình(
son.1300915@thanhdo.edu.vn
)
+lương kim lương:kiểm tra,test chương trình(
luongevil@gmail.com
+trần xuân minh:đóng góp ý tưởng liên quan)

+)Tạo bảng đăng nhập
USE [QLsinhvien]
GO

/****** Object:  Table [dbo].[DangNhap]    Script Date: 9/8/2015 10:00:45 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[DangNhap](
       [UserName] [nchar](50) NOT NULL,
       [Pass] [nchar](50) NOT NULL,
 CONSTRAINT [PK_DangNhap] PRIMARY KEY CLUSTERED
(
       [UserName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO



+)Tạo bảng điểm
USE [QLsinhvien]
GO

/****** Object:  Table [dbo].[Diem]    Script Date: 9/8/2015 10:01:30 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Diem](
       [MaSV] [nchar](50) NOT NULL,
       [MaM] [nchar](50) NOT NULL,
       [Diem] [float] NULL
) ON [PRIMARY]

GO



+)Tạo bảng lưu sinh viên
USE [QLsinhvien]
GO

/****** Object:  Table [dbo].[luusv]    Script Date: 9/8/2015 10:02:01 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[luusv](
       [MSV] [nchar](50) NULL,
       [TenSV] [nchar](50) NULL,
       [NgaySinh] [datetime] NULL,
       [QueQuan] [nchar](50) NULL,
       [NgayTD] [datetime] NULL
) ON [PRIMARY]

GO



+)Tạo bảng môn học
USE [QLsinhvien]
GO

/****** Object:  Table [dbo].[MonHoc]    Script Date: 9/8/2015 10:02:29 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[MonHoc](
       [MaM] [nchar](50) NOT NULL,
       [TenM] [nchar](50) NULL,
       [SoTC] [int] NULL,
       [HocKi] [int] NULL,
 CONSTRAINT [PK_MonHoc] PRIMARY KEY CLUSTERED
(
       [MaM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO



+)Tạo bảng sinh viên
USE [QLsinhvien]
GO

/****** Object:  Table [dbo].[sv]    Script Date: 9/8/2015 10:02:53 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[sv](
       [MaSV] [nchar](50) NOT NULL,
       [TenSV] [nchar](50) NULL,
       [GioiTinh] [nchar](50) NULL,
       [NgaySinh] [datetime] NULL,
       [QueQuan] [nchar](50) NULL,
       [Hinhanh] [varbinary](max) NULL,
 CONSTRAINT [PK_sv] PRIMARY KEY CLUSTERED
(
       [MaSV] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO


II) StoredProcedure

+)Load dữ liệu masv,tensv lên combox sv
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[cboSinh]    Script Date: 9/8/2015 9:39:33 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[cboSinh]
as
select sv.MaSV,sv.TenSV
from sv

+)Load dữ liệu MaM,TenM lên combox MonHoc
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[cboTenMH]    Script Date: 9/8/2015 9:42:04 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[cboTenMH]

as
select  MonHoc.MaM, MonHoc.TenM
from MonHoc

+)chọn điểm SV
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[ChonD]    Script Date: 9/8/2015 9:43:41 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ChonD]
as
SELECT [MaSV]
      ,[MaM]
      ,[Diem]
  FROM [dbo].[Diem]

+)chọn MaMH:
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[ChonMH]    Script Date: 9/8/2015 9:44:20 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ChonMH]
as
SELECT [MaM]
      ,[TenM]
      ,[SoTC]
      ,[HocKi]
  FROM [dbo].[MonHoc]

+)chọn SV
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[Chonsv]    Script Date: 9/8/2015 9:44:55 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Chonsv]
as
SELECT [MaSV]
      ,[TenSV]
      ,[GioiTinh]
      ,[NgaySinh]
      ,[QueQuan]
    
  FROM [dbo].[sv]

+)chọn SV có hình SV
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[ChonSV1]    Script Date: 9/8/2015 9:46:26 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ChonSV1]
as
SELECT [MaSV]
      ,[TenSV]
      ,[GioiTinh]
      ,[NgaySinh]
      ,[QueQuan]
      ,[Hinhanh]
  FROM [dbo].[sv]

+)chọn hình ảnh cho SV
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[Hinhsv]    Script Date: 9/8/2015 9:46:50 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Hinhsv]
as
SELECT
      [Hinhanh]
  FROM [dbo].[sv]

+)kiểm tra đăng nhập
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[Log_in]    Script Date: 9/8/2015 9:47:22 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Log_in]
@UserName nchar(50),
@pass nchar(50)
as
SELECT [UserName]
      ,[Pass]
  FROM [dbo].[DangNhap]
  where @UserName =UserName and
@pass =Pass

+)sửa dữ liệu SV
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[SuaD]    Script Date: 9/8/2015 9:48:13 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[SuaD]

 @MaSV nchar(50),
   @MaM nchar(50),
    @Diem float
       as

UPDATE [dbo].[Diem]
   SET [MaSV] = @MaSV
      ,[MaM] = @MaM
      ,[Diem] = @Diem
 WHERE [MaSV] = @MaSV

+)Sửa môn học
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[SuaMh]    Script Date: 9/8/2015 9:48:43 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[SuaMh]
 @MaM nchar(50),
     @TenM nchar(50),
     @SoTC int,
      @HocKi int
         as
UPDATE [dbo].[MonHoc]
   SET [MaM] = @MaM
      ,[TenM] = @TenM
      ,[SoTC] = @SoTC
      ,[HocKi] = @HocKi
 WHERE [MaM] = @MaM

+)Sửa sinh viên
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[SuaSV1]    Script Date: 9/8/2015 9:49:11 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[SuaSV1]
 @MaSV nchar(50)
      , @TenSV nchar(50)
      , @GioiTinh nchar(50)
      , @NgaySinh datetime
      , @QueQuan nchar(50)
      , @Hinhanh varbinary(max)
         as
UPDATE [dbo].[sv]
   SET [MaSV] = @MaSV
      ,[TenSV] = @TenSV
      ,[GioiTinh] = @GioiTinh
      ,[NgaySinh] = @NgaySinh
      ,[QueQuan] = @QueQuan
      ,[Hinhanh] = @Hinhanh
 WHERE  [MaSV] = @MaSV

+)Tìm Mã Môn học
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[TimMH]    Script Date: 9/8/2015 9:49:44 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[TimMH]
 @MaM nchar(50),
  @TenM nchar(50)
as
select MonHoc.MaM,MonHoc.TenM
from MonHoc
where @MaM =MonHoc.MaM or @TenM =MonHoc.TenM

+)Tìm Sinh Viên
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[Timsv]    Script Date: 9/8/2015 9:50:16 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Timsv]
@MaSV nchar(50),
@TenSV nchar(50)
as
SELECT [MaSV]
      ,[TenSV]
      ,[GioiTinh]
      ,[NgaySinh]
      ,[QueQuan]
  FROM [dbo].[sv]
  where @MaSV =MaSV or
@TenSV =TenSV

+)tim sinh viên tt
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[Timsv]    Script Date: 9/8/2015 9:50:16 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Timsv]
@MaSV nchar(50),
@TenSV nchar(50)
as
SELECT [MaSV]
      ,[TenSV]
      ,[GioiTinh]
      ,[NgaySinh]
      ,[QueQuan]
  FROM [dbo].[sv]
  where @MaSV =MaSV or
@TenSV =TenSV

+)Thêm điểm cho sv
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[ThemD]    Script Date: 9/8/2015 9:51:18 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ThemD]
(@MaSV nchar(50)
,@MaM nchar(50)
,@Diem float)
as
INSERT INTO [dbo].[Diem]
           ([MaSV]
           ,[MaM]
           ,[Diem])
     VALUES
           ( @MaSV
           ,@MaM
           ,@Diem )

+)Thêm Môn học
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[ThemMH]    Script Date: 9/8/2015 9:51:42 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ThemMH]
    (@MaM nchar(50)
           ,@TenM nchar(50)
           ,@SoTC int
           ,@HocKi int)
                 as
INSERT INTO [dbo].[MonHoc]
           ([MaM]
           ,[TenM]
           ,[SoTC]
           ,[HocKi])
     VALUES
       (@MaM
           ,@TenM
           ,@SoTC
           ,@HocKi )

+)Thêm Sinh Viên
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[ThemSV]    Script Date: 9/8/2015 9:52:01 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[ThemSV]

 (@MaSV nchar(50)
           ,@TenSV nchar(50)
           ,@GioiTinh nchar(50)
           ,@NgaySinh datetime
           ,@QueQuan nchar(50)
           ,@Hinhanh varbinary(max))
                 as
INSERT INTO [dbo].[sv]
           ([MaSV]
           ,[TenSV]
           ,[GioiTinh]
           ,[NgaySinh]
           ,[QueQuan]
           ,[Hinhanh]
                 )
     VALUES
         (@MaSV
           ,@TenSV
           ,@GioiTinh
           ,@NgaySinh
           ,@QueQuan
           ,@Hinhanh)

+)Tra cứu Sinh Viên
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[TRaCuuSV]    Script Date: 9/8/2015 9:52:21 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[TRaCuuSV]
 @MaSV nchar(50)
 as


select sv.TenSV,sv.QueQuan,sv.GioiTinh,sv.Hinhanh,sv.NgaySinh,TEMP.DiemTB,xeploai=case  when TEMP.DiemTB >8 then 'gioi' when TEMP.DiemTB >7 then 'kha' when TEMP.DiemTB>5 then 'trung binh' else 'Yeu' end
from sv, (select Diem.MaSV,ROUND( sum(Diem.Diem*MonHoc.SoTC)/SUM(MonHoc.SoTC),2)AS DiemTB
from Diem inner join MonHoc on Diem.MaM=MonHoc.MaM
group by Diem.MaSV
--having @MaSV=Diem.MaSV
)AS TEMP
where @MaSV=sv.MaSV

+)Xóa điểm sinh viên
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[XoaD]    Script Date: 9/8/2015 9:52:49 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[XoaD]
 @MaSV nchar(50)
 as
DELETE FROM [dbo].[Diem]
      WHERE [MaSV] = @MaSV

+)Xóa dữ liệu điểm
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[XoaDLD]    Script Date: 9/8/2015 9:53:25 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[XoaDLD]
as
TRUNCATE TABLE Diem
+)Xóa dữ liệu trùng
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[XoaDLtrung]    Script Date: 9/8/2015 9:53:57 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** Object:  StoredProcedure [dbo].[XoaDLtrung]    Script Date: 07/09/2015 10:18:25 CH ******/
ALTER proc [dbo].[XoaDLtrung]
@MaSV nchar(50),
@MaM nchar(50)
as
select Diem.MaM,Diem.MaSV
from Diem
where @MaSV=MaSV and @MaM=MaM

+)Xóa mã môn học
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[XoaMH]    Script Date: 9/8/2015 9:54:42 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[XoaMH]
 @MaM nchar(50)
 as
DELETE FROM [dbo].[MonHoc]
      WHERE [MaM] = @MaM

+)Xóa Sinh Viên
USE [QLsinhvien]
GO
/****** Object:  StoredProcedure [dbo].[Xoasv]    Script Date: 9/8/2015 9:55:06 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Xoasv]
@masv nchar(50)
as
DELETE FROM [dbo].[sv]
      WHERE @masv=masv
III)trigger
+)xóa môn học:
USE [QLsinhvien]
GO
/****** Object:  Trigger [dbo].[XoaM]    Script Date: 9/8/2015 10:06:08 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[XoaM]
on [dbo].[MonHoc]
after Delete
as
begin
delete from Diem where Diem.MaM=(select MaM from deleted)
end

+)lưu sinh viên:
USE [QLsinhvien]
GO
/****** Object:  Trigger [dbo].[LuuS]    Script Date: 9/8/2015 10:06:38 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER trigger [dbo].[LuuS]
on [dbo].[sv]
after delete
as
begin
declare @msv nchar(50)
declare @tensv nchar(50)
declare @Ngaysinh datetime
declare @QueQuan nchar(50)
declare @Ngaytd  datetime

 set @msv= (select MaSV from deleted)
set @tensv= (select TenSV from deleted)
set @Ngaysinh= (select NgaySinh from deleted)
set @QueQuan= (select QueQuan from deleted)
insert into LuuSV
values (@msv,@tensv,@Ngaysinh,@QueQuan,GETDATE())
end

+)xóa sinh viên:
USE [QLsinhvien]
GO
/****** Object:  Trigger [dbo].[XoaS]    Script Date: 9/8/2015 10:07:22 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** Object:  Trigger [dbo].[XoaM]    Script Date: 30/08/2015 7:43:10 CH ******/

ALTER trigger  [dbo].[XoaS]
on [dbo].[sv]
after Delete
as
begin
delete from Diem where Diem.MaSV=(select MaSV from deleted)
end