📄 04.txt
字号:
【例4-1】创建“Example”数据库。
CREATE DATABASE " Example "
【例4-2】创建“实例数据库”数据库。其中主数据文件大小为10MB,最大值不受限,每次增量为1MB;事务日志文件大小为1MB,最大值不受限,文件每次增量10%。
CREATE DATABASE 实例数据库
ON PRIMARY
(NAME='实例数据库',
FILENAME='D:\数据库\实例数据库\实例数据库.mdf',
SIZE=10MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=1MB)
LOG ON(
NAME='实例数据库_LOG',
FILENAME='D:\数据库\实例数据库\实例数据库.ldf',
SIZE=1MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=1%)
GO
【例4-3】创建名为“DB1”的数据库,要求同时创建3个数据文件。其中主数据文件为10MB,最大大小为100MB,增量为10 MB;次要数据文件属于F_Group文件组,文件大小为10MB,最大值不受限,增量为10%。事务日志文件大小为20MB,最大值不受限,每次增量为5MB。
CREATE DATABASE DB1
ON
PRIMARY
(NAME=DB1,
FILENAME='D:\数据库\DB1\DB1.mdf',
SIZE=10MB,
MAXSIZE=100MB,
FILEGROWTH=10MB),
FILEGROUP F_Group
(NAME=DB2,
FILENAME='D:\数据库\DB1\DB2.Ndf',
SIZE=10MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
)
LOG ON(
NAME='DB1_LOG',
FILENAME='D:\数据库\DB1\DB1.ldf',
SIZE=20MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=5MB)
GO
【例4-4】向所创建的“Example”中增加一个次要数据文件。文件的逻辑名为 Exa, 物理名为 Exa.ndf, 大小为 20MB,最大大小不受限制 , 每次增加5MB 。
ALTER DATABASE Example
ADD FILE
( NAME = 'Exa',
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\exa.ndf',
SIZE = 20MB ,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10%)
GO
【例4-5】向所创建的“Example”中增加一个日志文件数据文件。文件的逻辑名为 Exa_1, 物理名为 Exa_1.ldf, 大小为 10MB,最大大小不受限制 , 每次增加10MB 。
ALTER DATABASE Example
ADD LOG FILE
( NAME = 'Exa_1',
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\exa_1.ldf',
SIZE = 10MB ,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10MB)
GO
【例4-6】删除名为“Exa_1.ldf”的日志文件。
ALTER DATABASE Example
REMOVE FILE Exa_1
GO
【例4-7】将数据库“DB1”的大小修改为100MB。
ALTER DATABASE DB1
MODIFY FILE
(NAME=DB1,
SIZE=100MB)
GO
【例4-8】将数据库“DB1”重新命名为“DataBase1”
ALTER DATABASE DB1
MODIFY NAME=DATABASE1
GO
【例4-9】删除“Example”数据库
DROP DATABASE example
GO
【例4-10】在“实例数据库”创建“学生表”。
USE 实例数据库
CREATE TABLE 学生表
(
[学号] [varchar](12) NOT NULL,
[姓名] [nchar](20) NOT NULL,
[性别] [char](2) NULL,
[出生日期] [smalldatetime] NULL,
[入学日期] [smalldatetime] NULL DEFAULT ('2005.08.01'),
[院系名称] [varchar](20) NULL,
)
GO
【例4-11】为“学生表”添加“备注”列。
USE 实例数据库
ALTER TABLE 学生表
ADD
[备注] [text] NULL
GO
【例4-12】将“学生表”的“学号”设置为主键。
USE 实例数据库
ALTER TABLE学生表
ADD CONSTRAINT PK_ID PRIMARY KEY (学号)
GO
【例4-13】为“选课表”的“学号”列添加外键,外键的名称为“fk_学号”,对应了“学生表”的“学号”。
USE 实例数据库
ALTER TABLE 选课表
ADD CONSTRAINT fk_学号 FOREIGN KEY (学号)
REFERENCES 学生表(学号)
GO
【例4-14】创建视图“view_1”,该视图包含三个列,分别来自“学生表”的“姓名,“课程表”的“课程名”列,“选课表”的“分数”分数列。
CREATE VIEW view_1
AS
SELECT 学生表.姓名,课程表.课程名,选课表.分数
FROM 课程表
INNER JOIN 选课表 ON 课程表.课程号= 选课表.课程号
INNER JOIN 学生表 ON 选课表.学号= 学生表.学号
GO
【例4-15】修改视图“view_1”。
ALTER VIEW view_1
AS
SELECT 学生表.学号, 学生表.姓名,课程表.课程名,选课表.分数
FROM 课程表
INNER JOIN 选课表ON 课程表.课程号= 选课表.课程号
INNER JOIN 学生表ON 选课表.学号= 学生表.学号
GO
【例4-16】删除视图“view_1”
DROP VIEW view_1
【例4-17】在“学生表”的“姓名”列上创建非聚集索引。
USE 实例数据库
CREATE INDEX name_idx
ON 学生表(姓名)
GO
【例4-18】在“学生表”的“学号”列上创建唯一聚集索引。
USE 实例数据库
CREATE UNIQUE CLUSTERED INDEX id_idx
ON 学生表(学号)
GO
【例4-19】在“选课表”的“学号”和“课程号”列上创建组合索引。
USE 实例数据库
CREATE INDEX index_1
ON 选课表(学号,课程号)
GO
【例4-20】修改“学生表”的索引。
USE 实例数据库
ALTER INDEX id_idx ON 学生表
REBUILD WITH (FILFACTOR=80,SORT_IN_TEMPDB=ON)
GO
【例4-21】禁用“学生表”的非聚集索引。
USE 实例数据库
ALTER INDEX name_idx ON 学生表
DISABLE
GO
【例4-22】查询学生表的其中三列。
SELECT 学号,姓名,院系名称
FROM 学生表
【例4-23】查询课程表的所有列
SELECT *
FROM 课程表
【例4-24】返回最上面5条记录。
SELECT TOP 5 学号,姓名,院系名称
FROM 学生表
【例4-25】返回结果集的50%。
SELECT TOP 50 PERCENT 学号,姓名,院系名称
FROM 学生表
【例4-26】没有指定DISTINCT,查询所有的院系。
SELECT 院系名称
FROM 学生表
【例4-27】指定DISTINCT,查询所有的院系。
SELECT DISTINCT 院系名称
FROM 学生表
【例4-28】按照院系名称排序。
SELECT 学号,姓名,院系名称
FROM 学生表
ORDER BY 院系名称
【例4-29】查询“pubs”数据库的“authors”表,并将返回的列命名为中文。
USE pubs
SELECT au_id AS 编号, au_lname AS 姓氏, au_fname AS 名字
FROM authors
【例4-30】查询学生表的同时将学生表命名为“X”。
SELECT X.学号,X.姓名,X.性别
FROM 学生表AS X
【例4-31】创建新表“student”,其列来自于学生表的“学号,姓名,性别,院系名称”四列。
SELECT 学号,姓名,性别,院系名称
INTO student
FROM 学生表
【例4.32】查询学生表中各个学生的年龄。
SELECT 学号,姓名,(YEAR(GETDATE())-YEAR(出生日期)) AS 年龄
FROM 学生表
【例4-33】将学生和学号作为一列显示。
SELECT 学号+' : '+姓名AS 学生,
(YEAR(GETDATE())-YEAR(出生日期)) AS 年龄,
院系名称
FROM 学生表
【例4-34】将“pubs”中的“authors”的姓名作为一列显示,中间用空格分开。
SELECT au_id AS 编号,
au_fname+' '+au_lname AS 姓名,
city AS 城市
FROM authors
【例4-35】例如使用CAST函数将10.67转换为整形。
SELECT CAST(10.67 AS int)
【例4-36】使用CONVERT函数将10.67转换为整形。
SELECT CONVERT(int,10.67 )
【例4-37】查询结果进行数据转换。
SELECT CAST(学号AS VARCHAR(15)),
姓名,
CAST((YEAR(GETDATE())-YEAR(出生日期)) AS INT) AS 年龄
FROM 学生表
【例4-38】使用CASE语句。
SELECT 学号,课程号, 分数,等级=
CASE
WHEN 分数>=85 THEN '优秀'
WHEN 分数>=70 THEN '良好'
WHEN 分数>=60 THEN '及格'
ELSE '不及
格'
END
FROM 选课表
【例4-39】查询学号为“20050101”的学生的基本信息。
SELECT *
FROM 学生表
WHERE 学号='20050101'
【例4-40】查询所有课程成绩在85分以上的学生及相关科目。
SELECT *
FROM 选课表
WHERE 分数>=85
【例4-41】查询所有课程成绩在85分以上,100分以下的学生及相关科目。
SELECT *
FROM 选课表
WHERE 分数>=85 AND 分数<=100
【例4-42】查询分数在59分以上(不包括59)的学生及科目信息。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -