SqlServer数据库【基础-更删改查】

一、创建语句

(1)创建数据库

1.检查系统中是否存在这个数据库,存在则删除

格式:

if exists(select * from sysdatabases where name='数据库名')
drop database 数据库名
go

例子:

if exists(select * from sysdatabases where name='musicDB')
drop database musicDB
go

2.创建数据库

格式:

create database 数据库名
go

例子:

create database musicDB
go

(2)创建表格

1. 检查数据库中是否存在这个表,存在则删除

格式:

if exists(select * from sysobjects where name='表名')
drop table 表名

例子:

if exists(select * from sysobjects where name='T_speciality')
drop table T_speciality;

2.创建表

格式:

create table 表名(
列名1 数据类型,
列名2 数据类型
…………
)
go

例子:

create table T_speciality(
specialityid varchar(20) primary key,
specialityname varchar(20)
)
go

二、删除语句

(1)删除数据库

格式:

drop database 数据库名

例子:

drop database mystyle

(2)删除表格

格式:

drop table 表格名称

例子:

drop table tbl_Music

(3)清空数据

格式:

truncate table 表名

例子:

truncate table tbl_Music

(4)删除某行数据

格式:

delete from 表名 where 列名='条件'

例子:

delete from tbl_Music where musicName='菊花台'

注意:当没有where条件时则会清空整张表的数据

(5)删除某列数据

格式:

alter table 表名 drop column 列名

例子:

alter table tbl_Music drop column singer_id

注意:使用该语句则会将该列的所有的数据都删除,包括列名

三、修改语句

(1)修改表格

1.修改表名

格式:

exec sp_rename '旧表名', '新表名';

例子:

exec sp_rename 'tbl_Music', 'musics';

注意:更改对象名的任一部分都可能会破坏脚本和存储过程。所以不赞成修改表名

2.修改表属性

增加一列
格式:

alter table 表名
add 列名 字符类型

例子:

alter table tbl_Music
add score varchar(20)

3.修改列名名字

格式:

exec sp_rename '表名.旧列名','新列名','column'

例子

exec sp_rename 'musics.musicid','id','column'

注意:这样修改同样会破坏储存过程,建议先删除这一列再添加新的列。

4.修改列数据类型

格式:

alter table 表名 alter column 列名 新的数据类型

例子:

alter table musics alter column clicknumber varchar(20)

注意:主键不能修改,字符型的不能转为int型的。

5.修改表格数据

格式:

update  表名 set 列名='修改的值'   
where 条件

例子:

update  musics set clicknumber='200'   
where id=3

注意:主键不能修改

四、查询语句

数据库查询的基本格式为:

  • select ----输出(显示)你要查询出来的值
  • from -----查询的依据,数据来源
  • where -----筛选条件(对依据(数据库中存在的表))
  • group by -----对筛选后的数据 进行分组
  • having ----- 筛选条件(对分组后的结果再次筛选)
  • order by -----将结果进行排序
    基本语法格式顺序不能变,但可以缺省

(1)单表查询

1.查询全部

格式:

select * from 表名
-- “*”代表所有列

例子:

select * from musics

2.查询指定列

格式:

select 列名 as '别名',列名
from 表名
-- 也可以不给列取别名

例子:

select id as '账号',musicname
from musics

(2)多表查询

内连接全连接左连接右连接
Inner joinFull Outer joinLeft joinRight join
  • 内连接:此语句的结果为同时匹配表a和表b的记录集。即内连接取的是两个表的交集。
  • 外连接:(全连接,左右连接)语句的结果为表a与表b的并集,即任意一个表的内容都将被查询出来,如果另一个表无对应的项,则显示为null
  • 三种连接只是表格的对应顺序不一样

1.内连接

格式:

select *
from 表名1 别名1
inner join 表名2 别名2
on 别名1.主键=别名2.外键 

例子:

select *
from [dbo].[tbl_Music] t1
inner join [dbo].[tbl_Menu] t2
on t1.musicId=t2.musicId 

结果展示:
在这里插入图片描述

2.外连接

格式:

select *
from 表名1 别名1
[full/left/right]join 表名2 别名2
on 别名1.主键=别名2.外键 

例子:

select *
from [dbo].[tbl_Music] t1
full join [dbo].[tbl_Menu] t2
on t1.musicId=t2.musicId 

结果展示:
在这里插入图片描述

(3)嵌套查询

格式:

select *
from 表名1 别名1
inner join(
子查询语句
) 别名2
on 别名1.共同拥有的键名=别名2. 共同拥有的键名
go

例子:

select t4.userName as '用户名',t4.menuName as'歌单名',t3.musicName as '歌曲名',t3.clickNumber as'点击数量'
from [dbo].[tbl_Music] t3
inner join(
select t1.userId,t1.userName,t2.musicId,t2.menuName
from [dbo].[tbl_User] t1
inner join [dbo].[tbl_Menu] t2
on t1.userId=t2.userId) t4
on t3.musicId=t4.musicId
go

