我的编程空间,编程开发者的网络收藏夹
学习永远不晚

基本的SQL语句

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

基本的SQL语句

基本的SQL语句

表结构




实验内容

1

  • 用SQL语句创建数据库CAP,数据文件名为CAPData.mdf,数据文件的初始存储空间大小为50M,最大存储空间为500M,存储空间自动增长量为10M。
CREATE DATABASE CAP
ON
(
	NAME = CAP,
	FILENAME = "C:UserseroDesktopCAPData.mdf", -- 文件名
	SIZE = 50, -- 初始存储空间大小
	MAXSIZE = 500,  -- 最大存储空间大小
	FILEGROWTH = 10  -- 自动增长量
)

2

  • 在CAP数据库中用SQL语句创建下面的4张表,合理设计每个字段的数据类型,建立主键与外键约束。表Products中的Price字段不允许为空。表Customers的discnt字段取值范围在[0,30]之间。利用SQL语句向表中添加表结构中的数据。
use CAP
CREATE TABLE Customers
(
	"cid" char(4) CONSTRAINT Custom_Prim PRIMARY KEY,
	"cname" varchar(10),
	"city" varchar(10),
	"discnt" numeric(4,2) CONSTRAINT DISCNT_CHK CHECK(discnt BETWEEN 0 AND 30)
)
CREATE TABLE Products
(
	"Pid" char(3) CONSTRAINT Product_Prim PRIMARY KEY,
	"pname" varchar(10),
	"city" varchar(10),
	"quantity" int,
	"price" numeric(10,2) CONSTRAINT Price_NotNull NOT NULL
)
CREATE TABLE Agents
(
	"Aid" char(3) CONSTRAINT Agent_Prim PRIMARY KEY,
	"aname" varchar(10),
	"city" varchar(10),
	"percent" TINYINT
)
CREATE TABLE Orders
(
	"OrDno" char(4) CONSTRAINT Order_Prim PRIMARY KEY,
	"month" char(3) CONSTRAINT Month_CHK CHECK(month in ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") ),
	"cid" char(4) CONSTRAINT Cid_Fore FOREIGN KEY REFERENCES Customers(cid),
	"aid" char(3) CONSTRAINT Aid_Fore FOREIGN KEY REFERENCES Agents(Aid),
	"pid" char(3) CONSTRAINT Pid_Fore FOREIGN KEY REFERENCES Products(Pid),
	"qty" int,
	"dollars" numeric(10,2)
)

3

  • 利用系统预定义的存储过程sp_helpdb查看数据库的相关信息,例如所有者、大小、创建日期等。
EXEC sp_helpdb

4

  • 利用系统预定义的存储过程sp_helpconstraint查看表中出现的约束(包括Primary key, Foreign key, check constraint, default, unique)。
EXEC sp_helpconstraint Orders

5

  • 创建一张表Orders_Jan,表的结构与Orders相同,将Orders表中month为‘Jan’的订单记录复制到表Orders_Jan中。
CREATE TABLE Orders_Jan
(
	"OrDno" char(4) CONSTRAINT Order_Jan_Prim PRIMARY KEY,
	"month" char(3) ,
	"cid" char(4) CONSTRAINT Jan_Cid_Fore FOREIGN KEY REFERENCES Customers(cid),
	"aid" char(3) CONSTRAINT Jan_Aid_Fore FOREIGN KEY REFERENCES Agents(Aid),
	"pid" char(3) CONSTRAINT Jan_Pid_Fore FOREIGN KEY REFERENCES Products(Pid),
	"qty" int,
	"dollars" numeric(10,2)
);

INSERT INTO Orders_Jan
SELECT * 
FROM Orders
WHERE month="Jan"

6

  • 将Orders表中month为‘Jan’的订单记录全部删掉。
DELETE 
FROM Orders
WHERE month="Jan"

7

  • 对曾经下过金额(dollars)大于500的订单的客户,将其discnt值增加2个百分点(+2)。
UPDATE Customers
SET  discnt = discnt + 2  -- 更新discnt
WHERE cid IN(			-- 找出下过500订单的客户cid
			SELECT DISTINCT cid -- 使用DISTINCT防止对同一个客户重复更新discnt
            -- 其实可以直接SELECT cid , IN会自动去除重复值
			FROM Orders
			WHERE dollars > 500
			)

8

  • 写一段TSQL程序,向表Orders中增加5000条记录,要求订单尽可能均匀地分布在12个月中。
use CAP
DECLARE @i AS INT,@randNum AS FLOAT,@mon AS char(3),@OrdNo AS SMALLINT,@cid AS char(4),@aid AS char(3),@pid AS char(3),@price AS numeric(10,2);
SET @i=1;
SET @OrdNo=1030;
while @i<=5000  -- 流程控制,循环5000次
	BEGIN
		SET @randNum=RAND()*12;
		SET @mon=							-- 随机产生月份
		CASE
			WHEN @randNum<1 THEN "Jan"
			WHEN @randNum>=1 AND @randNum<2 THEN "Feb"
			WHEN @randNum>=2 AND @randNum<3 THEN "Mar"
			WHEN @randNum>=3 AND @randNum<4 THEN "Apr"
			WHEN @randNum>=4 AND @randNum<5 THEN "May"
			WHEN @randNum>=5 AND @randNum<6 THEN "Jun"
			WHEN @randNum>=6 AND @randNum<7 THEN "Jul"
			WHEN @randNum>=7 AND @randNum<8 THEN "Aug"
			WHEN @randNum>=8 AND @randNum<9 THEN "Sep"
			WHEN @randNum>=9 AND @randNum<10 THEN "Oct"
			WHEN @randNum>=10 AND @randNum<11 THEN "Nov"
			ELSE "Dec"
		END

		SELECT  @cid=cid 	-- 随机获取一个用户id
		FROM Customers
		ORDER BY NEWID()

		SELECT @pid=Pid,@price=price	-- 随机获取一个产品id以及对应的产品价格
		FROM Products
		ORDER BY NEWID()
		
		SET @aid=(SELECT TOP 1 Aid 			-- 随机获取一个代理商id
				  FROM Agents
		          ORDER BY NEWID()
				  )
		
		SET @randNum=RAND()*2000+400;  -- 生成400至2400的随机订单数

		INSERT INTO Orders				-- 插入一条订单记录
		VALUES(CONVERT(char(4),@OrdNo),@mon,@cid,@aid,@pid,CONVERT(INT,@randNum),CONVERT(INT,@randNum) * @price);
        -- 使用转换函数CONVERT()

		SET @OrdNo=@OrdNo+1;
		SET @i=@i+1;
	END

9

  • 在表Orders的’month’字段上建立索引。
CREATE INDEX Orders_Index
ON Orders(month)

10

  • 创建一个视图order_month_summary,视图中的字段包括月份、该月的订单总量和该月的订单总金额。基于视图order_month_summary,查询第一季度各个月份的订单总量和订单总金额。
CREATE VIEW order_month_summary(month,total_qty,total_dollars)
AS SELECT month,SUM(qty),SUM(dollars)      -- 获得每月的总订单,总金额
   FROM Orders
   GROUP BY month
SELECT month,total_qty,total_dollars
FROM order_month_summary
WHERE month IN ("Jan","Feb","Mar")     -- 查询第一季度

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

基本的SQL语句

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

基本的SQL语句

表结构实验内容1用SQL语句创建数据库CAP,数据文件名为CAPData.mdf,数据文件的初始存储空间大小为50M,最大存储空间为500M,存储空间自动增长量为10M。CREATE DATABASE CAPON(NAME = CAP,FILENAME = "
基本的SQL语句
2018-11-15
2024-04-02

SQL语句基本作用有哪些

SQL语句的基本作用包括以下几个方面:1. 定义和管理数据库结构:SQL语句可以用来创建数据库和表,定义表的结构和字段。2. 数据的增删改查:SQL语句可以用来插入、更新和删除数据。3. 数据的查询和检索:SQL语句可以用来查询数据库中的数
2023-09-20

如何执行基本的SQL查询语句

要执行基本的SQL查询语句,首先需要连接到数据库管理系统(如MySQL、SQL Server、Oracle等),然后打开一个SQL查询编辑器或命令行终端。接下来,可以输入SQL查询语句并执行它,以下是一个简单的例子:假设有一个名为“学生”
如何执行基本的SQL查询语句
2024-03-06

SQL SELECT 语句基础

目录一、列的查询二、查询出表中所有的列三、为列设定别名四、常数的查询五、从结果中删除重复行六、根据 WHERE 语句来选择记录七、注释的书写方法请参阅学习重点使用 SELECT 语句从表中选取数据。为列设定显示用的别名。SELECT 语句中可以使用常数或者表达
SQL SELECT 语句基础
2017-11-22

Python 基本语句

首先申明下,本文为笔者学习《Python学习手册》的笔记,并加入笔者自己的理解和归纳总结。1、Python语句特点(1) if语句中括号()是可选的。(2) 冒号(:)出现在结尾,表示一个语句的结束。(3) 分号(;)不用出现在结尾。(4)
2023-01-31

编程热搜

目录