SQL Server 创建和管理数据表

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: SQL Server 创建和管理数据表

一、已有数据库,其名称为userdb

1.在userdb数据库中按照要求创建以下数据表:

创建数据库userdb
CREATE DATABASE userdb
ON PRIMARY                     
(NAME=userdb_data,              
 FILENAME='D:\software\userdb.mdf',
 SIZE=10MB,
 MAXSIZE=UNLIMITED,           
 FILEGROWTH=10% 
)
 LOG ON 
 (NAME=userdb_log,
  FILENAME='D:\software\userdb.ldf',
  SIZE=1MB,
  MAXSIZE=5MB,
  FILEGROWTH=1MB
 )

创建部门表Departments
 create table Departments
 (
 DepartmentsID int identity(1,1) not null PRIMARY KEY,
 DepartmentsName varchar(50) not null CONSTRAINT UN_sname UNIQUE,
 Note varchar(100) 
 )

创建雇员表Employees
 USE userdb
 CREATE TABLE Employees
 (
 EmployeeID int identity(1,1) PRIMARY KEY,
 DepartmentID int FOREIGN KEY(DepartmentID) REFERENCES Departments,
 Name varchar(20) NOT NULL,
 Age int NOT NULL,
 Sex char(2) NOT NULL,
 Edate datetime
 )

创建员工薪水表Salary
USE userdb
CREATE TABLE Salary
(
EmployeeID int NOT NULL PRIMARY KEY,
Income Money,
Outcome Money
)

2.为上面的数据表添加以下约束:

(1)Departments,Employees,Salary表添加三个主键约束,约束名分别为PK_DepartmentsID,PK_EmployeesID,PK_Salary_ID

alter table Departments
ADD constraint PK_DepartmentsID PRIMARY KEY(DepartmentsID)
alter table Employees
ADD constraint PK_EmployeeID PRIMARY KEY(EmployeeID)
alter table Salary
add constraint PK_Salary_ID primary key(EmployeeID)

(2)为Employees表的DepartmentID字段添加外键约束,依赖于Departments表的DepartmentsID

alter table Employees
ADD constraint FK_DepartmentID foreign key(DepartmentID) REFERENCES Departments(DepartmentsID)

(3)为Employees表的Age字段添加CHECK约束,检查Age大于0

alter table Employees  
add check(Age>0)

(4)为Employees表的Sex字段添加默认约束,默认Sex为男

alter table Employees add constraint 
constraintSex DEFAULT '男' for Sex;

(5)为Employees表的Edate字段添加默认约束,默认为当天日期

alter table Employees add constraint
constraintWdate DEFAULT getdate()for Edate;

3.修改表Employees中列Name的数据类型为varchar(30)

alter table Employees
alter column Name varchar(30)

4.修改表Employees,在表中增加新列zip,类型为char(6)

alter table Employees
add zip char(6)

5.从表Employees中删除列zip

alter table Employees
drop column zip

6.向表中插入如下记录

INSERT INTO Departments( DepartmentsName) VALUES('销售部')
INSERT INTO Departments( DepartmentsName) VALUES('采购部')
INSERT INTO Departments( DepartmentsName) VALUES('生产部')

INSERT INTO Employees(DepartmentID,Name,Age,Sex,Edate)VALUES('1','王林','35','男','2000-11-10 0:00:00' )
INSERT INTO Employees(DepartmentID,Name,Age,Sex,Edate)VALUES('1','李红','46','女','1992-10-11 0:00:00')
INSERT INTO Employees(DepartmentID,Name,Age,Sex,Edate)VALUES('1','李强','48','男','2005-3-10 0:00:00')
INSERT INTO Employees(DepartmentID,Name,Age,Sex,Edate)VALUES('2','张扬','23','女','2010-5-10 0:00:00')
INSERT INTO Employees(DepartmentID,Name,Age,Sex,Edate)VALUES('2','赵明','50','男','2003-6-10 0:00:00' )

INSERT INTO Salary VALUES('1','3500.0000','800.0000')
INSERT INTO Salary VALUES('2','4000.0000','1200.0000')
INSERT INTO Salary VALUES('3','7000.0000','2500.0000')
INSERT INTO Salary VALUES('4','1300.0000','1200.0000')
INSERT INTO Salary VALUES('5','5500.0000','2500.0000')

7.修改Salary表中的列Income(工资)的数据,为EmployeeID等于的雇员增加元工资

update Salary
set Income=Income+500 where EmployeeID=1
select * from Salary

