数据库实验一:数据库与数据表定义(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



五、结语


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

相关文章
|
29天前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
16 0
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
99 1
|
2天前
|
SQL JavaScript API
❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)
【4月更文挑战第4天】❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)在Node.js中实现删除本地数据库记录的操作。首先尝试通过SQL删除ID为8的用户,然后编写`app.delete`路由处理程序,从请求体获取ID并执行删除。。最终成功删除用户并展示了数据库的更新结果。下一节将优化增删改查功能。
15 1
|
1月前
|
缓存 NoSQL 数据库
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
|
1月前
|
SQL 存储 关系型数据库
【mysql】—— 数据库的操作
【mysql】—— 数据库的操作
【mysql】—— 数据库的操作
|
2月前
|
关系型数据库 分布式数据库 数据库
云原生数据库PolarDB快速入门实验
【2月更文挑战第2天】很基础的PolarDB入门操作实验考试,假期闲着无聊考着玩玩。云原生数据库 PolarDB MySQL 版是阿里云自研产品,100%兼容 MySQL。PolarDB产品具有多主多写、多活容灾、HTAP 等特性,交易性能最高可达开源数据库的6倍,分析性能最高可达开源数据库的400倍,TCO 低于自建数据库50%。
|
2月前
|
存储 SQL 数据库连接
连接并操作数据库:Python 数据库案例
数据库是一种用于存储和管理数据的工具,它以一种有组织的方式将数据存储在文件或内存中,以便于检索和处理。数据库系统通常使用 SQL(Structured Query Language)语言来进行数据的操作,包括数据的插入、查询、更新和删除等。
|
2月前
|
前端开发 数据库连接 数据库
ASP.NETMVC数据库完整CRUD操作示例
ASP.NETMVC数据库完整CRUD操作示例
29 0
|
2月前
|
SQL Oracle 关系型数据库
【操作宝典】Navicat+MySQL:极简教程,轻松玩转数据库!
【操作宝典】Navicat+MySQL:极简教程,轻松玩转数据库!
49 1
|
3月前
|
关系型数据库 MySQL 数据库
【MySQL】如何使用图形化界面DataGrip操作数据库
【MySQL】如何使用图形化界面DataGrip操作数据库
72 0