注意:
子查询语句中不能使用select *,应为使用select * 查询了所有的内容,就会由两个相同的列,并且在查询中必须把与主查询相同的键给查询出来,否则无法进行连接查询。

(4)聚合查询

1.聚合函数

聚合函数如下所示:

  • min —最小
  • max —最大
  • sum —和
  • avg —平均
  • count —统计(个数)
    聚合函数一般和分组group by一起使用
    例:
select avg(age)from student group by sex

2.聚合查询

SELECT 所有查询的内容
FROM 表
GROUP BY 分组条件

例子:

- • 统计每个客户经理所经手的质押业务数
SELECT t1.agency_id AS '客户经理编号',COUNT(*)AS '客户数量'
FROM
t_agency_info t1
RIGHT JOIN
t_impawn_info t2
ON t1.agency_id=t2.agency_id
GROUP BY t2.agency_id

结果展示:
在这里插入图片描述

注意:
一旦使用min ,max ,sum,avg ,count 只能查询相对应的聚合数,和分组条件,其他的都不能再查询了。

(5)排序

排序分为降序和升序。
升序:

select *  from emp order by id asc

降序:

select * from emp order by id desc

按多列排序:

select * from emp order by id asc,name asc

限制固定行数显示:

select top 2 id,name from emp where deptno=2

返回百分之多少行:

select top 20 percent id,name from emp where deptno=2

(6)常用的系统函数

在这里插入图片描述
日期参数及缩写如下表所示:

日期部分缩写
yearyy, yyyy
monthmm, m
daydd, d
weekwk, ww
weekdaydw
hourhh
minutemi, n

例子:

-- 获取当前年份
 select datename(yy,GETDATE());
 select datename(yyyy,GETDATE());
 select datename(year,GETDATE());

五、插入语句

(1)给表格添加新的列

格式:

alter table 表名
add 列名 数据类型
go

例子:

alter table tbl_Music
add score varchar(20)
go

(2)添加表格数据

方法一:安照列名依次给出数据值,不能交换顺序,数据类型不能出错

insert into demo values
 ('zhang',25,1),
('li',28,2)

方法二:安照指定顺序给出数据值

insert into demo (nname,age,sex) values ('san',18,0)

方法三:交换顺序,数值按照列名给就行

insert into demo (nname,sex,age) values ('san',1,22)

方法四:没给数值的列显示null

insert into demo (nname) values ('li')

2.复制表中数据到另一个表中:

insert into demo1(nname,nage,asex) select nname,age,sex from demo

注意事项

  • 1:每次插入一行数据,不可能只插入半行或者几列数据,因此,插入的数据是否有效将按照整行的完整性的要求来检验;
    * 2:每个数据值的数据类型、精度和小数位数必须与相应的列匹配;
  • 3:不能为标识列指定值,因为它的数字是自动增长的;
  • 4:如果在设计表的时候就指定了某列不允许为空,则必须插入数据;
  • 5:插入的数据项,要求符合检查约束的要求
  • 6:具有缺省值的列,可以使用default(缺省)关键字来代替插入的数值

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

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

相关文章

C 知识积累 替换gets函数 Linux C 语法分析 switch和if else的比较

目录 替换gets函数gets()用处gets()的危险之处gets()的几种替代方法一、用%c循环输入直到遇到换行结束二、用getchar()循环输入直到遇到换行结束三、scanf的另一种用法四、c中的getline()方法五、解决方案使用fgets代替 回车与换行一.知其然二.知其所以然 关键字,操…

BI-SQL丨XML

XML SQL Server中,存在一种特殊类型的数据,就是XML数据类型。 可能看到这里,小伙伴都会产生疑惑,XML不是Web语言么?为什么在SQL Server里面也会有XML数据类型? 这个就要从SQL Server的应用开始说起了&am…

JavaSwing+MySQL的酒店管理系统

点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88063706?spm1001.2014.3001.5503 JDK1.8、MySQL5.7 功能:散客开单:完成散客的开单,可一次最多开5间相同类型的房间。 2、团体开单:完成团体…

photoshop制作法线和凹凸贴图

做个选区 Ctrlj 法线贴图 生成凹凸贴图

如何避免在C#中出现混乱代码

文章目录 一、溯源:混乱代码出现的原因 二、陷阱:混乱代码会使你焦头烂额 三、10招:避免出现混乱代码 四、写在最后:不与混乱代码纠缠 意大利面是一种很好吃的食物,但是,如果用它来形容代码意味着这种程…

伙伴云CEO戴志康:我们为什么要做伙伴云?

