首页 > 其他分享 >第五单元 表数据操作

第五单元 表数据操作

时间:2023-11-24 11:12:19浏览次数:31  
标签:UserName -- 第五 UserInfo 操作 null where Id 单元

1. SSMS 方式

在数据库中选择“编辑前200行”选项,然后就可以手动直接输入数据到表行中了。

手动输入的数据是确定的,而且只能一点点输入,遇到大量的数据的时候,操作会变得很繁重,而且它不满足大多数业务的需求,而且不利于更新。

  1. 在对象资源管理器中,右键点击你要打开的表,然后选择 “Edit Top 200 Rows(编辑前200行)” :

     

  2. 然后就可以将数据直接输入到表中了

     

2. T-SQL 方式

1. 添加数据

数字不需要加单引号(加了也不会报错,但不建议这么干),字符类型要加单引号(C#是双引号表示字符串)。

自增

create table Student
(
    Id int primary key identity,  -- 每添加一条数据,Id从1开始,每次自增1
    NickName nvarchar(15), -- unicode
    StudentNo char(11) , -- 学号
    Sex nchar(2),
    Account varchar(20),   -- 账号
    [Password] varchar(50) -- 密码 
);
create table Student
(
    Id int primary key identity(2,2),  -- 每添加一条数据,Id从2开始,每次自增2
    NickName nvarchar(15), -- unicode
    StudentNo char(11) , -- 学号
    Sex nchar(2),
    Account varchar(20),   -- 账号
    [Password] varchar(50) -- 密码 
);
insert into Student values 
('娜娜','2002','女','user3','123456'),
('娜娜','2002','女','user3','123456'),
('娜娜','2002','女','user3','123456');
 

 

完整写法

-- insert into 表名(字段1,字段2,...) values(字段值1,字段值2,...)
insert into UserInfo(UserName,DeptId,Sex,Age) values('任我行码农场','6','未知','18')
insert into UserInfo(UserName,DeptId,Sex,Age,CreateTime) values('刘大侠','6','未知','18','2020-04-20')

 

  1. Id 如果 是自增,不需要手动的添加值

  2. 左边列的数目必须与右边列的数目要一样

  3. insert 添加数据时,括号中的字段必须要有,字段名不能随便写

 

当表中其他字段可以为空时,其他字段可以不用赋值,即

insert into UserInfo(UserName,Sex) values('家宝','男')

简写添加

insert into UserInfo values('谢大侠','7','保密','25','2012-02-25')

这种方式不需要指定字段名称,但是需要指定所有字段的值(除了自增的主键不需要),并且默认值也需要手动加上,不可省略。

使用简写的方式,如果我不想给所有字段都赋值,怎么办?(把不想赋值的字段赋null(前提是这个字段可以允许为空))

insert into UserInfo values('高大侠','7','保密',null,null)

批量添加

insert into UserInfo values
('张大侠','7','保密',null,null),
('胡大侠','7','男',null,null),
('翟大侠','6','男',68,'2020-02-10'),
('杨大侠','3','女',18,'2020-03-10') ;

2. 修改数据

-- 1.将密码修改为 666666
-- 修改的语法结构:update 表 set 要修改的字段1= 字段1值,字段2 = 字段2值
update UserInfo set Pwd='666666' -- 这样修改会把所有的数据都修改了

-- 现在将 编号为3,2 的用户姓名 分别修改为 张三,李四
 -- 语法结构: update 表 set 要修改的字段1= 字段1值,字段2 = 字段2值  where 条件字段=条件值
update UserInfo set UserName='张三'  where  Id=3
update UserInfo set UserName='李四'  where  Id=2

-- 将密码为 666666 并且姓张的同学的 年龄 修改为 25  
-- %:0-n 个任意字符
update UserInfo set Age=25 where Pwd='666666' and UserName like '张%'
-- 将性别为男并且姓黄的同学的角色 修改为 超级管理员
-- 0:男  1:女  2:未知  3:保密
update UserInfo set RoleId='853d469f-7906-4eb6-9034-e4e1314db331' where Sex=0 and UserName like '黄%'

 



-- 将 账号包含了 admin 并且 年龄大于30岁的同学的 密码修改为 1qaz2wsx  年龄 修改为 25岁
update UserInfo set Pwd='1qaz2wsx',Age=25 where Account like '%admin%' and Age>30

 

3. 删除数据

-- 删除用户表中的数据
delete from Userinfo


select * from UserInfo   -- 查询用户表
-- 删除张三,李四两位用户
Delete from UserInfo where UserName='张三' or UserName= '李四'
 -- in:在...里面
delete from UserInfo where UserName in('张三','李四')

-- 删除用户编号为:4,5,6 并且 性别 =3 的用户信息
delete from UserInfo where Id in('4','5','6') and Sex='3'
或者
delete from UserInfo where Id in(4,5,6) and Sex=3

 

什么情况下,一定需要加引号?

  • 字符串,一定需要加引号,还有日期,时间,中文

  • 数字:可加可不加, 建议不要加

4. 清空数据

-- 如何清空数据
delete from RoleInfo

-- 删除用户表中的数据
delete from Userinfo

select * from UserInfo   -- 查询用户表

 -- 清空数据
truncate table UserInfo ;

 

truncate 与 delete 的区别

  • truncate 是真正意义上的清空, 不能加任何查询条件,自增id 会重置

  • delete 只是删除数据,如果Id是自增,则自增种子不会从头开始。

5. 联级删除,联级更新

-- 角色表
 create table RoleInfo
 (
    Id uniqueidentifier primary key,
    RoleName varchar(50) not null ,
    CreateTime datetime not null  default getdate()
 );
 go
 -- 用户表
 create table UserInfo
 (
    Id int primary key identity,
    UserName varchar(50) not null,
    -- 联级删除:on delete cascade,联级更新
    RoleId uniqueidentifier not null 
    foreign key references RoleInfo(Id)  on delete cascade on update cascade,
    Account varchar(50) not null,
    Pwd varchar(50) not null ,
    Sex tinyint not null ,
    Age tinyint not null 
 );
 go

 

配套视频链接:【阶段二】 - SQLServer 基础(超级详细,口碑爆盆)_哔哩哔哩_bilibili

 

标签:UserName,--,第五,UserInfo,操作,null,where,Id,单元
From: https://www.cnblogs.com/xuyubing/p/17853300.html

相关文章

  • 用户操作
     创建用户及密码:postgres=#createusertestwithpassword'test';CREATEROLE##删除用户:dropusertest;DROPROLE \du 查看建立好的用户 ##普通用户登陆不上,需要设置pg_hba.confpostgres=#exit-bash-4.2$psql-Utestpsql:error:connectiontoserveronsoc......
  • Java 远程调用连接本地ElasticSearch服务并进行操作
    简单几步,结合Cpolar内网穿透工具实现Java远程连接操作本地ElasticsearchCpolar内网穿透提供了更高的安全性和隐私保护,通过使用加密通信通道,Cpolar技术可以确保数据传输的安全性,这为用户和团队提供了更可靠的保护,使他们能够放心地处理和存储敏感的工作内容。 1.Windows安......
  • Cobalt Strike之反向上线操作
    前言CobaltStrike使用GUI框架SWING(一种javaGUI的库)开发,攻击者可通过CS木马在beacon元数据中注入恶意HTML标签,使得CobaltStrike对其进行解析并且加载恶意代码(类似XSS攻击),从而在目标系统上执行任意代码。实现原理攻击者需要通过CS木马在beacon元数据中注入恶意paylo......
  • 敏捷冲刺——第五天
    团队作业4——项目冲刺这个作业属于哪个课程计科21级12班这个作业要求在哪里团队作业4——项目冲刺这个作业的目标进行敏捷冲刺开发团队队名:KAODAPU团队组成张建文(组长)3121004845叶飞池3121004843林智谦3121004831刘晋延3121004832......
  • torch用法--张量操作
    创建张量:torch.tensor(data):从数据中创建张量。用列表创建,numpy创建维度只看[]#一维张量data_1d=[1,2,3]tensor_1d=torch.tensor(data_1d)#结果tensor([1,2,3])#二维张量data_2d=[[1,2,3],[4,5,6],[4,5,6]]tensor_2d=torch.tensor(dat......
  • 聪明办法学python chap2数据类型与操作 3变量与函数
    Python(二)数据类型与操作类型print(type(2))#整型intprint(type(2.2))#浮点型floatprint(type(2>3.4))#布尔型boolprint(type(type(2)))#类型typeprint(t......
  • docker和虚拟化,docker安装和配置, 镜像操作,容器操作
    1docker和虚拟化......
  • 第五章 进程管理
    进程有一下组成部分1已分配内存的地址空间2安全属性,包括所有权凭据和特权3程序代码的一个或多个执行线程4进程状态进程有就绪态,运行态和阻塞态三个状态,每一个进程都有唯一的PID命令:PSAUX:查看当前目录的进程ps-ef命令可以查看UIDPIDPPID等信息使用pidof和pgrep......
  • 第二单元 数据库操作
    1.数据库文件组成主数据文件主要数据文件的建议文件扩展名是.mdf。主要数据文件包含数据库的启动信息,并指向数据库中的其他文件,存储部分或全部的数据。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件。mdf文件并非普通......
  • (1)操作系统知识体系
    体系概览 核心操作系统最核心的部分是进程,因为操作系统不能自己提供服务,它只能通过安装系统中的应用程序。而应用程序启动后就成了进程。围绕进程梳理发现:进程往往要做很多事情,比如浏览器同时要处理网络、又要处理鼠标、还要展示内容,因此有了多线程的概念。进程需要执行......