C# SQLserver 学习
试图工具操作数据库
标识列(自增长)
约束
主键约束
外键约束
设置主键 外键 关联表结构
用户表
部门表
开始
设置成功
Unipue约束
唯一约束
将UserName设置为唯一不能重复
Check约束
设置用户年龄必须大于等于18小于等于45
Default约束 (默认值)
设置CreateTime字段默认的创建时间
脚本操作数据库
脚本创建数据库
use master --选择要操作的数据库
go --批处理命令--开始创建数据库
create database TestNewBase --数据库的名称
on primary --主文件组
(name = 'TestNewBase', --数据主要数据文件的逻辑名filename = 'D:\Microsoft SQL Server\TestNewBase.mdf', --主要文件的路径(绝对路径)size = 5MB, --数据库主要文件的初始大小filegrowth = 1MB --文件的增量
)
log on --创建日志文件
(name = 'TestNewBase_Log', --数据日志文件的逻辑名filename = 'D:\Microsoft SQL Server\TestNewBase_Log.mdf', --主要文件的路径(绝对路径)size = 1MB, --数据库日志文件的初始大小filegrowth = 10% --文件的增量
)
go
脚本删除数据库
drop database TestNewBase
go
脚本创建表
use TestNewBase
go
create table Productinfos --创建商品表
(-- identity(1,1) 表示字段初始重1开始每次自增1Id int identity(1,1) primary key not null, -- 自增 主键 不能为空 的id字段ProNo varchar(50) not null,ProName nvarchar(50) not null,TypeId int not null,--decimal(2,1),此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。Price decimal(18,2) default (0.00) null,ProCount int default (0) null --商品数量 默认为0 可以为空
)
go
create table ProductType
(TypeId int identity(1,1) primary key not null,TypeName nvarchar(20) not null
)
go
脚本删除表
drop table Productinfos
go
脚本修改表 字段
-- 给表添加一列
alter table Productinfos add ProRemark nvarchar(50) null-- 删除一列
alter table Productinfos drop column ProRemark-- 修改一列
alter table Productinfos alter column ProNo nvarchar(50) null-- 修改字段名 (慎重使用 修改后有关联的对应名称都得修改)
exec sp_rename 'Productinfos.ProCount','Count','column'
脚本插入数据及克隆表数据
use TestNewBase
go
-- 单条插入
insert into Productinfos(ProNo,ProName,TypeId,Price,Count) values (1,'测试',1,2.8,8)-- 多条插入
-- insert into 表面(字段名)
-- values('值1'),('值2')...
insert into ProductType(TypeName)
values('工具类1'),('工具类2'),('工具类3')
go-- 克隆表数据
-- 1 目标表在数据库以存在
insert into Test(Names) --目标表
select TypeName from ProductType --原表
go
--2 目标表没有在数据库中 执行后字段创建目标表
select TypeName into Test1 --目标表
From ProductType
go
脚本修改约束
查询语句
模糊查询
-- 模糊查询
--1、只要含有d的都查出来 (效率不高)
select * from Userinfos where UserName like '%d%'
-- 以a开头的
select * from Userinfos where UserName like 'a%'
-- 以3结尾的
select * from Userinfos where UserName like '%3'-- 2、_匹配单个字符 限制长度
select * from Userinfos where UserName like 'a______3' -- 以a开头并且以3结尾的 并且中间长度是6select * from Userinfos where UserName like '___' --查询长度为3的--3、[]匹配范围 匹配【】中所有字符中的任意一个
select * from Userinfos where UserName like 'ad[a,b,m,d]in'
select * from Userinfos where UserName like 'ad[a-z]in'-- 匹配a到z中所有字符中的任意一个--3 [^] 不在[]中的所有字符之内的单个字符
select * from Userinfos where UserName like 'ad[^asd]in' --排除第三个字符为a s d 的
条件查询
select * from Userinfos UserName --查询所有select top 3 * from Userinfos --查询前3条select top 100 percent * from Userinfos -- 按百分比 查询百分之百select * from Userinfos where UserAge not in(23,22) --排除年龄等于 23,22的-- 子查询
select * From Userinfos -- 先查询出所有用户表
where DeptId in
( -- 在查询出 对应部门表中 DetpId 大于1的select DeptId from Detpinfos where DeptId >1
)select * from Userinfos where UserAge between 21 and 33 -- 查询 大于大于21 小于大于33
聚合函数
use StudydDB
go
-- 聚合函数
select 1 from Userinfosselect count(1) num from Userinfos -- 统计记录数-- sum求和
select sum(UserAge) from Userinfos; -- 年龄总合--avg 平均值
select avg(UserAge) from Userinfos;--max 平均值
select max(UserAge) from Userinfos;--min 最小值
select min(UserAge) from Userinfos;
删除 更新
update Userinfos set UserName = '新名字' where UserId = 4 -- 更新-- 删除
delete from Userinfos where UserId = 4;-- 清除表(还原表最初始状态)
truncate table 表名 -- 不会记录到日志 不激发触发器 比delete from Userinfos效率高
关联查询
- 表结构
用户表
Userinfos
部门表
Detpinfos
inner join on 关联查询
select UserId,UserName,UserAge,u.DeptId,d.DetpName
from Userinfos u
inner join Detpinfos d on d.DetpId = u.DeptId
隐实连接
select UserId,UserName,UserAge,u.DeptId,d.DetpName
from Userinfos u,Detpinfos d
where d.DetpId = u.DeptId
左连接
select * from Userinfos u --结果:左表显示所有行 右表行数根据左表 没有匹配上的显示为null
left join Detpinfos d
on u.DeptId = d.DetpId
右连接
select * from Userinfos u
right join Detpinfos d
on u.DeptId = d.DetpId
C# SQLserver 学习相关推荐
- SQLServer学习笔记系列6
一.写在前面的话 时间是我们每个人都特别熟悉的,但是到底它是什么,用什么来衡量,可能很多人会愣在那里.时间可以见证一切,也可以消磨一切,那些过往的点点滴滴可思可忆.回想往年清明节过后,在家乡的晚上总能 ...
- SQLServer学习笔记系列2
SQLServer学习笔记系列2 一.写在前面的话 继上一次SQLServer学习笔记系列1http://www.cnblogs.com/liupeng61624/p/4354983.html以后,继 ...
- SQLServer学习笔记系列5
一.写在前面的话 转眼又是一年清明节,话说"清明时节雨纷纷",武汉的天气伴随着这个清明节下了一场暴雨,整个城市如海一样,朋友圈渗透着清明节武汉看海的节奏.今年又没有回老家祭祖,但是 ...
- SQLServer学习-- SQLServer
SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行M ...
- SqlServer学习笔记【暂】
Sql学习笔记,暂时先保存在着,等不忙了再整理成章节,如果其中有问题的,还请各位大神不吝赐教! 1 --------------------------------------所有的数据基于North ...
- SQLServer学习笔记系列4
一.写在前面的话 好多天没有记录sql学习笔记了,要坚持下去,坚信每一点的进步都是为在积蓄力量.今天看到一幅图,特此分享出来. 通过这幅图,我看到的是每人站在自己的角度看问题,感受是不一样的,就如同学 ...
- SqlServer学习之触发器
什么是触发器? 根据百度百科的解释,触发器是SqlServer提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,他的执行不是有程序调用,也不是手工启动,而是由事件来 ...
- SqlServer学习之存储过程
前言:对于存储过程一直有一种抵触的心理,因为毕业至今所在的公司开发组都不是很规范,对于开发的一些注意事项并没有很多的规定,只是在知乎上查找相关知识的时候,看到很多人对于在程序里使用存储过程的不好之处都 ...
- Sqlserver学习研究
关注关键词 :Sqlserver实用工具配置步骤 1)创建实用工具控制点(UCP) 2)连接到现有UCP 3)相UCP注册SQL Server实例 4)创建数据层应用程序 5)设置资源运行状况策略 6 ...
- SQLServer学习笔记八:多表连接查询
学习目标 掌握多表连接查询的概念 学会使用内连接查询数据 学会使用外连接查询数据 学会使用UNION合并查询结果 前面学习的内容都是基于单个数据库表的查询,下面将学习涉及多个表的数据查询. 多表连接查 ...
最新文章
- 同样在JavaScript中
- MySQL必知必会教程:深入理解MySQL技术内幕
- 参会指南 |「MEET 2021智能未来大会」明天启幕!
- Activiti源码 之Command与 CommandInterceptor
- mall整合RabbitMQ实现延迟消息
- 我国共招过多少博士?多少硕士?数据来了!
- mysql_ping()函数的作用以及返回值的类型正确的是,[单选] mysql_ping()函数的作用以及返回值的类型正确的是:()...
- 织梦dede:channelartlist调用排除指定typeid栏目
- leetcode191-打家劫舍
- 嵌入式环境搭建之NFS
- [转载] 用 C++ 和 Java 写算法,差别大吗?
- pythonrequests查询_Python Requests实例,查询成绩
- 在Windows8系统下exe格式会计课件下载播放帮助图解
- 教师计算机知识培训内容,新学期教师计算机培训方案
- 【YOLO3D】:端到端3D点云输入的实时检测
- JavaScript实现百度坐标系、火星坐标系、WGS84坐标系的互相转换
- 蓝叠模拟器的通讯录位置
- 排除美颜相机等第三方相机直接调用系统相机处理方法
- qt 计算字符串宽度高度
- Archive for the 'TED' Category TED视频:Tan Le 能读懂脑电波的耳机