SQL Server数据库 -- 表的创建与管理

文章目录

  • 一、数据表的组成
  • 二、创建数据表
    • 表的创建
    • 表的查看
    • 表的增加
    • 表的修改
    • 表的删除、
  • 三、表的架构操作
  • 四、总结


前言

上次博客写到了数据库的创建与管理,但是创建的库里面什么东西都没有,现在我们需要在库里面添加数据表内容


 

一、数据表的组成

在创建表之前,我们需要先知道表里面有哪些东西,知己知彼,才知道自己在干什么,怎么干!!

数据表和excel里面的表差别不大,是由列名、数据类型和约束组成。

常见的列名有学号、姓名、性别等等。数据类型和java,c语言的有的一样,有的不一样,有单独的一节专门讲类型,常见的有int、char等等。

约束是通过限制列的取值来强制实现域的完整性,例如年龄不能低于0岁,性别默认为男等等。

实现完整性的约束有:

1、主键约束

2、外键约束

3、unique唯一约束

4、default默认约束

5、check范围约束

6、not null 不为空约束

(1)主键约束

关键字:primary key

作用:用来标识这个表中唯一的列,这一列里面的数必须都不相同,就像我们的身份证号。

在这个course表中,这个符号就代表主键 !!

(2)外键约束

关键字:foreigh key

作用:当两个表需要连接或者有关系时,我们就需要外键把它们联系在一起,组成一个整体表。

 

外键的颜色比主键淡一点,且方向相反!!

(3) 唯一约束

关键字:unique

作用:再去定义一列或多列唯一的值,每列的数也必须不一样!

与主键的区别:1、主键列只能有一列,唯一列可以有多列

                         2、主键列不能为空,而唯一列可以为空null

(4)默认约束 

关键字:defalte

作用:用来默认一些内容,例如计算机专业男生多,就默认性别为男,当你不填写这行内容时,它会自动添加男这个性别。

(5)范围约束

关键字:check

作用:用来约束一些数据的取值范围,例如年龄在60岁以下,成绩在100分以内等等。

(6)不为空约束

关键字:not null

作用:当我们不写某行数据时,系统会默认写上null,如果你不想这列数据有空值就可以限制它。


二、创建数据表

1、表的创建

构建:create --->table 

学生信息表(student)

字段名称

字段类型及长度

说明

备注

sno

Char(20)

学生学号

主关键字

sname

Char(6)

学生姓名

非空

ssex

Char(2)

学生性别

默认为男

sage

Int

学生年龄

范围在0~30

创建一个student表,要求如上!

create table student(            --创建名为student的表
sno char(20) primary key,        --主键
sname char(6) not null,          --不为空
ssex char(2) default '男',       --默认为男
sage int check (sage between 0 and 30)--范围在0到30之间
)

 2、表的查看

我们怎样用肉眼观察到我们已经把表建好了呢?

(1)用鼠标点击软件看图形

 在表student的列中,我们可以很清晰的看到我们所建的东西

(2)用查询语句

select * from student -- 查询表student

 

查询后我们能看见我们所创建的每一列的列名,但是我们只是建了一个空表,是没有内容的,接下来我们就开始进行内容的填写代码实现!!

3、表的增加

构建:insert  into --> values  

学生信息表(student)

sno

sname

ssex

sage

202115001

赵菁菁

23

202115002

李勇

20

202115003

张力

19

202115004

张衡

18

202115005

张向东

20

202115006

张向丽

20

202115007

王芳

20

202115008

王民生

25

将表中内容添加到student学生表中,要求如上!

insert into student values(202115001,'赵菁菁','女',23),
						  (202115002,'李勇','男',20),
						  (202115003,'张力','男',19),
						  (202115004,'张衡','男',18),
						  (202115005,'张向东','男',20),
						  (202115006,'张向丽','女',20),
						  (202115007,'王芳','女',20),
						  (202115008,'王民生','男',25)

添加完成后再次查看这个表

select *from student

 4、表的修改

 构建   alter---> column,

(1)修改表的名字

修改表student新名称为student1

exec sp_rename 'student','student1' 

刷新后可看见 

(2)修改表字段名字

修改表 student1 中字段 “ssex” 名称为 “gender”

exec sp_rename 'student1.ssex','gender'
--exec sp_rename '表名.列名','新列名'

(3)添加一个新的字段 

为student1添加一个爱好字段 love char(10)

alter table student1 add love char(10)

(4)删除一个字段 

为student1删除字段 love 

alter table student1 drop column love

(5)修改表字段操作

修改表 student1 中字段名为 “sname” 的字段长度由原来的6改为8;

alter table student1 alter column sname char(8)

修改内容 

修改表李勇的名字改为李华 

update student1
set sname = '李华'
where sname = '李勇'

修改李华的性别为女 

