1. 程式人生 > 實用技巧 >js 滑鼠事件模擬

js 滑鼠事件模擬

資料庫課程實驗

實驗2 定義表和資料庫完整性

(1)教務管理資料庫JWGL

  • 問題:用企業管理器在教務管理資料庫JWGL中建立學生表Student、課程表Course、學生選課表SC,它們的表結構如表B.1所示。

  • sql語句
CREATE DATABASE JWGL ;

-- 教務管理資料庫
USE jwgl ;

-- 檢視資料庫的字符集
SELECT DATABASE() ;

-- 建立學生表Student
CREATE TABLE Student (
  Sno CHAR(8) NOT NULL PRIMARY KEY,
  -- 學生學號
  Sname VARCHAR (10) NOT NULL,
  -- 學生姓名
  Sex ENUM ('男', '女') NOT NULL DEFAULT '男',
  -- 性別
  Age ENUM ('15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30') NOT NULL DEFAULT '20',
  Phonenumber VARCHAR (20) UNICODE,
  -- 手機號
  Sdept VARCHAR (20) NOT NULL
) ;

-- 建立課程表Course
CREATE TABLE Course (
  Cno CHAR(10) NOT NULL PRIMARY KEY,
  Cname VARCHAR (20) UNICODE NOT NULL,
  Total_perior TINYINT (1) DEFAULT '64' CHECK (Total_perior BETWEEN 32 
    AND 108),
  Week_perior TINYINT (1) DEFAULT '4' CHECK (Week_perior BETWEEN 2 
    AND 7),
  credit TINYINT (1) NOT NULL DEFAULT '4' CHECK (credit BETWEEN 1 
    AND 7),
  Pcno CHAR(10)
) ;

-- 學生選課表SC
CREATE TABLE SC (
  Sno CHAR(8) NOT NULL,
  Cno CHAR(10) NOT NULL,
  Grade TINYINT (1) CHECK (Grade BETWEEN 0 
    AND 100),
  PRIMARY KEY (Sno,Cno),
  FOREIGN KEY (Sno) REFERENCES Student (Sno),
  /*表級完整性約束條件,Sno是外碼,被參照表是Student*/
  FOREIGN KEY (Cno) REFERENCES Course (Cno) 
  /*表級完整性約束條件,Sno是外碼,被參照表是Course*/
) ;
  • 架構設計圖

(2)Market資料庫

  • 問題:用T-SQL語句在Market資料庫中建立客戶基本資訊表Customers、貨品資訊表Goods、訂單資訊表Orders,它們的定義如下
CREATE TABLE Customers(
         CustomerID  int  IDENTITY(1,1)  PRIMARY  KEY,
         CName  varchar(8)  NOT  NULL ,
         Address  varchar(50),
         City  varchar(10),
         Tel  varchar(20)  UNIQUE,
         Company  varchar(50),
         Birthday  datetime,
         Type  tinyint  DEFAULT 1);
CREATE TABLE Goods (
         GoodsID int  CONSTRAINT  C1 PRIMARY  KEY ,
         GoodsName  varchar(20)  NOT  NULL,
         Price  money,
         Description  varchar(200),
         Storage   int,
         Provider  varchar(50),
         Status  tinyint  DEFAULT(0));
CREATE TABLE Orders (
         OrderID  int  IDENTITY(1,1)  CONSTRAINT  C2  PRIMARY  KEY ,
         GoodsID  int  NOT NULL  REFERENCES Goods(GoodsID)  ON  DELETE
             CASCADE,
         CustomerID  int  NOT NULL  FOREIGN KEY(CustomerID)
             REFERENCES Customers (CustomerID)  ON  UPDATE  CASCADE
ON DELETE NO ACTION,
         Quantity  int  NOT NULL  CONSTRAINT  C3  CHECK(Quantity >0),
         OrderSum  money  NOT NULL,
         OrderDate  datetime  DEFAULT(getdate()) );
  • sql語句
