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),--民族
 )






目录
相关文章
|
7月前
|
SQL
SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法
SQL的AND运算符用于根据多个条件筛选记录,确保所有条件都为TRUE才返回记录。下面是AND运算符的基本语法:
148 1
|
SQL 监控 关系型数据库
【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
1482 0
|
SQL 存储 关系型数据库
【MYSQL高级】Mysql 表的七种连接方式【附带练习sql】
【MYSQL高级】Mysql 表的七种连接方式【附带练习sql】
231 0
|
7月前
|
SQL 存储 数据可视化
10个高级的 SQL 查询技巧
10个高级的 SQL 查询技巧
|
5月前
|
SQL 数据处理 数据库
SQL SELECT语句的高级应用与技巧
SQL SELECT语句的高级应用与技巧
|
6月前
|
SQL 存储 Java
SQL数据库学习指南:从基础到高级
SQL数据库学习指南:从基础到高级
|
6月前
|
SQL XML 数据库
后端数据库开发高级之通过在xml文件中映射实现动态SQL
后端数据库开发高级之通过在xml文件中映射实现动态SQL
57 3
|
7月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
150 0
|
5月前
|
SQL 存储 Java
SQL数据库学习指南:从基础到高级
SQL数据库学习指南:从基础到高级
|
6月前
|
SQL 数据处理 数据库
SQL SELECT语句的高级应用与技巧
SQL SELECT语句的高级应用与技巧

热门文章

最新文章