update student1
set gender = '女'
where sname = '李华'

将学号为“202115003”的学生信息重新设置为“王丹丹、女、20

update student1
set sname = '王丹丹',gender = '女',sage = 20
where sno = 202115003

 删除内容

 删除数据表student1年龄大于24的男同学的记录

delete student1
where gender = '男' and sage>24

5、表的删除 

删除表student1

drop table student1

三、表的架构操作

在对架构进行一系列操作之前,我们首先得明白什么是架构,有什么用途

架构:简单来说就是一个数据库对象容器,相当于一个文件夹,这个文件夹下面可以放很多不同的表、视图的文件。

数据库是有一个默认的架构 --dbo,在每一个表的前面是可以看见的!!

现在我们要弄一个新的架构,然后放入这些表!!! 

 

1、架构的创建 

为用户dbo定义一个新的架构,架构名为myself

create schema myself authorization dbo

 

目前就有了一个新的myself架构

2、架构添加表

将默认架构dbo中的student1表传输到myself架构中。

alter schema myself transfer dbo.student1

 

将表移回来 

  将架构myself中的student1表传输到dbo架构中。

alter schema dbo transfer myself.student1

 3、删除架构

删除架构myself

drop schema myself

四、总结 

从大致上看,在数据库下面有不同的架构,这些架构下面放上表、视图等文件,我们可以对表进行一系列的增删查改操作

首先得创建表create、然后用图形或者查询语句进行查看,然后需要进行增加表里面的内容insert into 表明 values(...),做了这些之后表里面的内容是需要修改的,从大范围的修改alter 到小范围的修改update、delete等,最后可以删除这个表drop。

学习sql server数据库得先看森林再见树木、由于很多书本杂乱无章没有总结,因此自己想做这个系列,接下来还会继续做表的查询等相关内容,希望文章能够帮助到你!!!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/34425.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL:聚合函数(全面详解)

聚合函数 前言一、聚合函数介绍1、AVG和SUM函数2、 MIN和MAX函数3、COUNT函数 二、GROUP BY1、基本使用2、使用多个列分组3、 GROUP BY中使用WITH ROLLUP 三、HAVING1、基本使用2、WHERE和HAVING的对比 四、 SELECT的执行过程1、查询的结构2、SELECT执行顺序3、SQL 的执行原理 …

Presto(Trino)分布式(物理)执行计划的生成和调度

文章目录 1.前言2.物理执行生成(Stage)的生成2.1不同的调度分区策略2.1.1 Connector自己提供的分区策略2.1.2 Presto提供的Partition策略(SystemPartitioningHandle): 2.2 为Stage创建StageScheduler2.2.1 普通的非bucket表的TableScan StageSplit 放置策略解析 2.2…

Tune-A-Video:用于文本到视频生成的图像扩散模型的One-shot Tuning

Tune-A-Video: One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation Project:https://tuneavideo.github.io 原文链接:Tnue-A-Video:用于文本到视频生成的图像扩散模型的One-shot Tuning (by 小样本视觉与智能前沿&…

Nginx-反向代理详解

本文已收录于专栏 《中间件合集》 目录 概念说明什么是Nginx什么是反向代理 功能介绍配置过程1.修改nginx配置文件修改全局模块修改工作模块修改HTTP模块 2.保存配置文件3.重启配置文件4.查看配置文件是否重启成功 配置反向代理的好处总结提升 概念说明 什么是Nginx Nginx 是一…

Nginx服务器的六个修改小实验

一、Nginx虚拟主机配置 1.基于域名 (1)为虚拟主机提供域名解析 配置DNS 修改/etc/hosts文件 (2)为虚拟主机准备网页文档 #创建网页目录 mkdir -p /var/www/html/abc mkdir -p /var/www/html/def ​ #编写简易首页html文件 ec…

89C52RC普中单片机-3

1.LCD1602调试工具 main.c #include<regx52.h> #include "lcd1602.h" void main() {lcd1602_init();//LCD1602初始化();while(1){lcd1602_show_string(0,0,"helloworld");lcd1602_show_string(1,1,"123456.0");} } lcd1602.c #include …

matlab 使用预训练神经网络和SVM进行苹果分级(带图形界面)支持其他物品图片分级或者分类

目录 数据集&#xff1a; 实验代码&#xff1a;alexnet版 如果你的matlab不是正版&#xff0c;先看这里&#xff1a; 数据集结构&#xff1a; 训练代码&#xff1a; 训练结果&#xff1a; 图形界面&#xff1a; 界面展示&#xff1a; 其他&#xff1a; 输出结果: 实验…

Ansible练习

部署ansible练习 开始之前先使用student用户登录 登录命令&#xff1a;ssh studentworkstation 在workstation上运行lab deploy-review start命令&#xff0c;此脚本将确保受管主机在网络上访问。 然后开始验证控制节点上是否安装了ansible软件包&#xff0c;在运行anisble -…