CREATE DATABASE Market ;
-- 建立Market資料庫
USE Market ;
-- 客戶基本資訊表Customers
CREATE TABLE Customers (
  CustomerID INT PRIMARY KEY AUTO_INCREMENT,
  CName VARCHAR (8) NOT NULL,
  Address VARCHAR (50),
  City VARCHAR (10),
  Tel VARCHAR (20) UNIQUE,
  Company VARCHAR (50),
  Birthday DATETIME,
  TYPE TINYINT DEFAULT 1
) ;
-- 貨品資訊表Goods
CREATE TABLE Goods (
 --  GoodsID INT CONSTRAINT C1 PRIMARY KEY,
  GoodsID INT  PRIMARY KEY,
  GoodsName VARCHAR (20) NOT NULL,
  Price DOUBLE,
  Description VARCHAR (200),
  STORAGE INT,
  Provider VARCHAR (50),
  STATUS TINYINT DEFAULT 0
) ;
-- 訂單資訊表Orders
CREATE TABLE Orders (
  -- OrderID INT IDENTITY (1, 1) CONSTRAINT C2 PRIMARY KEY,
  OrderID INT PRIMARY KEY AUTO_INCREMENT,
  GoodsID INT NOT NULL REFERENCES Goods (GoodsID) ON DELETE CASCADE,
  -- CustomerID INT NOT NULL FOREIGN KEY (CustomerID) REFERENCES Customers (CustomerID) ON DELETE NO ACTION,
  CustomerID INT NOT NULL,
  Quantity INT NOT NULL CHECK (Quantity > 0),
  OrderSum DOUBLE NOT NULL,
  -- OrderDate DATETIME DEFAULT(getdate ()),
  OrderDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID),
  FOREIGN KEY (GoodsID) REFERENCES Goods(GoodsID) 
) ;
  • 架構設計圖

(3)SPJ資料庫

  • 問題:使用T-SQL語句在SPJ資料庫中建立第2章習題10中的4張表:供應商表S、零件表P、工程專案表J和供應情況表SPJ,資料型別和長度自行設計,注意要同時定義主鍵、外來鍵和其他的資料完整性。

  • sql語句:

CREATE DATABASE SPJ;
USE spj;
-- 零件表P
CREATE TABLE P(
	Pno CHAR(2) NOT NULL PRIMARY KEY,
	Pname VARCHAR(20) NOT NULL,
	Color CHAR(4) NOT NULL,
	Weight TINYINT NOT NULL
); 

 -- 供應商表S
CREATE TABLE S(
	Sno CHAR(2) NOT NULL PRIMARY KEY,
	Sname VARCHAR(20) NOT NULL,
	STATUS TINYINT NOT NULL,
	City VARCHAR(10) NOT NULL
);

-- 工程專案表J
CREATE TABLE J( 
	Jno CHAR(2) NOT NULL PRIMARY KEY,
	Jname VARCHAR(20) NOT NULL,
	City VARCHAR(20) NOT NULL
);

-- 供應情況表SPJ
CREATE TABLE SPJ(
	Sno CHAR(2) NOT NULL,
	Pno CHAR(2) NOT NULL,
	Jno CHAR(2) NOT NULL,
	Qity INT NOT NULL,
    PRIMARY KEY(Sno,Pno,Jno),
	FOREIGN KEY (Sno) REFERENCES S(Sno),
	FOREIGN KEY (Pno) REFERENCES P(Pno),
	FOREIGN KEY (Jno) REFERENCES J(Jno)
);
  • 架構設計圖

(4)圖書借閱管理資料庫TSGL

  • 問題: 使用T-SQL語句在圖書借閱管理資料庫TSGL中建立圖書、讀者和借閱3個表,其結構為

    圖書(書號,書名,類別,出版社,作者,定價,出版時間)

    讀者(借書證號,姓名,單位,性別,地址,電話號碼)

    借閱(書號,借書證號,借閱日期)

    要求為屬性選擇合適的資料型別,定義每個主鍵、外來鍵,是否允許空值等資料完整性約束。

  • sql語句

-- 圖書管理資料庫
CREATE DATABASE TSGL;
USE TSGL;
-- 圖書Book(書號ISBN,書名BookName,類別BookType,出版社PressNo,作者Author,定價Price,出版時間PublishTime)
CREATE TABLE Book(
	ISBN CHAR(20) NOT NULL PRIMARY KEY,
	BookName TEXT,
	BookType TEXT ,
	PressNo VARCHAR(20),
	Author VARCHAR(20),
	Price DOUBLE,
	PublishTime DATETIME
);
-- 讀者Reader(借書證號ReaderAccount,姓名ReaderName,單位ReaderCompany,性別Sex,地址Address,電話號碼Tel)
CREATE TABLE Reader(
	ReaderAccount CHAR(15) NOT NULL PRIMARY KEY,
	ReaderName VARCHAR(8),
	ReaderCompany VARCHAR(20),
	ReaderSex ENUM ('男', '女') NOT NULL DEFAULT '男',
	ReaderAddress TEXT,
	ReaderTel CHAR(12)
);
-- 借閱BorrowR(書號ISBN,借書證號ReaderAccount,借閱日期BorrowTime)
CREATE TABLE Borrow(
	ISBN CHAR(20) NOT NULL,
	ReaderAccount CHAR(15) NOT NULL,
	BorrowTime DATETIME NOT NULL,
    PRIMARY KEY (ISBN,ReaderAccount),
    FOREIGN KEY (ISBN) REFERENCES Book(ISBN),
    FOREIGN KEY (ReaderAccount)REFERENCES Reader(ReaderAccount)
);
  • 架構設計圖