1.Sql Server数据库【上】

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 1.Sql Server数据库【上】

一、数据库的概念

定义:

数据库就是数据仓库。

DBMS:

数据库管理系统。SQLServer Oracle

二、数据库的特点

安全性

并发访问处理

高效率

海量数据存储

数据完整性

三、数据库的基本组成

数据库

架构(表的分组):

表的集合

列(Column字段,类型,长度,约束等)

行(Row)

主键:

自动增长,GUID

外键

四、数据库管理

数据库安装:

Sql Server安装

数据库的实例名详解:

区分安装在同一台机器上不同的MSSqlServer 服务的。(区分一台机器上的不同的数据库服务实例)

混合身份验证:

Windows身份验证、SQLServer身份验证

启用SA账户(安装的时候可以直接设置启用)

链接数据库:

保证SQLServer服务器开启,. 和 (local) 和 机器名一样,代表链接本机。

ip地址:

回环地址:

127.0.0.1

局域网ip地址,外网ip地址。

SA

五、可视化创建数据库、表、主键

1.创建数据库

数据库文件默认位置:C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA

(创建数据库最好放到此位置,避免权限问题。)




7d83dba6580a4421a59c470f2fdb2d79.png

2.创建表

命名规范同类。

列:

NChar,Nvarchar(32) N:Unicode,2个字节表示一个字符。

Char:一个字节表示一个字符。

NChar和Char的区别?

避免乱码,N:Unicode,用两个自己表示一个字符。

可能遇到的问题:“阻止保存要求重新创建表的更改”的问题,解决办法: 工具→选项→设计器→阻止表的更改


fde14d1e7eee48719251634179544b85.png


3.设置主键:

六、数据库的字段类型详解

Char,8000 Varchar,8000 Nchar,4000 Nvarchar,4000 Text varchar(max)
固定长度的非Unicode字符数据。固定长度的字符串相对于可变长度的字符串来说效率要高一些,在数据长度固定的情况下优先选用固定长度,省去了计算长度的过程提高效率. 可变长度非Unicode 数据 固定长度的Unicode 数据 可变长度Unicode数据 存储长文本信息(指针2G)

七、数据库的迁移方案

右击数据库属性:


f9b3e518e82a477698da8789be7696f4.png

分离 附加

权限问题:

启用Administrator账号

把数据库文件放到默认的数据库文件存放目录。

数据库文件兼容级别,设置成2005兼容

脱机 附加

备份 还原

生成SQL脚本

八、SQL脚本

结构化查询语言(Structured Query Language)

DML\DDL\DCL

脚本:一般就是指比较简单的,不需要编译的可以直接解析执行的语言,常见的比如:SQL、JavaScript等。

T-SQL的特点

跨DBMS,基本上所有的DBMS都对标准T-SQL兼容

大小写不敏感(仅仅是关键字不敏感,字符串数据是大小写敏感的)

转义

九、基本的DDL SQL脚本

创建数据库(Create Database)

创建数据库的SQL:
    create database 数据库名
    on
    (
      name=‘’,
      size=5MB,
      filegrowth=2MB,
      filename="....\data\db.mdf"
    )
    log on
    (
      name=‘_log’,
      size=5MB,
      filegrowth=2MB,
      filename="....\data\db_log.ldf"
    )
--1.创建数据库
create database PhpDb;
--2.删除数据库
drop database PhpDb;

创建表(包括主键、自动增长、是否可空)等

use PhpDb
create table Employee(
  EmpId int primary key not null,
  EmpName nvarchar(32) null,
  EmpAge int default(18) not null,
  DelFlag smallint default(0) not null
)
create table 表名
    (
      列名 类型 null,
      .....,
      列名  类型 primaryt key not null,--主键列
      列名  类型 identity(1,1) not null,--自动增长,只能用于数据的类型:int,bigint,float
    )

8c270eea7f694ccda223d4dfaf0d12df.png

十、基本的DML SQL脚本

select 列名,… from 表 where 表达式1 and 表达式2

