SQL從基礎到高級
-----------------------------------------下麵會繼續更新,這些內容都是在SQL2005上正確運行的--------------------------------------------------------
--先在D盤創建一個“TEST”的文件夾
CREATE DATABASE DB1--數據庫名稱
ON --定義數據庫的數據文件
(NAME = DB1,--邏輯文件名,設置引用時的名稱
FILENAME = 'D:\TEST\DB2.MDF'--物理文件名,設置文件在磁盤上的路徑和名稱
)
---------------------------------------------------------------------------
--先在D盤創建一個TEST的文件夾
CREATE DATABASE DB3
ON
(NAME = DB3, --邏輯文件名
FILENAME = 'D:\TEST\DB3.MDF', --物理文件名
SIZE = 10MB, --文件初始大小
MAXSIZE = 100MB, --文件最大容量
FILEGROWTH = 5% --文件容量增長幅度
)
---------------------------------------------------------------------------
DROP DATABASE DB3 --刪除數據庫DB3
---------------------------------------------------------------------------
CREATE DATABASE DB4
ON --創建數據庫文件
(
NAME = DB4,
FILENAME = 'D:\TEST\DB4.MDF',
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH = 5%
)
LOG ON --創建數據庫日誌文件
(
NAME = DB4_LOG,
FILENAME = 'D:\TEST\DB4_LOG.LDF'
)
---------------------------------------------------------------------------
ALTER DATABASE DB5
MODIFY NAME = DB1--修改數據庫名稱
---------------------------------------------------------------------------
ALTER DATABASE DB1 ADD FILE (NAME = DB11, FILENAME = 'D:\TEST\DB11.NDF')--添加數據庫文件 ALTER DATABASE DB1 ADD LOG FILE (NAME = DB11_LOG, FILENAME = 'D:\TEST\DB11_LOG.LDF') --添加事務日誌文件
---------------------------------------------------------------------------
ALTER DATABASE DB1
ADD FILEGROUP FD88 --添加一個文件組,名稱為FD88
ALTER DATABASE DB1
MODIFY FILEGROUP FD88 NAME = FD8 --修改文件組FD88的名稱為FD8
ALTER DATABASE DB1
--在數據庫DB1中增加兩個數據文件到文件組FD8中,
--並將該文件組設為默認文件組
ADD FILE(NAME = DB81, FILENAME = 'D:\TEST\DB81.NDF'),
(NAME = DB82, FILENAME = 'D:\TEST\DB82.NDF')
TO FILEGROUP FG8
GO
ALTER DATABASE DB1
MODIFY FILEGROUP FD8 DEFAULT --設FD8文件組為默認文件組
ALTER DATABASE DB1
--修改數據庫文件DB11的名稱為DDD
MODIFY FILE (NAME = DB11, NEWNAME = DDD, FILENAME = 'D:\TEST\DDD.NDF')
-----------------------------------------------------------------------------
EXEC SP_HELPDB 'DB1' --指定要查看數據庫DB1信息,如不指定,會顯示所有數據庫的信息
EXEC SP_HELPDB --顯示服務器上所有數據庫的信息
---------------------------------------------------------------------------
CREATE DATABASE XSQK
ON
(
NAME = XSQK,
FILENAME = 'D:\TEST\XSQK.MDF',
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH = 5%
)
LOG ON
(
NAME = XSQK_LOG,
FILENAME = 'D:\TEST\XSQK_LOG.LDF'
)
---------------------------------------------------------------------------
--創建數據庫SPJ----------------------------------------------
CREATE DATABASE SPJ
ON
( NAME = SPJ, FILENAME = 'D:\TEST\SPJ.MDF')
LOG ON
( NAME = SPJ_LOG, FILENAME = 'D:\TEST\SPJ_LOG.LDF')
USE SPJ;
--創建s表----------------------------------------------
CREATE TABLE S
( SNO CHAR(5) PRIMARY KEY,
SNAME CHAR(20),
STATUS INT,
CITY CHAR(10) DEFAULT '北京');
--創建P表----------------------------------------------
CREATE TABLE P
( PNO CHAR(5) PRIMARY KEY,
PNAME CHAR(20),
COLOR CHAR(4),
WEIGHT INT);
--創建P表----------------------------------------------
CREATE TABLE J
( JNO CHAR(5) PRIMARY KEY,
JNAME CHAR(20),
CITY CHAR(10)DEFAULT '北京');
CREATE TABLE SPJ
( SNO CHAR(5) FOREIGN KEY REFERENCES S(SNO),
PNO CHAR(5) FOREIGN KEY REFERENCES P(PNO),
JNO CHAR(5) FOREIGN KEY REFERENCES J(JNO),
QTY INT);
--找出上海廠商供應的所有零件的名稱及其數量
SELECT PNO
FROM SPJ
WHERE SPJ.SNO IN (SELECT SNO
FROM S
WHERE CITY = '上海');
--找出使用上海產的零件的工程號碼
SELECT DISTINCT JNO
FROM SPJ
WHERE SPJ.PNO IN (SELECT PNO
FROM S WHERE CITY = '上海');
--找出沒有使用天津產的零件的工程號碼
SELECT DISTINCT JNO
FROM SPJ
WHERE SPJ.PNO NOT IN (
SELECT SNO
FROM S
WHERE CITY = '上海');
--把所有的紅色零件的顏色改成藍色
UPDATE P
SET COLOR = '藍'
WHERE COLOR = '紅';
--由S5供給J4的零件P6改為由S3供應
UPDATE SPJ
SET SNO = 'S3'
WHERE SNO = 'S5' AND PNO = 'P6' AND JNO = 'J4';
--從供應商關係中刪除S2的記錄,並從供應情況關係中刪除相應的記錄
DELETE FROM SPJ
WHERE SNO = 'S2';
DELETE
FROM S
WHERE SNO = 'S2';
--先在S表插入S2,否則無法插入行到SPJ中,想想為什麼!
INSERT INTO S(SNO)
VALUES ('S2');
INSERT INTO SPJ
VALUES ('S2', 'P4', 'J6', 200);
EXEC SP_HELPDB 'DB1' --指定要查看數據庫DB1信息,如不指定,會顯示所有數據庫的信息
EXEC SP_HELPDB --顯示服務器上所有數據庫的信息
---------------------------------------------------------------------------
CREATE DATABASE XSQK
ON
(
NAME = XSQK,
FILENAME = 'D:\TEST\XSQK.MDF',
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH = 5%
)
LOG ON
(
NAME = XSQK_LOG,
FILENAME = 'D:\TEST\XSQK_LOG.LDF'
)
---------------------------------------------------------------------------
--創建數據庫SPJ----------------------------------------------
CREATE DATABASE SPJ
ON
( NAME = SPJ, FILENAME = 'D:\TEST\SPJ.MDF')
LOG ON
( NAME = SPJ_LOG, FILENAME = 'D:\TEST\SPJ_LOG.LDF')
USE SPJ;
--創建s表----------------------------------------------
CREATE TABLE S
( SNO CHAR(5) PRIMARY KEY,
SNAME CHAR(20),
STATUS INT,
CITY CHAR(10) DEFAULT '北京');
--創建P表----------------------------------------------
CREATE TABLE P
( PNO CHAR(5) PRIMARY KEY,
PNAME CHAR(20),
COLOR CHAR(4),
WEIGHT INT);
--創建P表----------------------------------------------
CREATE TABLE J
( JNO CHAR(5) PRIMARY KEY,
JNAME CHAR(20),
CITY CHAR(10)DEFAULT '北京');
CREATE TABLE SPJ
( SNO CHAR(5) FOREIGN KEY REFERENCES S(SNO),
PNO CHAR(5) FOREIGN KEY REFERENCES P(PNO),
JNO CHAR(5) FOREIGN KEY REFERENCES J(JNO),
QTY INT);
--找出上海廠商供應的所有零件的名稱及其數量
SELECT PNO
FROM SPJ
WHERE SPJ.SNO IN (SELECT SNO
FROM S
WHERE CITY = '上海');
--找出使用上海產的零件的工程號碼
SELECT DISTINCT JNO
FROM SPJ
WHERE SPJ.PNO IN (SELECT PNO
FROM S WHERE CITY = '上海');
--找出沒有使用天津產的零件的工程號碼
SELECT DISTINCT JNO
FROM SPJ
WHERE SPJ.PNO NOT IN (
SELECT SNO
FROM S
WHERE CITY = '上海');
--把所有的紅色零件的顏色改成藍色
UPDATE P
SET COLOR = '藍'
WHERE COLOR = '紅';
--由S5供給J4的零件P6改為由S3供應
UPDATE SPJ
SET SNO = 'S3'
WHERE SNO = 'S5' AND PNO = 'P6' AND JNO = 'J4';
--從供應商關係中刪除S2的記錄,並從供應情況關係中刪除相應的記錄
DELETE FROM SPJ
WHERE SNO = 'S2';
DELETE
FROM S
WHERE SNO = 'S2';
--先在S表插入S2,否則無法插入行到SPJ中,想想為什麼!
INSERT INTO S(SNO)
VALUES ('S2');
INSERT INTO SPJ
VALUES ('S2', 'P4', 'J6', 200);
CREATE TABLE Student
( Sno char(10) PRIMARY KEY,--學號
Sname char(10) UNIQUE, --姓名
Ssex char(2), --性別
Sage INT CHECK(Sage >= 10 AND Sage <= 30),--年齡
Birthday CHAR(10) CHECK(BirthDay LIKE '____-__-__'),--出生日期
Hometown CHAR(10), --家鄉
Enrolldate CHAR(10) CHECK(Enrolldate LIKE '____-__-__'),--入學日期
DormNo INT, --寢室號
BuildingNO INT, --幾號樓
Phone CHAR(10), --電話號碼
Nationality CHAR(10),--民族
)
最後更新:2017-04-02 15:15:07