0
点赞
收藏
分享

微信扫一扫

SqlServer技术

伢赞 2022-02-20 阅读 66

1、Sql Server 基本操作

1.1Sql Server安装默认新建四个系统数据库

Sql Server安装默认新建四个系统数据库

 - Master数据库:Master数据库是Sql Server中最终要的数据库它记录Sql Server实例的所有系统及信息。包括实例范围的元数据、端点、链接服务器和系统配置设置
 - Tempdb数据库:tempdb是一个临时数据库,用于保存临时对象或中间结果集
 - Model数据库:用作SQLServer实例上创建的所有数据库的模板。对Model数据库进行的修改(如数据库大小、排序规则、恢复模式和其他数据库选项)将应用于以后创建的所有数据库
 - msdb库:用于SQL Server代理计划警报和作业

在这里插入图片描述

1.2 数据库常用对象

  • 1、表:表是包含数据库中所有数据的数据库对象,由行和列组成,用于组织和存储数据。
  • 2、字段:表中每列称为一个字段,字段具有自己的属性,如字段类型、字段大小等。其中,字段类型时字段最重要的属性,它决定了字段能够存储哪种数据。SQL规范支持5中基本字段类型:字符型、文字性、数值型、逻辑性和日期/时间型。
  • 3、索引:索引是一个单独的、五路的数据结构。它是依赖于表建立的,在数据库中索引使数据库程序无需对整个表进行扫描就可以在其中找到所需的数据。
  • 4、视图:是是从一张或多张表中导出的表(也称为虚拟表),使用户查看数据表中数据的一种方式。表中包含几个被定义的数据列与数据行,其结构和数据建立在对表的查询基础上。
  • 5、存储过程:存储过程(Stroed Procedure)是一组为了完成特定功能的SQL语句几个(包括查询、插入、删除和更新等操作),经编译后一名称的的形式存储在SQL Server服务器端的数据库中。由用户通过指定存储过程的名字来执行。当这个存储过程被调用执行时,这些操作也会同时执行。
  • 6、主键:就是数据行的唯一标识。不会重复的列才能当主键。一个表可以没有主键,单会非常难以处理,因此没有特殊理由表都要设定主键。
    • 主键有两种选用策略:业务主键和逻辑主键
    • 业务主键使用有业务意义的字段做主键,比如设分正好,银行卡号等;
    • 逻辑主键是使用没有任何意义的字段做主键。因为很难保证业务主键不会重复(身份证号重复)不会编号(账号升为)因此推荐逻辑主键

1.3 创建与删除数据库

在这里插入图片描述

在这里插入图片描述

1.4 创建与删除数据表

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

设为主键

在这里插入图片描述
在这里插入图片描述

1.5 数据库文件和文件组

  • 数据库由文件和文件组组成,所有数据和对象(如表,存储过程)都被存储在文件中。数据库文件存放位置:右击数据库——属性
    在这里插入图片描述
    在这里插入图片描述

  • 文件分为三种类型:

    • 主要数据文件*.mdf:每个数据库有且只有一个主数据文件,存放数据和数据库初始化信息

    • 次要数据文件*.ndf: 可以没有也可以有多个次要数据库文件
      在这里插入图片描述

    • 事务日志文件*。ldf:用于存放恢复数据库的所有日志信息

1.6 char与Varchar区别

Varchar(size):保存可变长度的字符串(可包含字母、数字及特殊字符)在括号中指定字符串的最大长度。对多255个字符。注释:如果值的长度大于255,则被转换为Text类型。
char(10):标识固定长度为10个字符,如果不足,就以空格填充
varchar(10):标识长度最大为10的可变字符,不足不填充。(var——variable可变)

nvarchar与varchar区别

存储方式:navarchar——字符存储, varchar字节存储
存储量:varchar比较节省控件,因为存储大小为字节的世界长度,而nvarchar是双字节存储。
使用:如果存储内容都是英文字符而没有孩子等其他语言符号,建议使用varchar;含有汉字的使用nvarchar,因为nvarchar是使用Unicode变慢,既同一的字符编码标准,会较少乱码的出现几率;(如果你做的项目可能设计不同语言之间的转换,建议用nvarchar)

2 简单SQL语句的应用

在这里插入图片描述

新建表时,必须存放相应的数据才能新建表
在这里插入图片描述

--SQL语句注释以(--)开头
--SQL创建数据库
create database mydarlydb001
create database mydarly002
--删除数据库
drop database mydarlydb001
--创建数据表(创建表示,必须同时创建字段)
create table darlytable
(
id int, --字段
name nvarchar(5),
pwd nvarchar(20)
)
--删除表
drop table darlytable

--在指定的数据库中创建表(默认将表创建在master数据库中,master是主表,sql默认进入主数据库)
--需要在特定数据库中创建表,首先要切换到相应数据库中
use mydarly002  --切换
create table darlytable --切换后再次新建表,就会在切换到的数据库下建表
(
id int, --字段
name nvarchar(5),
pwd nvarchar(20)
)
--指定主键
create table darlytable002
(
id int identity(1,1) primary key,
name nvarchar(5),
pwd nvarchar(20)
)
--创建数据表并插入数据
create table darlytable003
(
id int identity(1,1) primary key,
name nvarchar(5),
gender nvarchar(1),
age int,
jointime date,
department nvarchar(8)
)
--向表中添加对应的数据
insert darlytable003 
(name,gender,age,jointime,department)
values('张三','男',20,'2022-02-20','研发部')
insert darlytable003 
(name,gender,age,jointime,department)
values('李四','女',19,'2022-02-20','测试部')
--更改表中数据
update darlytable003 set department='销售部' where name='李四'
update darlytable003 set name='王五' where id=3
--更给表中数据,不添加where则是更改表中所有对应字段
update darlytable003 set jointime='1990-12-01'

--查询语句select 
--查询表中全部数据
select * from darlytable003
select * from darlytable003 where age>=20
select * from darlytable003 where gender='男'

create table darly004
(
u_id int,
name nvarchar(5),
username nvarchar(10)
)
insert darly004(u_id,name,username)values(1,'张三','zhsan908')
insert darly004(u_id,name,username)values(2,'王五','wangwu902')
insert darly004(u_id,name,username)values(3,'李四','lisi901')
--简化联合查询
select * from darly004,darlytable003 where darlytable003.id=darly004.u_id

--删除记录
delete darlytable003 where gender='男'

--清除所有内容
delete darlytable003

错误处理

保存表报错

在这里插入图片描述
解决方法

在这里插入图片描述
在这里插入图片描述

Windows防火墙阻止了远程调试

当调试数据库里的存储过程时提示”Windows防火墙当前阻止了远程调试”.
在这里插入图片描述
解决方案:Windows防火墙阻止了远程调试
也可以直接选择第三项——确定然后执行sql语句

操作数类型冲突: int 与 date 不兼容

在这里插入图片描述

将截断字符串或二进制数据。

在这里插入图片描述

举报

相关推荐

0 条评论