centos磁盘扩容

解释 PE - 物理块&#xff08;Physical Extent&#xff09; 硬盘上有很多实际物理存在的存储块PV - 物理卷 &#xff08;Physical Volume&#xff09; 物理卷处于最底层&#xff0c;它可以是实际物理硬盘上的分区&#xff0c;也可以是整个物理硬盘(相当于单独做一个分区)&…

GPT模型训练实践(2)-Transformer模型工作机制

Transformer 的结构如下&#xff0c;主要由编码器-解码器组成&#xff0c;因为其不需要大量标注数据训练和天然支持并行计算的接口&#xff0c;正在全面取代CNN和RNN&#xff1a; 扩展阅读&#xff1a;What Is a Transformer Model? ​ ​ 其中 编码器中包含自注意力层和前馈…

LabVIEW 图像处理功能

设置成像系统并采集图像后&#xff0c;您可以分析和处理图像&#xff0c;以提取有关被检测对象的有价值信息。 内容 图像分析图像处理斑点分析机器视觉 图像分析 影像分析结合了基于影像像素的灰度强度计算统计数据和测量的技术。您可以使用影像分析功能来确定影像质量是否足以…

Java单例模式

Java单例模式 1、概念2、代码实现方案饿汉式实现:懒汉式实现:饿汉式PK懒汉式&#xff1a; 3、单例模式的特点及适用场景优点&#xff1a;缺点&#xff1a;适用场景&#xff1a; 4、关于单例模式的常见问题4.1 public static SingletonOne getlnstance(){}A.该方法为什么用静态的…

python爬虫快速入门

Python有其简洁明了&#xff0c;功能强大的优势&#xff0c;特别是在网络爬虫的应用上。接下来&#xff0c;我将分享一个适合Python初学者的爬虫快速入门教程。 一、Python爬虫简介 网页爬虫&#xff0c;是一种自动从互联网上获取信息的程序。在Python语言中&#xff0c;requ…

【Qt】程序异常结束。The process was ended forcefully.(解决方法不一样哦)

环境 系统&#xff1a;win10 64bit Qt&#xff1a;5.14.1 编译器&#xff1a;MinGW 32-bit 问题 Qt工程编译正常&#xff0c;但无法调试&#xff0c;报错&#xff1a;程序异常结束。The process was ended forcefully. 步骤 已尝试网上方法仍然不行的&#xff0c;可以直接…

Visual studio 快捷键(个人记录加深印象)

1、CtrlK 后 Ctrlx 插入代码片段快捷键&#xff08;或 编辑”>“IntelliSense”>“插入代码片段&#xff09; 注&#xff08;摘抄&#xff09;&#xff1a;该列表包含用于创建类、构造函数、for 循环、if 或 switch 语句等的代码片段

硬件学习件Cadence day12 PCB设计中打地孔与地孔设计,PCB 后期处理,钻孔文件导出

1. 制作 过地孔的焊盘 &#xff08;两种方法&#xff09;&#xff08;又叫制作盲埋孔&#xff09; 1.1 制作热风焊盘 &#xff08;之前的教程有&#xff0c;现在只给数据&#xff09; 1.2 第一种 allegro 外部 焊盘软件制作 1.2.1 打开软件 1.2.2 制作焊盘&#xff0c;查看…

Layout-静态模板结构搭建、字体图标引入、一级导航渲染、吸顶导航交互实现、Pinia优化重复请求【小兔鲜Vue3】

Layout-静态模板结构搭建 Layout模块静态模板搭建 LayoutNav.vue <script setup></script><template><nav class"app-topnav"><div class"container"><ul><template v-if"true"><li><a h…

【SQL应知应会】分析函数的点点滴滴(二)

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习&#xff0c;有基础也有进阶&#xff0c;有MySQL也有Oracle 分析函数的点点滴滴 1.什么是分析函数&#xff1a;…

图书推荐管理系统Python,基于Django和协同过滤算法等实现

一、介绍 图书推荐系统 / 图书管理系统&#xff0c;以Python作为开发语言&#xff0c;基于Django实现&#xff0c;使用协同过滤算法实现对登录用户的图书推荐。 二、效果展示 三、演示视频 视频代码&#xff1a;https://www.yuque.com/ziwu/yygu3z/gq555ph49m9fvrze 四、Dj…

http长连接与会话保持

"我们半推半就的人生&#xff0c;没有和你一样被眷顾的未来!" 一、Http长连接 (1) 为什么需要长连接 如上展示的是一个常规得并不能再常规的http服务&#xff0c;从本地拉取远端linux上的本地文件上传至浏览器上&#xff0c;经过浏览器的渲染展示成如今的样子。唔&a…