数据库实验一:数据库与数据表定义(2)—— 数据表相关操作

简介: 使用T-SQL命令方法创建自定义数据类型myName2为Nvarchar(20),不允许为空;自定义数据类型myDept为char(50),允许为空。(提示:CREATE TYPE…FROM命令)

一、前言


本文将争对有关数据表相关操作进行讲解


二、自定义数据类型


1.直接创建


1️⃣题目


打开数据库School1:


要求使用Microsoft SQL Server Management Studio方法分别创建自定义数据类型myID为char(8),不允许为空;自定义数据类型myName1为Nvarchar(10),不允许为空;


2️⃣操作步骤


1.按照如下图所示,右键点击“用户定义数据类型”,选择“新建…”


c59dea9c6dba43979f2e00a3643a34f2.png


2.按照要求填入名称、数据类型以及长度


dc0601bf5ccc44ffb93eb2a59f11208f.png


3.添加成功


6422e04d0ff447c99428a4ebdb8c2f02.png


2. 使用T-SQL命令创建


1️⃣题目


使用T-SQL命令方法创建自定义数据类型myName2为Nvarchar(20),不允许为空;自定义数据类型myDept为char(50),允许为空。(提示:CREATE TYPE…FROM命令)


2️⃣操作步骤


1.点击“新建查询”,输入语句


CREATE TYPE myName2 FROM Nvarchar(20) NOT NULL
CREATE TYPE myDept FROM char(50)

4f358dd1ebf946ed978497939ddef95c.png


2.点击执行


d920b980191c40c2adeaddde31d37d96.png


3.右键点击服务器后刷新


198bd50227b6423fa1034be602ac27e8.png


4.创建成功


d216c69f4b3b44a3b4f3e6daf0c37675.png


三、 数据表的创建


1.直接创建表


1️⃣题目


(1)使用Microsoft SQL Server Management Studio在School1数据库中建立TInfo表,该表的表结构见表2-1


表2-1 TInfo表结构


列名 数据类型 长度 备注
Tid myID 设为关键字
Tname varchar 10 不能为空
Sex char 2 其值只能为“男”或“女”,默认为“男”
Dept varchar 30 允许为空
Tbirthday smalldatetime 允许为空
Ttitle varchar 10 允许为空
Tphone char 11 允许为空


2️⃣操作步骤


1.右键点击表,选择新建表


6e2af45f1d4e4fa0bb534fbdf613d95d.png


2.右键Tid格,设置主键


6e2e89fbc68d417fbaba3bae244c7d3c.png


3.选择数据类型


f26b98b9cb214baab7144a16085be11c.png


4.右键点击Sex栏,选择约束


d9a789fc1d5948789597b1613c617d1c.png


5.添加约束


ffe765e6696e4c6196b2b50615bf6aea.png


6.设置默认值


ba559cd171094c2eafc8e446263e4cf7.png


7.保存表


c9f6f4ebd09d4a909d32fb146f8d3f08.png


8.给表起名,并保存在D:/DataA目录下


cb7da47e56bb428994e874c4c59b675f.png


9.完成新建表操作


af7e3022d34e4dc7892d4c87c9d5f5bd.png


2.使用T-SQL建表


1️⃣题目


使用T-SQL命令在School1数据库中创建表SInfo。


表2-2 SInfo表结构


列名 数据类型 长度 备注
SID myID 设为关键字
Sname myName1 不能为空
Sex char 2 其值只能为“男”或“女”,默认为“男”
Birthday smalldatetime 允许为空
Dept myDept 允许为空
Major varchar 30 允许为空
Class varchar 18 允许为空
IDCardNo char 18 不允许为空


2️⃣操作步骤


1.选择School1数据库后新建查询,输入语句


CREATE TABLE SInfo(
SID myID PRIMARY KEY,
SName myName1 NOT NULL,
Sex char(2) DEFAULT('男') CHECK(Sex in('男','女')),
Birthday smalldatetime,
Dept myDept,
Major varchar(30),
Class varchar(18),
IDCardNo char(18) NOT NULL,
);

cec4ad20837d4ea3ada803de34eb5987.png


2.点击执行


da5a8da0cbb44deb9cddda17f234cea7.png


3.右键点击服务器后刷新


a9239e5878dc4470a3aa7e0bb8051e36.png


4.创建成功


7ccdb826e0e04b50bf06711aabc86e45.png


3.使用T-SQL命令添加外键约束


1️⃣题目


使用T-SQL命令在School1数据库中创建表CInfo 和ScoreInfo,表结构分别如下表所示


afd68b5be4e94519a57deeb0495f4362.png


2️⃣操作步骤


1.修改可用数据库为School1后点击新建查询并输入语句


CREATE TABLE ScoreInfo(
  CID myID PRIMARY KEY ,
  Cname myName2 NOT NULL,
  CCradit tinyInt NULL,
  CProperty varchar(10),
);

2e40060ed2cf43b086215606ae58ae55.png


2.点击执行