8.删除雇员表中工号为的人员记录

delete from Employees where EmployeeID=5
select * from Employees

9.修改表Employees中姓名为王林的雇员信息,部门编号修改为,年龄修改为,雇佣日期修改为“2002-11-10”

update Employees
set DepartmentID=2,Age=37,Edate='2002-11-10'where Name='王林'

二、表的管理测试题

使用T-SQL语句完成下列对应功能:

1.创建一个数据库。数据库名称为worker,主数据文件的逻辑名称为worker_ data,操作系统文件的名称为D:\software\worker_mdf, 大小为MB,最大为MB,以%的速度增长。数据库的日志文件逻辑名称为student_log,操作系统文件的名称为D:\software\worker_ ldf,大小为MB,最大为MB,以MB的速度增长。

create database worker
on primary
(NAME=worker_data,
FILENAME='D:\software\worker.mdf',
SIZE=20MB,
MAXSIZE=50MB,
FILEGROWTH=25%
)
LOG ON
(
NAME=student_log,
FILENAME='D:\software\worker.ldf',
SIZE=3MB,
MAXSIZE=10MB,
FILEGROWTH=1MB
)

2.在worker数据库中创建一个名为employees的数据表

use worker
create table employees
(
number int not null primary key,
name varchar(10) not null,
sex char(3),
birthday datetime not null,
hometown varchar(30),
telephone varchar(15),
address varchar(30)
)

3.向employees的数据表添加两个记录,各个字段的值顺序是:

INSERT INTO employees VALUES('201','李小明','男',1980-07-12,'广东','22218371','五一路')
INSERT INTO employees VALUES('202','张娟','女',1983- 12-19,'北京','47372812','芙蓉路')

4.向employees表中插人number为,name为张军,birthday为-08-08的一条记录。

INSERT INTO employees(number,name,birthday)VALUES(203,'张军',1980-08-08)

5.在employees的数据表中,将name为“李小明”的birthday修改成“-02-09”

update employees
set birthday='1982-02-09' where name='李小明'

6.将hometown为“北京”的telephone值在前面加上“-”,如“-47372812”

update employees
set telephone='010-'+telephone where hometown='北京'

7.将number为和的记录,birthday都改为-09-09,address改为太白路

update employees
set birthday='1990-09-09',address='太白路' where number=201 or number=202

8.将name为“李小明”的数据从employees的数据表中删除

delete from employees where name='李小明'

9.清空employees 表中的所有数据

delete from employees


总结

今天总结的课后习题是否对友友们有帮助呢?😉可以点赞收藏博客,关注博主的后续分享关于数据库原理内容哦~👻👻

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
1月前
|
SQL 关系型数据库 Serverless
sql注入原理与实战(四)数据表操作
sql注入原理与实战(四)数据表操作
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
115 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
61 6
|
4月前
|
SQL 数据采集 数据管理
SQL数据:探索、管理与优化的全面解析
在信息化时代,数据成为企业核心资产。本文探讨SQL在数据探索、管理与优化中的作用:使用DESC、SELECT了解数据集;评估数据质量;发现数据特征。管理方面,涵盖数据存储、检索、更新与维护。优化则涉及索引、查询及数据库设计,确保高性能和效率。掌握SQL能有效挖掘数据价值,支持企业决策与创新。
98 1
|
4月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
381 1
|
3月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
477 0
|
4月前
|
SQL 存储 数据挖掘
SQL数据:挖掘、管理与应用的深度探索
在数据驱动的时代, SQL作为数据库管理和查询的基石至关重要。本文探讨了SQL数据的挖掘、管理与应用。数据挖掘包括数据查询、聚合与关联,帮助发现数据模式和趋势以支持决策。数据管理确保数据的完整性、一致性和可用性,涉及存储、检索、更新和维护。而数据的应用则能推动业务发展、优化运营、提升客户体验和促进创新。通过高效利用SQL,企业可以最大化其数据资产的价值并在竞争中脱颖而出。
106 0
|
4月前
|
SQL 监控 数据库
SQL Server 查询超时问题排查
【7月更文挑战第8天】排查 SQL Server 查询超时涉及五个主要方面:检查复杂查询、评估服务器性能、审视配置参数、更新统计信息和分析执行计划。关注点包括查询的结构(如连接、子查询和索引),服务器资源(CPU、内存、网络延迟),连接和内存设置,以及统计信息的时效性。通过这些步骤可定位并解决性能瓶颈。
120 0