sqlsever

 

Table(表):关系

Column也叫列或者字段FIELD,

Row(行)元祖

主键(Primary Key)

主键就是数据行的唯一标识

特点:不能重复

            不允许为null

一个表中只能有一个主键。

如何选择主键:

1.不允许为空的列

2.没有重复的列

3.与实际业务没有关系的列(逻辑主键)

4。稳定的列。

5.选择单列作为主键。

6.尽量选择数字类型和比较小的列作为主键。

7.每一种表中都应该有主键。

外键(ForeignKey)

当把数据拆分成两张表来存储的时候,每个表中都有自己的主键。

引用另一张表中的列的“外键列”,有外键列的表叫做主键表。

常用数据类型:

1.image类型,用来存储二进制数以byte[]的形式

2.binary,用来存储二进制数

2.字符串类型

char(3)长度只能为3个字节

nchar(3)长度只能为3个字符,可以存储所有双字节字符。

varchar(3)长度小于3个字节,长度可变,

nvarchar(3)长度小于3个字符,长度可变,可以存储所有双字节字符。建议只要有中文就使用nvarchar。

text,存储一篇文章,以字节的形式,2005之后一般使用varchar(max)代替。

ntext,存储一篇字符文章,以字符的形式

varchar(max),长度为4个G的字节类型

nvarchar(max),长度为4个G的字符类型

SQL主要分类:

    DDL:(数据定义语言,建表、建库等语句):create drop alter 

    DML:(数据操作语言):select insert update delete等语句

    DCL:(数据控制语言):GRANT 授权、RECOKE取消授权。

                

 

常用SQL命令语句:

 

 

1.create database mytest(创建数据库)

    drop database mytest(删除数据库)

2.create table student(创建表)

    drop table student(删除表)

3.使用(if exists ---creat table---)语句创建表 

3.alter table 表名(修改表结构)

修改表列的信息:

为表的列添加约束:

 

一次添加多个约束

创建表的时候添加约束:

 

为表的列删除所有约束:

 

表中数据操作

1.插入数据 (向表中列插入数据)

格式:insert into 表名

插入所有值的时候可以省略列名:

向自动编号列插入值的功能:(注意:插入之后,之后的编号是以插入的值为基础,自动编号不会往回走)

如果数据库默认排序规则不是中文的话,那么插入中文就会乱码,如何解决?

2.更新数据:

更新表中数据的语句(update 表名.......set......where 条件)

3.删除数据:

delete 表名:(自动编号并没有恢复到默认,任然继续编号)

格式:delete 表 where 条件

删除所有:

条件删除:

truncate table 表名:

4.查询数据:

 

格式(select XX from 表 where 条件)

给列起别名as:两种方式

 

 

查询前几行top以及去重查询distinct

 

distinct:

top:

排序(order by 名)

asc升序排序、desc降序排序

语句的先后顺序:

按照表达式进行排序:

 

条件查询:

模糊查询:

 

通配符:

空值null处理:

5.聚合函数:

max(最大值)、min(最小值)、avg(平均值)、sum(求和)、count(记数)

当求得的平均值是小数的时候,可以在求和之前*1.0,这样的话就可以求得小数平均值了。

group by (分组)

需要注意的是:分组之后,表中的列只有分组之后的那一列可以存在select 中。不可以存在其他的列。

HAVING(对分组之后的每一列数据进行筛选)

 

 

语句的执行顺序:

类型转换(cast convert):

 

cast(expression as data_type) 

convert(data_type,expression,[style])

联合结果集

union

union all

案例:

查询平均分,最高分,最低分的三个表现形式:

像表中一次插入多条数据三种方法:

约束:

常见约束:

 

自增长约束:identity(种子,增量)在mysql中是auto_increment

                        

 

局部变量:

声明局部变量语法:

DECLARE @variable_name DataType

其中 variable_name为局部变量的名称,DataType为数据类型。

给局部变量赋值有两种方法:

1、SET @variable_name=value

2、SELECT @variable_name=value

两者的区别:

SET赋值语句一般用于赋给变量一个指定的常量,

SELECT赋值语句一般用于从表中查询出数据然后赋给变量。

 

 

 

 