a3d19b372ac24ac4ab5068f2d000b170.png


3.右键点击服务器后刷新


09061f12ba2042dfac5f54f8c1e092d2.png


4.新建成功


65a6b907c5ef4734ad66ff6370fd3bb4.png


5.保存表


aa18c7a8ce934f95b59b2e91bbdd86a9.png


同理,创建ScoreInfo表


四、数据表的修改


1.添加数据


1️⃣题目


用T-SQL命令语句修改表结构:

修改表SInfo表的表结构,设置IDCardNo值为惟一的。


2️⃣操作步骤


1.修改可用数据库为School1后点击新建查询并输入语句


b0b5ca03237649358bd60bac28585724.png


2.点击执行


3a176802eda74de3872c5655ffa0ab75.png


3.查看操作是否成功


44a48a8882524a45803480a50b52f17f.png

e34b45bef3bf42748ea7fd14e91d539f.png

c401a24527114641b51dd97edf61816c.png


2.修改默认值


1️⃣题目


修改ScoreInfo表结构,设置term值只能为1或2,默认值为1


2️⃣操作步骤


1.修改可用数据库为School1后点击新建查询并输入语句


ALTER TABLE ScoreInfo ADD DEFAULT 1 FOR term
ALTER TABLE ScoreInfo ADD CHECK(term=1 or term=2)

621b4322112c4431a4a7a0fc6399923e.png


2.点击执行


15626cdd4c8f490d8f43bf6870ad9db9.png


3.查看操作是否成功


4eee63a6ab0042bcb48e089f121a7a3b.png

a7fc13ed95704accbc473a985c74b448.png


48125bcea8944bbf8182a28827756762.png

7b651c1f5a69427b9cef39d1501bec54.png


3.添加带约束条件的字段


1️⃣题目


在表SInfo中添加一字段EntroData(即入学日期),要求该输入范围在1900-1-1至2079-1-1之间


2️⃣操作步骤


添加字段


1.修改可用数据库为School1后点击新建查询并输入语句


ALTER TABLE SInfo ADD EntroData DATE

80c769331d8f454f95c389fa48e70324.png


2.点击执行


a6ad9d403c7545efbc6ad611ff9ebf2e.png


增加范围约束


1.修改可用数据库为School1后点击新建查询并输入语句


ALTER TABLE SInfo ADD CHECK(  EntroData between cast('1900-1-1' as datetime) and cast('2079-1-1' as datetime))

88c718ccd13d4c40ad9eb552b3a22008.png


2.点击执行


ab29b96e737240e4a06b6b50cf26f559.png


查看操作是否成功


1.右键点击SInfo表,并选择设计


7c0b537253b94cc9908b341babb3b198.png


2.右键点击EntroData,选择CHECK约束


9ab059a0ed3c4cab8a9a08be88f12acf.png


3.选中表达式这一行,出现红框内图标后点击图标


e12aea711b3c4d88bc0f6c5253e4cf37.png

1c505c98f9ff4d9281ed83252f615ac9.png


4.删除字段


1️⃣题目


修改表TInfo的表结构,要求删除其中的TBirthday字段


2️⃣操作步骤


修改可用数据库为School1后点击新建查询并输入语句


ALTER TABLE TInfo DROP column TBirthday

cbb52d95f27644b49db6065fdebfba7e.png


2.点击执行


171570f3b0ca42cb8234e26d9e033b8f.png


3.查看操作是否成功


2359941d9dd943eea6516bd4d97a75ff.png

30c7800a24b4428d9f04bf023a6a0c16.png



五、结语


如果有任何问题或者错误欢迎在评论区留言,本专栏将持续更新

相关文章
|
28天前
|
缓存 数据库 数据安全/隐私保护
Discuz! X 数据库字典详解:DZ各数据表作用及字段含义
我们使用DISCUZ做网站时,有时需要对数据表进行操作,在操作数据表之前,需要对数据表进行了解。下面是DISCUZ 数据库各数据表作用及字段含义详解,方便新手更好的了解DISCUZ数据库。
48 4
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
65 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
3月前
|
存储 SQL 监控
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
45 2
|
3月前
|
SQL 数据处理 数据库
|
3月前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库2.0问题之DBStack的定义如何解决
云原生数据库2.0问题之DBStack的定义如何解决
|
4月前
|
数据采集 分布式计算 大数据
MaxCompute产品使用合集之数据集成中进行数据抽取时,是否可以定义使用和源数据库一样的字符集进行抽取
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
Oracle 关系型数据库 Java
实时计算 Flink版操作报错合集之cdc postgres数据库,当表行记录修改后报错,该如何修改
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
4月前
|
SQL 监控 关系型数据库
实时计算 Flink版操作报错合集之在设置监控PostgreSQL数据库时,将wal_level设置为logical,出现一些表更新和删除操作报错,怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
4月前
|
关系型数据库 Java 数据库
实时计算 Flink版操作报错合集之flinksql采PG数据库时报错,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
下一篇
无影云桌面