delete from 表 where 表达式1 and 表达式2

update 表名 set 列1=值,列2=值

insert into 表名(列1,列2…) values(值1,值2…)

简单的查询: Select 列名 From 表明 where 条件表达式

--基本查询
select *from Employee where EmpId=1

插入数据: Insert Into 表名(列名) values(列值)

--插入数据
insert into Employee values('1','小明','18','1111')

删除数据:Delete

--删除数据:Delete
delete Employee where EmpId=2

修改数据:Update

--修改数据:Update
update Employee set EmpId=2 where EmpName='小明'

十一、案例:OA系统数据库设计

部门表:Department   JQJB:警情级别    
  ->部门的名字 DepName
  ->部门的老大 DepMaster
  ->部门的编号 主键:
  ->部门的描述 
  ->删除标识
  ->上级部门的ID  
    select * from dep where ParentDepId =我的id
员工表、
内部员工消息表
  ->发送者
  ->发送的时间
  ->发送的内容
  ->接收
  ->接收时间
  ...
--OA项目
--创建数据库
create database OADB;
go
use OADB;
create table Department(
  DepId int identity(1,1)primary key not null,
  DepName nvarchar(32) null,
  DepMasterId int null,
  DepRemark nvarchar(512) null,
  ParentDepId int null,
  DelFlag smallint default(0) not null
)



相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
9天前
|
SQL 存储 数据管理
SQL Server数据库
SQL Server数据库
20 11
|
16天前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
36 0
|
20天前
|
前端开发 C# 设计模式
“深度剖析WPF开发中的设计模式应用:以MVVM为核心,手把手教你重构代码结构,实现软件工程的最佳实践与高效协作”
【8月更文挑战第31天】设计模式是在软件工程中解决常见问题的成熟方案。在WPF开发中,合理应用如MVC、MVVM及工厂模式等能显著提升代码质量和可维护性。本文通过具体案例,详细解析了这些模式的实际应用,特别是MVVM模式如何通过分离UI逻辑与业务逻辑,实现视图与模型的松耦合,从而优化代码结构并提高开发效率。通过示例代码展示了从模型定义、视图模型管理到视图展示的全过程,帮助读者更好地理解并应用这些模式。
35 0
|
20天前
|
SQL 数据处理 数据库
|
20天前
|
SQL 存储 调度
|
20天前
|
SQL 安全 数据库
|
20天前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
40 0
|
20天前
|
SQL 存储 监控
|
20天前
|
SQL 数据库 Java
HQL vs SQL:谁将统治数据库查询的未来?揭秘Hibernate的神秘力量!
【8月更文挑战第31天】Hibernate查询语言(HQL)是一种面向对象的查询语言,它模仿了SQL的语法,但操作对象为持久化类及其属性,而非数据库表和列。HQL具有类型安全、易于维护等优点,支持面向对象的高级特性,内置大量函数,可灵活处理查询结果。下面通过示例对比HQL与SQL,展示HQL在实际应用中的优势。例如,HQL查询“从员工表中筛选年龄大于30岁的员工”只需简单地表示为 `FROM Employee e WHERE e.age > 30`,而在SQL中则需明确指定表名和列名。此外,HQL在处理关联查询时也更为直观易懂。然而,对于某些复杂的数据库操作,SQL仍有其独特优势。
26 0
|
20天前
|
Java UED 开发者
当错误遇上Struts 2:一场优雅的异常处理盛宴,如何让错误信息成为用户体验的救星?
【8月更文挑战第31天】在Web应用开发中,异常处理对确保用户体验和系统稳定性至关重要。Struts 2 提供了完善的异常处理机制,包括 `exception` 拦截器、`ActionSupport` 类以及 OGNL 表达式,帮助开发者优雅地捕获和展示错误信息。本文详细介绍了 Struts 2 的异常处理策略,涵盖拦截器配置、错误信息展示及自定义全局异常处理器的实现方法,使应用程序更加健壮和用户友好。
30 0