数据库基础02:数据库表创建、修改、复制、删除与表数据处理
bigegpt 2024-10-08 00:41 9 浏览
??本文介绍基于Microsoft SQL Server软件,实现数据库表的创建、修改、复制、删除与表数据处理的方法。
??系列文章专栏:数据库基础_疯狂学习GIS的博客-CSDN博客。
??系列文章中示例数据来源于《SQL Server实验指导(2005版)》一书。尊重版权,因此遗憾不能将相关示例数据一并提供给大家;但是依据本系列文章的思想与对操作步骤、代码的详细解释,大家用自己手头的数据,可以将相关操作与分析过程加以完整重现。
1 交互式创建数据库表T
(1) 启动Microsoft SQL Server 2008 R2软件;
(2) 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“附加”选项;
(3) 选择需要加以附加的数据库物理文件,选择定位文件夹“G:\sql\chutianjia sql”并选择对应数据库jxsk的物理文件并选择“确定”按钮,再次选择“确定”即可;
(4) 选择“数据库”→“jxsk”;右击“表”,在弹出的菜单中选择“新建表”选项;
(5) 依照《SQL Server实验指导(2005版)》“教师表T”中内容,输入各字段定义;单击工具栏中的保存按钮,在弹出的“选择名称”对话框中输入表名称“T”;点击“确定”;
(6) 点击窗格右上角关闭按钮,关闭窗格;在“对象资源管理器”中,单击“数据库”,打开所建立的数据库表,选择“列”,即可看到其内容,如以下两图;
2 交互式创建数据库表S
依据上述方式创建学生表“S”,其中依照《SQL Server实验指导(2005版)》中内容,输入各字段定义,如以下两图;
3 T-SQL创建数据库表C
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
CREATE TABLE C(CNO CHAR(2),
CN CHAR(10),
CT TINYINT)
(2) 将jxsk设置为当前数据库,单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已存在通过上述方法新建立的数据库表C,如下图;
4 T-SQL创建数据库表SC
依据上述方式创建表“SC”,如下两幅幅图;其中输入的语句为:
CREATE TABLE SC(SNO CHAR(2),
CNO CHAR(2))
5 T-SQL创建数据库表TC
依据上述方式创建表“TC”,如以下两幅图;其中输入的语句为:
CREATE TABLE TC(TNO CHAR(2),
CNO CHAR(2))
6 交互式向数据库表S中添加新列NATIVE
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”,右击“dbo.S”,在弹出的菜单中选择“编辑前200行”,如下图;
(2) 在打开的表设计器的最后一行添加新列NATIVE,其中列名为NATIVE,数据类型为CHAR,长度为40,选择为NOT NULL;在操作过程中需要进行取消阻止保存项,如下图;
(3) 单击工具栏中的保存按钮,并将窗口关闭。
7 交互式修改数据库表S中的列NATIVE
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”,右击“dbo.S”,在弹出的菜单中选择“编辑前200行”;
(2) 将新列NATIVE的长度修改为16,选择为NULL,如下图;
(3) 单击工具栏中的保存按钮,并将窗口关闭。
8 交互式删除数据库表S中的列NATIVE
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”,右击“dbo.S”,在弹出的菜单中选择“编辑前200行”;
(2) 找到要删除的列NATIVE,单击NATIVE的行选择器,选择要删除的列NATIVE定义行并右击,在弹出的菜单中选择“删除”,如下图;
(3) 单击工具栏中的保存按钮,并将窗口关闭。
9 T-SQL向数据库表S中添加列NATIVE
(1) 依照上述方法重新创建数据库表S;
(2) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句,如下图:
ALTER TABLE S
ADD NATIVE CHAR(40) NULL
(3) 将jxsk设置为当前数据库,单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(4) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“odb.S”→“列”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已存在通过上述方法新建立的列NATIVE,如下图;
10 T-SQL修改数据库表S中的列NATIVE
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
ALTER TABLE S
ALTER COLUMN NATIVE CHAR(16) NULL
(2) 将jxsk设置为当前数据库,单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“odb.S”→“列”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中通过上述方法新建立的列NATIVE的定义已被修改,如下图;
11 交互式删除数据库表TC
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”,右击“dbo.TC”,在弹出的菜单中选择“删除”;
(2) 可以发现在“删除对象”列表中存在待删除的数据库表TC,单击“确定”按钮,完成删除数据库表TC操作,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已不存在数据库表TC,如下图;
12 T-SQL删除数据库表T
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk
GO
DROP TABLE T
GO
(2) 将jxsk设置为当前数据库,单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已不存在数据库表T,如下图;
13 Excel文件S_EXCEL.xls中数据导入数据库表S
(1) 依据实验教材,创建Excel格式文件S_EXCEL.xls;
(2) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”并右击,在弹出的菜单中选择“任务”→“导入数据”,打开“SQL Serve 导入和导出向导”,如下图;
(3) 选择“下一步”按钮,打开“选择数据源”菜单,在“数据源”下拉列表中选择 Microsoft Excel;单击“Excel文件路径”一栏右侧的“浏览”按钮,选择要导入的源数据文件S_EXCEL.xls,如下图;
(4) 在“Excel版本”一栏下拉列表中,选择 Microsoft Excel 97-2003;选择“首行包含列名称”复选框;
(5) 选择“下一步”按钮,打开“选择目标”窗口,设置导入目标数据库各选项,并正确配置各选项,如以下图;
(6) 执行完毕,系统显示“执行成功”窗口,如果有“错误”,返回前面相应的步骤纠正后,继续执行。单击“关闭”按钮,数据导入操作完成,如下两图;
(7) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”并右击表S,在弹出的菜单中选择“选择前1000行”可查看表中内容,如下图。
14 交互式录入数据至数据库表T
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”,右击“dbo.TC”,在弹出的菜单中选择“编辑前200行”;
(2) 在打开的空的数据库表T中,依照实验教材指导书上内容将数据录入数据库表T中,如以下两图;
(3) 单击数据库表T窗格右上角的“关闭”按钮,以关闭数据库表T;可在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“odb.T”处右键,在弹出的菜单中选择“选择前1000行”选项,可见其所示内容中已存在通过上述方法新建立的数据,如下图;
15 INSERT INTO语句插入数据至数据库表C
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk
GO
INSERT INTO C VALUES('C1','程序设计','60')
GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“odb.C”处右键,在弹出的菜单中选择“选择前1000行”选项,可见其所示内容中已存在通过上述方法新建立的课程记录,如下图;
(4) 重复上述步骤,将实验指导书对应表格内容全部添加至数据库表C,最终结果如下图;
其中需要将
('C1','程序设计','60')
依次改为
('C2','微机原理','80')
('C3','数字逻辑','60')
('C4','数据结构','80')
('C5','数据库','60')
('C6','编译原理','60')
('C7','操作系统','60')
16 交互式修改数据库表S中数据
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”并右击表S,在弹出的菜单中选择“编辑前200行”;
(2) 在打开的数据库表S中,选中学生“周武”记录的系别字段“DEPT”值“计算机”,将删除“计算机”并输入“信息”,如下图;
(3) 点击数据库表S窗格右上角的“关闭”按钮,以关闭数据库表并保存修改。
17 T-SQL修改数据库表T中数据
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”并右击表T,在弹出的菜单中选择“选择前1000行”可查看表T中内容,
(2) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句,如下图:
USE jxsk
GO
UPDATE T SET PROF='副教授' WHERE TN='王平'
GO
(3) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句;
(4) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”并右击表T,在弹出的菜单中选择“选择前1000行”可查看表T中内容已对应改变。
18 交互式删除数据库表S中数据
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”并右击表S,在弹出的菜单中选择“编辑前200行”;
(2) 在打开的数据表S中,选择学生“周武”记录行左侧的“行选择器”,选中“周武”记录行并右键,在弹出的窗口中选择“删除”选项,如下图;
(3) 在弹出的确认删除对话框中确认删除,如下图。
19 T-SQL修改数据库表T中数据
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”并右击表T,在弹出的菜单中选择“选择前1000行”可查看表T中内容;
(2) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk
GO
DELETE FROM T WHERE TN='王平'
GO
(3) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(4) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”并右击表T,在弹出的菜单中选择“选择前1000行”可查看表T中内容已对应改变,如下图。
20 T-SQL复制数据库表S生成新数据表test1
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk
GO
SELECT*INTO test1 FROM S
GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”,可看到数据库表test1已存在,如下图;
(4) 并可查看其内容,如下图;
21 T-SQL复制数据库表T中“男”同学记录,生成新数据库表test2
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk
GO
SELECT TN,SEX,AGE,PROF into test2 FROM T
WHERE SEX='男'
GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”,可看到数据库表test2已存在,如下图。
相关推荐
- pyproject.toml到底是什么东西?(py trim)
-
最近,在Twitter上有一个Python项目的维护者,他的项目因为构建失败而出现了一些bug(这个特别的项目不提供wheel,只提供sdist)。最终,发现这个bug是由于这个项目使用了一个pypr...
- BDP服务平台SDK for Python3发布(bdp数据平台)
-
下载地址https://github.com/imysm/opends-sdk-python3.git说明最近在开发和bdp平台有关的项目,用到了bdp的python的sdk,但是官方是基于p...
- Python-for-Android (p4a):(python-for-android p4a windows)
-
一、Python-for-Android(p4a)简介Python-for-Android(p4a),一个强大的开发工具,能够将你的Python应用程序打包成可在Android设备上运行...
- Qt for Python—Qt Designer 概览
-
前言本系列第三篇文章(QtforPython学习笔记—应用程序初探)、第四篇文章(QtforPython学习笔记—应用程序再探)中均是使用纯代码方式来开发PySide6GUI应用程序...
- Python:判断质数(jmu-python-判断质数)
-
#Python:判断质数defisPrime(n):foriinrange(2,n):ifn%i==0:return0re...
- 为什么那么多人讨厌Python(为什么python这么难)
-
Python那么棒,为什么那么多人讨厌它呢?我整理了一下,主要有这些原因:用缩进替代大括号许多人抱怨Python完全依赖于缩进来创建代码块,代码多一点就很难看到函数在哪里结束,那么你就需要把一个函数拆...
- 一文了解 Python 中带有 else 的循环语句 for-else/while-else
-
在本文中,我们将向您介绍如何在python中使用带有else的for/while循环语句。可能许多人对循环和else一起使用感到困惑,因为在if-else选择结构中else正常...
- python的numpy向量化语句为什么会比for快?
-
我们先来看看,python之类语言的for循环,和其它语言相比,额外付出了什么。我们知道,python是解释执行的。举例来说,执行x=1234+5678,对编译型语言,是从内存读入两个shor...
- 开眼界!Python遍历文件可以这样做
-
来源:【公众号】Python技术Python对于文件夹或者文件的遍历一般有两种操作方法,一种是至二级利用其封装好的walk方法操作:import osfor root,d...
- 告别简单format()!Python Formatter类让你的代码更专业
-
Python中Formatter类是string模块中的一个重要类,它实现了Python字符串格式化的底层机制,允许开发者创建自定义的格式化行为。通过深入理解Formatter类的工作原理和使用方法,...
- python学习——038如何将for循环改写成列表推导式
-
在Python里,列表推导式是一种能够简洁生成列表的表达式,可用于替换普通的for循环。下面是列表推导式的基本语法和常见应用场景。基本语法result=[]foriteminite...
- 详谈for循环和while循环的区别(for循环语句与while循环语句有什么区别)
-
初九,潜龙勿用在刚开始使用python循环语句时,经常会遇到for循环和while循环的混用,不清楚该如何选择;今天就对这2个循环语句做深入的分析,让大家更好地了解这2个循环语句以方便后续学习的加深。...
- Python编程基础:循环结构for和while
-
Python中的循环结构包括两个,一是遍历循环(for循环),一是条件循环(while循环)。遍历循环遍历循环(for循环)会挨个访问序列或可迭代对象的元素,并执行里面的代码块。foriinra...
- 学习编程第154天 python编程 for循环输出菱形图
-
今天学习的是刘金玉老师零基础Python教程第38期,主要内容是python编程for循环输出菱形※。(一)利用for循环输出菱形形状的*号图形1.思路:将菱形分解为上下两个部分三角形图案,分别利用...
- python 10个堪称完美的for循环实践
-
在Python中,for循环的高效使用能显著提升代码性能和可读性。以下是10个堪称完美的for循环实践,涵盖数据处理、算法优化和Pythonic编程风格:1.遍历列表同时获取索引(enumerate...
- 一周热门
- 最近发表
-
- pyproject.toml到底是什么东西?(py trim)
- BDP服务平台SDK for Python3发布(bdp数据平台)
- Python-for-Android (p4a):(python-for-android p4a windows)
- Qt for Python—Qt Designer 概览
- Python:判断质数(jmu-python-判断质数)
- 为什么那么多人讨厌Python(为什么python这么难)
- 一文了解 Python 中带有 else 的循环语句 for-else/while-else
- python的numpy向量化语句为什么会比for快?
- 开眼界!Python遍历文件可以这样做
- 告别简单format()!Python Formatter类让你的代码更专业
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)