sqlserver战德臣_SQLServer 用法简例

子曰:“温故而知新,可以为师矣。”孔子说:“温习旧知识从而得知新的理解与体会,凭借这一点就可以成为老师了。“ 尤其是咱们搞程序的人,不管是不是全栈工程师,都是集十八般武艺于一身。不过有时候有些知识如果有很久没用了的话,就会忘记,甚至是忘的你一点都想不起来,尤其是一些基础的东西。所以我才打算写个"温故而知新"的系列博文出来,一来是这些基础的东西我比较健忘,以后方便自己翻阅;二来是希望可以帮助到一些刚入门的朋友。这个系列记录的所有知识点都是最最最(重要的事情说三遍)基础的知识。大部分都是我学习的时候所积累的笔记。

温故而知新系列都是一些基础知识,大神可以直接跳过。

v写在前面

如果十八般武艺都融会贯通,如果什么兵器你都耍得有模有样,那么这篇博文你大可以跳过了。只是在忘记的时候,可以拿出来温习温习。

v基本概念

SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。 Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

简单点一句话概括: 数据是具有一定意义的数字、字母、符号的统称,数据库就是存放数据的

vSql(Structured Query Language) server基础

1.Sql server的组成:

主要数据库文件:.mdf 特点:有且只有一个

次要数据库文件:.ndf 特点:任意个

日志数据库文件:.ldf 特点:至少一个

2.操作数据库:

创建数据库:create databse 库名

查看所有数据库:exec sp_helpdb

查看当前数据库:exec sp_helpdb 库名

使用数据库:use 库名

删除数据库:drop database 库名 ps:正在使用的数据库无法删除

3.表的结构:字段 数据类型(属性)

4.数据类型:

整型

微整型 tinyint 1个字节

小整型 smallint 2个字节

整型 int 4个字节

大整型 bigint 8个字节

浮点型

float 不能精确存储数值

real 不能精确存储数值

decimal(numeric ) 同义,用于精确存储数值

字符型

char 长度在1到8000之间 定长字符数据

varchar 长度在1到8000之间 变长字符数据

text 存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符

时间日期型:datetime 年月日时分秒毫秒

货币型:money 精确到货币单位的千分之十。存储大小为 8 个字节。存储形式为12345.67

vsql server表

1.创建表的语法:

create table 表名

(

字段名称1 数据类型[属性],

字段名称2 数据类型[属性],

...

)

2.查看所有表语法:exec sp_help

3.查看当前表语法:exec sp_help 表名

4.修改表结构:

增加一列语法:alter table 表名 add 字段名 数据类型

删除一列语法:alter table 表名 drop column 字段名

修改一列语法:alter table 表名 alter column 字段名 数据类型

删除表语法:drop table 表名

5.操作表数据:

完全插入数据语法:insert into 表名(字段名1,字段名2...) values(值1,值2...)

省略插入数据语法:insert into 表名 values(值1,值2...)

部分插入数据语法:insert into 表名(字段名1,字段名2...) values(值1,值2...)

多行插入数据语法:insert into 表名 values(值1,值2...),(值1,值2...)

查看所有记录语法:select * from 表名

查看部分记录语法:select 字段名1,字段名2... from 表名

修改一条记录语法:update 表名 set 字段名=值 [where条件]

删除一条记录语法:delete from 表名 where 条件

清空表所有记录

delete from 表名

truncate from 表名 ps:至于他们的区别,我就不多介绍了,有兴趣的可以看这里SQL Server中truncate、delete和drop的异同点

6.标识列 identity(初值,增值):

定义:能唯一区分表中的每一条记录,且该属性是自动增长的

特点

一个表中有且只有一个标识列

标识列不能编辑,不能更新

标识列数据类型只能是整型

标识列不为null

标识列不重复

作用:保证数据完整性

7.运算符:

sql server的运算符与其他语言不同,这里列举三个

&&-----and

||-----or

!-----not

8.六大约束:

检查约束 check 语法 check(条件)

默认约束 default 语法 default'默认语句'

非空约束 not null

唯一性约束 unique

主键 primary key

主键的值不能重复

一个表中有且只有一个主键

外键与主键相对应

主键类型可以是整型、字符型

语法:字段名 数据类型 primary key

外键 foreign key references

与主键相对应

外键的值一定在主键范围之内

外键的值可以重复

语法:字段名 数据类型 foreign key references 主表名

注意事项:

在操作主表从表时:先删除从表,再删除主表,删除数据,也要先从后主

在建立表时:要先创建主表,再创建从表,插入数据,先主后从

vsql server查询

1.查询符合条件的数据:select 字段名 from 表名 [where 条件]

2.之间的

and ... or

between ... and

例句:查询23岁到25岁之间的学生

select * from student where age>=23 and age<=25

select * from student where age between 23 and 25

3.不显示重复项:distinct select distinct 字段名 from 表名

4.前几项 top select top n * from 表名