函数:

 

字符串函数:

日期函数:

 

 

 

 

 

 

 

 

 

 

inner join 、left join 、right join、full join之间的区别?

假设有A和B两张表

内连接:inner join   表示把AB表的记录相符都显示出来,把AB表不符合条件的都排除

外连接分三种,左连接(LEFT OUTER JOIN)、右连接(RIGHT OUTER JOIN)、全连接(FULL OUTER JOIN),

1.A LEFT OUTER JOIN B表示把A表的记录都显示出来,把B表符合条件的结果集显示出来,不符合条件的用NULL表示。

2.A RIGHT OUTER JOIN B表示把B表的记录都显示出来,把A表符合条件的结果集显示出来,不符合条件的用NULL表示。

3.A FULL OUTER JOIN B 表示把A表和B表的记录都显示出来,不符合条件的用NULL表示。

 

 

 

 

 

如何连接数据库?

打开运行输入services.msc回车,找到下面这条,启动。

 

 

 

 

 

Microsoft SQL Server 2008 Service Pack 3 (SP3) 现在可供下载。我们不仅控制着产品更改,而且还投入了很大的力量来简化 Service Pack 的部署和管理。对于客户来说,Microsoft SQL Server 2008 Service Pack 3 中有这样几项重要改进:   从 SQL Server 的旧版本升级到 SQL Server 2008 SP3 的过程体验得到了改进。另外,我们增强了安装体验的性能和可靠性。   在 SQL Server Integration Services 日志中,现在能看到在数据流中发送的总行数。   在启用了“缩减数据库”选项的情况下创建维护计划时的警告信息得到了改进。   在启用了透明数据加密的情况下解决数据库问题,而且即使删除了证书也能使用数据库。   在 DTA(数据库调节顾问)引用经过索引的“空间数据类型”列时,查询结果经过了优化。   用户在并行执行计划中使用“序列函数”(如 Row_Numbers())可获得优异的体验。   Microsoft SQL Server 2008 Service Pack 2 不是安装 SQL Server 2008 Service Pack 3 的先决条件。可以使用这些包升级以下 SQL Server 2008 版本:   Enterprise   Standard   Evaluation   开发人员   Workgroup   SQL Server 2008 SP3 包含 SQL Server 2008 SP2 累积更新包 1 至 4 的累积更新,以及对通过客户反馈平台所收集问题的修复。它包括可支持性增强以及通过 Windows 错误报告收集的问题。   支持的操作系统:Windows 7;Windows Server 2003;Windows Server 2008;Windows Server 2008 R2;Windows Vista Windows 7; Windows8, Windows Server 2003 Service Pack 2 和 R2;Windows Server 2008 Service Pack 1 和 Service Pack 2;Windows Server 2008 R2;Windows Vista Service Pack 1 和 Service Pack2;Windows XP Service Pack 332 位系统 (x86)具有 Intel Pentium III 600 MHz(或同等性能的兼容处理器)或速度更快的处理器(建议使用 1 GHz 或速度更快的处理器)的 PC64 位系统(x64、ia64)1 GHz 或速度更快的处理器最低 512 MB 的 RAM(建议使用 1 GB 或更高的 RAM)675 MB 可用硬盘空间。
### ### SQL Server 数据库管理操作指南 SQL Server 提供了一套完整的数据库管理工具和操作方法,涵盖了数据库的创建、维护、备份、恢复以及性能优化等多个方面。以下是 SQL Server 数据库管理的关键操作指南: #### 数据库的创建与删除 SQL Server 中可以通过 T-SQL 语句或 SQL Server Management Studio (SSMS) 创建数据库。使用 T-SQL 创建数据库的基本语法如下: ```sql CREATE DATABASE MyDatabase ON PRIMARY ( NAME = MyDatabase_Data, FILENAME = 'C:\Data\MyDatabase_Data.mdf', SIZE = 10MB, MAXSIZE = 50MB, FILEGROWTH = 5MB ) LOG ON ( NAME = MyDatabase_Log, FILENAME = 'C:\Log\MyDatabase_Log.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 1MB ); ``` 如果需要删除数据库,可以使用 `DROP DATABASE` 命令。为了确保删除操作的顺利执行,建议在删除前检查数据库是否正在被使用,并确保没有活动连接。以下是一个安全删除数据库的示例: ```sql IF EXISTS (SELECT name FROM sys.databases WHERE name = 'MyDatabase') DROP DATABASE MyDatabase; ``` 此命令会先检查是否存在名为 `MyDatabase` 的数据库,如果存在,则将其删除[^3]。 #### 数据库文件管理 SQL Server 数据库由多个文件组成,包括主数据文件(.mdf)、次要数据文件(.ndf)和事务日志文件(.ldf)。数据库文件可以分布在不同的磁盘上,并通过文件组进行管理。可以通过以下 T-SQL 命令添加新的数据文件或日志文件: ```sql ALTER DATABASE MyDatabase ADD FILE ( NAME = MyDatabase_Data2, FILENAME = 'C:\Data\MyDatabase_Data2.ndf', SIZE = 10MB, MAXSIZE = 50MB, FILEGROWTH = 5MB ) TO FILEGROUP PRIMARY; ``` 对于事务日志文件的管理,也可以使用类似的方法进行扩展或收缩操作。例如,可以使用以下命令收缩日志文件: ```sql DBCC SHRINKFILE (MyDatabase_Log, 1); ``` 该命令将日志文件大小调整为 1MB[^4]。 #### 数据库备份与恢复 数据库备份是 SQL Server 数据库管理中的核心操作之一。SQL Server 提供了多种备份方式,包括完整备份、差异备份和事务日志备份。以下是一个完整备份数据库的示例: ```sql BACKUP DATABASE MyDatabase TO DISK = 'C:\Backup\MyDatabase.bak' WITH INIT, COMPRESSION; ``` 恢复数据库时,可以使用 `RESTORE DATABASE` 命令。例如,从完整备份文件恢复数据库: ```sql RESTORE DATABASE MyDatabase FROM DISK = 'C:\Backup\MyDatabase.bak' WITH REPLACE; ``` 此外,事务日志备份可以用于恢复到特定时间点。以下是一个事务日志备份的示例: ```sql BACKUP LOG MyDatabase TO DISK = 'C:\Backup\MyDatabase_Log.bak'; ``` #### 数据库维护 SQL Server 提供了多种数据库维护任务,包括索引重建、统计信息更新、数据库一致性检查等。例如,可以使用以下命令重建索引: ```sql ALTER INDEX ALL ON MyTable REBUILD; ``` 更新统计信息可以使用以下命令: ```sql UPDATE STATISTICS MyTable; ``` 检查数据库一致性可以使用以下命令: ```sql DBCC CHECKDB(MyDatabase); ``` 这些维护操作有助于提高数据库性能和数据完整性[^2]。 #### 数据库性能优化 SQL Server 提供了多种性能优化工具和方法,包括索引优化、查询优化、执行计划分析等。索引优化可以通过以下方式实现: - 使用 `CREATE INDEX` 创建合适的索引。 - 使用 `ALTER INDEX` 重建或重组索引。 - 使用 `DROP INDEX` 删除不必要的索引。 查询优化可以通过分析执行计划来实现。可以使用以下命令查看查询的执行计划: ```sql SET SHOWPLAN_ALL ON; GO SELECT * FROM MyTable WHERE Column1 = 'Value'; GO SET SHOWPLAN_ALL OFF; ``` 此外,还可以使用 SQL Server Profiler 工具捕获和分析数据库活动,从而优化性能。 #### 权限管理 SQL Server 提供了灵活的权限管理机制,支持用户、角色和权限的管理。可以通过以下命令创建用户并分配权限: ```sql USE MyDatabase; CREATE USER MyUser FOR LOGIN MyLogin; GRANT SELECT, INSERT, UPDATE ON MyTable TO MyUser; ``` 还可以通过角色管理权限。例如,创建角色并分配权限: ```sql CREATE ROLE MyRole; GRANT SELECT ON MyTable TO MyRole; EXEC sp_addrolemember 'MyRole', 'MyUser'; ``` 这些操作可以确保数据库的安全性和访问控制[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值