分享嘉宾:戴志康,伙伴云CEO 以下为演讲实录⬇⬇⬇ 01选择人更少的一条路,从B级走向A级 我一直想和大家交流一个话题,关于我们为什么要做伙伴云。既代表我自己,同时也代表我们团队的一些想法。 我是一个怀疑论者。大…

centos7.6下安装mysql

1.下载yum源: wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm2.执行安装: rpm -ivh mysql80-community-release-el7-5.noarch.rpm3.开始安装 yum install -y mysql-server4.启动mysql服务 systemctl start mysqld5.查看…

Docker 应用容器引擎

Docker 应用容器引擎 一、Docker是什么二、Docker安装和查看1、docker安装2、docker版本信息查看3、docker信息查看 三、镜像操作四、容器操作1、容器创建2、创建并启动容器3、容器的进入4、复制5、容器的导入和导出6、删除容器 一、Docker是什么 是一个开源的应用容器引擎&…

【自监督预训练 2023】MCL

【自监督预训练 2023】MCL 论文题目:Multi-Level Contrastive Learning for Dense Prediction Task 中文题目:稠密预测任务的多级对比学习 论文链接:https://arxiv.org/abs/2304.02010 论文代码:https://github.com/GuoQiushan/MC…

i.MX6Q应用处理器:MCIMX6Q5EYM12AD/MCIMX6Q5EYM10AE/MCIMX6Q5EYM10ADR 4核、32位,624-LFBGA

i.MX6Q 处理器代表了集成多媒体应用处理器的最新成就。这些处理器是不断增长的多媒体产品系列的一部分,这些产品提供高性能处理,并针对最低功耗进行了优化。 i.MX6Quad处理器采用先进的四核ArmCortex-A9内核,运行速度高达1.2 GHz。它们包括2…

浏览器打开PDF标题乱码

问题 使用 itext5 用pdf模板生成预览pdf乱码问题 解决办法 使用pdf编辑器打开之后,选择 文件>> 属性, 修改乱码的标题。

ENSP实验一:防火墙基础配置

1、搭建拓扑图 配置client&#xff08;内网&#xff09;、FTP Server&#xff08;外网&#xff09;的IP地址 客户端设置&#xff1a; 服务端设置&#xff1a; 2、配置防火墙命名 进入防火墙&#xff0c;输入密码&#xff1a;默认为admin123 <USG6000V1>system-view /…

linux 安装pytorch3d的坑

事实上&#xff0c;只要按照官方文档的说明就可以完美安装。其中坑的地方在于conda的管理可能会导致下载的版本不符合你的要求&#xff08;例如下载成了cpu版本、下载的cuda版本&#xff09;而同样尝试使用源码编译以及其他方式下载库都会导致同样的问题&#xff0c;这里主要的…

Centos 7 使用国内镜像源更新内核

内核选择参考 此博文 &#xff1a;https://blog.csdn.net/alwaysbefine/article/details/108931626 elrepo官网介绍的内核升级方式为&#xff1a; 一、按文档执行引入 elrepo库&#xff1b; # 1、引入公钥 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# 2、安…

回归预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入单输出回归预测

回归预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于SVM-Adaboost支持向…

left join 和except方法区别和联系

目录 相同点&#xff1a; left join except 不同点 假设有两个表&#xff1a;A客户表 和 B客户表&#xff0c;客户uid是唯一主键 相同点&#xff1a; 查询在A中的客户 但不在B中&#xff0c;也就是图中的阴影部分&#xff0c;left join 和except方法都可以实现 left join …

torch分布式通信基础

torch分布式通信基础 1. 点到点通信2. 集群通信 官网文档&#xff1a;WRITING DISTRIBUTED APPLICATIONS WITH PYTORCH 1. 点到点通信 # 同步&#xff0c;peer-2-peer数据传递 import os import torch import torch.distributed as dist import torch.multiprocessing as mpdef…

CSS:给子元素设置了浮动,页面缩放的时候,子元素往下掉

前言 给子元素设置了浮动&#xff0c;页面缩放的时候&#xff0c;子元素往下掉 html代码&#xff1a; <div class"father"><div class"child1"></div><div class"child2"></div> </div>css代码 .child1…

动态内存管理(C语言)

动态内存管理 1. 为什么存在动态内存管理2. 动态内存函数的介绍2.1 malloc函数和free函数2.2 calloc函数2.3 realloc函数 3. 常见的动态内存错误3.1 对NULL指针的解引用操作3.2 对动态开辟空间的越界访问3.3 对非动态开辟内存使用free函数3.4 使用free释放动态开辟内存的一部分…

旅游卡小程序软件招商加盟代理

旅游卡小程序软件招商加盟代理 我国人民生活水平的提高&#xff0c;旅游业成为了人们生活中必不可少的一部分。旅游卡小程序软件作为旅游行业的重要组成部分&#xff0c;也日益受到人们的关注。如今&#xff0c;旅游卡小程序软件招商加盟代理已经成为了一个热门的投资创业项…