5.排序 order by + 字段名 asc升序 desc降序(默认情况下为升序) select * from student where age>25 order by name desc

6. is not null/null select * from 表名 where 字段名 is null

7.列起别名as select id as 学生编号, name as 学生姓名 from student as a 注:实际语法中as可以省略

8.高级查询(模糊查询) like select 字段名 from 表名 where 字段名 like '通配符 值 通配符'

sql server 通配符

% 任意字符

[]范围内任意字符

[^]非范围内任意字符

9.联合查询 join

交叉查询:select 字段名 from 表1 cross join 表2 [where 条件]

内连接查询:select 字段名 from 表1 inner join 表2 on 联合条件 [where 条件]

外连接

左外连接:select 字段名 from 表1 left join 表2 on 联合条件 [where 条件]

右外连接:select 字段名 from 表1 right join 表2 on 联合条件 [where 条件]

全外连接:select 字段名 from 表1 full join 表2 on 联合条件 [where 条件]

多表连接:select 字段名 from 表1 inner join 表2 on 联合条件 inner join 表3 on 联合条件 [where 条件]

10.嵌套查询(嵌套查询都可以用联合查询完成),显示的字段在一个表中,条件在另外一个表中

in() 在...范围之内的

not in() 不在...范围之内的

exists 存在

not exists 不存在

11. 分组 group by

v系统函数

1.统计(聚合)函数

Transact-SQL编程语言提供下列聚合函数:

AVG 返回指定组中的平均值,空值被忽略。

例:select prd_no,avg(qty) from sales group by prd_no

2. COUNT 返回指定组中项目的数量。

例:select count(prd_no) from sales

3. MAX 返回指定数据的最大值。

例:select prd_no,max(qty) from sales group by prd_no

4. MIN 返回指定数据的最小值。

例:select prd_no,min(qty) from sales group by prd_no

5. SUM 返回指定数据的和,只能用于数字列,空值被忽略。

例:select prd_no,sum(qty) from sales group by prd_no

6. COUNT_BIG 返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。

例:select count_big(prd_no) from sales

7. GROUPING 产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.

例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup

8. BINARY_CHECKSUM 返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。

例:select prd_no,binary_checksum(qty) from sales group by prd_no

9. CHECKSUM_AGG 返回指定数据的校验值,空值被忽略。

例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no

10. CHECKSUM 返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。

11. STDEV 返回给定表达式中所有值的统计标准偏差。

例:select stdev(prd_no) from sales

12. STDEVP 返回给定表达式中的所有值的填充统计标准偏差。

例:select stdevp(prd_no) from sales

13. VAR 返回给定表达式中所有值的统计方差。

例:select var(prd_no) from sales

14. VARP 返回给定表达式中所有值的填充的统计方差。

例:select varp(prd_no) from sales

2.日期函数

getDate()获取当前时间

Dateadd() 增加时间

datediff(datepart,startdate,enddate)

startdate 和 enddate 参数是合法的日期表达式。

datepart 参数可以是下列的值:

datepart缩写

yy, yyyy

季度

qq, q

mm, m

年中的日

dy, y

dd, d

wk, ww

星期

dw, w

小时

hh

分钟

mi, n

ss, s

毫秒

ms

微妙

mcs

纳秒

ns

datepart(datepart,date)函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等,datepartd参数可以参见上表

datename(datepart,date)傳回代表指定 date 之指定 datepart 的字元字串

3.数学函数

abs()取绝对值

round()四舍五入

floor()函数返回小于或等于所给数字表达式的最大整数

ceiling()函数返回大于或等于所给数字表达式的最小整数

sqrt()开平方根

4.字符串函数

left()左截串

right()右截串

ltrim()去左空格

rtrim()去右空格

replace(字符串,旧字符串,新字符串) 替换

substring(字符串,位置,长度) 截字符串 ps:sql中字符串下标从1开始

reverse()反转

len()长度

upper()转大写

lower()转小写

vT-sql

1.声明变量语法: declare @变量名 数据类型

给变量赋值

set @变量名=值

select @变量名=值

输出变量 select @变量名

ps:若想输出变量、声明变量、变量赋值和变量输出三条语句需一起执行

2.编程语句

begin...end

if...else

v视图

1.创建视图

create view 视图名称

as

sql中查询语句

2.使用视图 select * from 视图名

3.查看视图 exec sp_help

4.查看视图内容 exec sp_helptext 视图名

5.修改视图 alter view 视图名 as select * from 表名 [where条件]

6.删除视图 drop view 视图名

7.修改视图 update 视图名 set 字段名=值 [where条件]

v存储过程/触发器/事务

1.sql server 存储过程

create proc | procedure pro_name

[{@参数数据类型} [=默认值] [output],

{@参数数据类型} [=默认值] [output],

....

]

as

select ......

2.sql server 触发器

insert触发器

update触发器

delete触发器

关于sql server 触发器这里就不多介绍了,更多详情大家有兴趣可以看这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值