sql server 使用总结

create database 数据库名  ------创建数据库

use 数据库名   		  ------使用数据库
***************************************************************************************
--创建主数据文件
on(
	name='D:\Data\WebShop_data',-----------指定数据库逻辑名称
	filename='D:\Data\WebShop.mdf',--------------指定数据库的物理位置和物理名称
	size=3,		----------------------指定数据库的初始化大小,如不指定单位,则默认单位是MB
	Maxsize=10	----------------------指定数据库的最大值,如不指定单位,则默认单位是MB,如果不设定最大值,则默认无限大
	maxsize = unlimited,----也是无限大的设置。如果不写则默认
	filegrowth=50%	------------增长增量,值也可以是MB,比如filegrowth=3,意思为超过容量就3MB的扩展
)

--创建日记文件
log on ()-----括号里面的数据和主数据文件设置的一样。

-------建表-----------
create table 表名(
	loginId int identity(201301,1) primary key, ------------此列有自增和主键约束
	loginName varchar(20) unique not null,	    ------------此列添加了唯一约束
	loginPass varchar(20) not null,			
	nickName varchar(20) not null,
	sex char(2)check(sex in('男','女')) default '男',  ------------此列添加了检查约束和默认约束
	birthday datetime check(birthday <getdate()) not null, 
	nickphoto varchar(50) default 'images/29.gif',
	nicktype bit not null default 0,--1为管理员,0为普通用户
)

字段名 数据类型 foreign key(字段名) references 主键表名(字段名)  ------------------添加外键

----------添加数据------------

insert into 表名 values('wangsong','wangsong','心帆唯一','images/362.gif',1)

*************************************************************************************

Ctrl+E 执行数据库语句命令

Ctrl+S 保存数据库命令

Ctrl+T 执行数据库语句命令,去除表格边框

Ctrl+D 执行数据库语句命令,添加表格边框

Ctrl+W 选中当前鼠标指针所在的字符

*************************************************************************************

DBMS——数据库管理系统(DateBase Management System)

services.msc 		----------开启服务

net start  mssqlserver		---------------开启数据库服务

net stop  mssqlserver		---------------关闭数据库服务

************************************************************************************

创建数据库必将生成至少两个文件		*.mdf(主要数据库文件)
					*.ldf(日志文件)
					*.ndf(次要数据库文件)

分离数据库  	右键 > 任务 > 分离

附加数据库	右键 > 附加 > 添加 > 数据库目录 > 确认

************************************************************************************

——单行注释

/*
*  多行注释
*/

**************************************************************************************
drop database 数据库名            -----------删除数据库

drop table 表名           ----------删除表

delete 表名 where 字段名=值           ---------------删除指定记录

delete 表名 where  字段名 between 10 and 15 	----------删除指定记录(between在10-15这个范围内)
delete 表名 where  字段名 in (10,15) 	----------删除指定记录(在10.或者15中)


truncate table 表名              -----------删除表中所有数据

alter table 表名 drop column 字段名 ----------删除列

exec sp_help 表名		--------------查看表的所有设置

exec sp_helpdb 数据库名  	---------------	查看数据库信息

exec sp_helpconstraint 表名		----------查看表上的约束

exec sp_tables	[字段名]	------------查看某个表列的信息

exec sp_columns 表名	---------------------查看表的信息

exec sp_helpindex 表名	---------------------查看表的索引

exec sp_helptext 视图名		---------------------查看视图的语句文本

exec sp_stored_procedures	----------查看当前数据库中的存储过程


*******************************************************************************************

select 字段名 as 改成的字段名 from 表名         --------- 查询修改的列内容

update 表名 set 字段名=新值 where 条件(字段名=值,此处的条件最好是唯一的,如id)	------------修改表中的数据

exec sp_renamedb '原数据库名','新数据库名'	-----------------修改数据库名称

exec sp_password @new='sa'		------------修改数据库密码

alter table 表名 add  约束名(字段名)	----------修改表

alter table 表名 add 字段名 数据类型 	 	-----------添加字段名

select distinct 字段名 from 表名	----------------------清除重复行

select top 数字(或 %) * from 表名             ------------查询表内头条数量

select * from 表名1 join 表名2 on 连接条件  --------------联表查询

select * from 表名1,表名2 where 连接条件     -------------联表查询

select * from 表名1 left join 表名2  on 连接条件  --------------左外连接

select * from 表名1 right join 表名2  on 连接条件  --------------右外连接

select * from 表名1 full join 表名2  on 连接条件  --------------全外连接

****************************************************************************************
以下为sql语句查询先后格式

select 字段名 from 表名/视图名 			
			where 条件 
			group by 字段名		(此条件以字段名为类型查询,查询的字段名必须要在查询条件里)
			having 条件		(此处条件为查询结果后的在做升序或降序排列操作)
			order by 字段名	asc 升序(默认)	
					desc 降序

***************************************************************************************

select * from 表名 where 字段名 like '%angel%'	 --------------查询表中含有angel字符的内容

select * from  表名 where 字段名 like 'angel%'	 --------------查询表中以angel开头的内容

select * from  表名 where 字段名 like '_angel%'	 --------------查询表中第二个以angel开头的内容

select * from  表名 where 字段名 like '%angel'	--------------查询表中以angel结束的内容

select * from  表名 where 字段名 like '%[angel]%'  --------------查询表中含有angel五个字母中任意一个字母的内容

select * from  表名 where 字段名 like '%[^angel]%'  --------------查询表中没有包含angel五个字母中任意一个字母的内容

select * from  表名 where 字段名 like '_[^angel]%'  --------------查询表中第二位字符开始没有包含angel五个字母中任意一个字母的内容

% 代表多个字符  
_ 代表一个字符
[] 代表包含括号里的内容
^ 代表不包括

***************************************************************************************************
聚合函数

select count(字段名) from 表名		-----------查询表中元素的数量

select sum(字段名) from 表名		-----------查询表中字段里 总值

select max(字段名) from 表名		-----------查询表中字段里最大值

select min(字段名) from 表名		-----------查询表中字段里最小值

select avg(字段名) from 表名		-----------查询表中字段里平均值

***************************************************************************************************

系统函数

select convert(int,'123') ---------------------将字符串转成 int 类型

select convert(char(5), 12345)	--------------------将数字转成 char 类型

select current_user	------------------------返回当前的登录名

select datalength('abc中国')	-----------------返回用于指定表达式的 字节数

select host_name()	---------------------返回当前登录的计算机的名字

select system_user	--------------返回当前登录的计算机的用户名字


***************************************************************************************************

查询时间语句(时间函数)

----------yy 年 mm 月 dd 天 hh 小时  mi分  ss 秒

select getdate()  -------得到当前时间

select datediff(yy,'1989-1-1',getdate())------------查询时间差

select convert(char(10),getdate(),120)       -----显示时间的格式

select dateadd(yy,44,getdate())    ------------------返回一个当前加上 44 年的时间(第一个参数可以为 年 月 日 小时 分 秒)

select datename(dw,getdate())		---------------------日期中指定日期部分的字符串形式

select datepart(yy,getdate()) 		-------------日期中指定日期部分的整数形式

select user_name(1)		-------------从给定的用户I D返回用户名


***************************************************************************************************
查询数字语句(数学函数)

SELECT ABS(-43)		----------------------取数值表达式的绝对值

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

select floor(43.5)	-------------------取小于或等于指定表达式的最大整数

select round(43.578632,4)	--------------------将数值表达式四舍五入为指定精度

select sign(0)		--------------------------对于正数返回+1,对于负数返回-1,对于0 则返回0

SELECT SQRT(9)		-------------------取浮点表达式的平方根

SELECT POWER(5,2)		-------------------取数值表达式的幂值

***************************************************************************************************

查询字符串语句(字符串函数)

select charindex('要查的字符串','原字符串',从何处开始查询)  ---------------用来寻找一个指定的字符串在另一个字符串中的起始位置

select len('字符串')     -------------------查询字符串的长度

select lower('字符串')  	-----------将字符串中的大写字母 转 小写

select upper('字符串')  	-----------将字符串中的大写字母 转 小写

select ltrim('字符串')  	-----------清空左边多余的空位

select rtrim('字符串')  	-----------清空右边多余的空位
	
select left('字符串',数字)	-----------从左边(数字)开始截取字符串

select right('字符串',数字)	-----------从右边(数字)开始截取字符串

select replace('原样字符串','需要替换的字符串','将插入的字符串') ------- 替换字符串

select stuff('原样字符串',数字(需要从哪里开始替换),数字(需要替换多长),'替换的内容') ------- 填充字符串


***************************************************************************************************

数据类型 
整数数据bit  0  1  null
	int	-2^32/2^32-1
	smallint    -2^15/2^15-1
	tinyint		0-2^8-1

精确数据numeric(18,0)
	decimal

近似浮点数 float
	   real
日期数据 datetime        1753/1/1-9999/12/31
	smalldatetime	1990/1/1-2079/12/31

货币类型 money
	 smallmoney 

text 为文本类型
char(n) n的取值是:1-8000,即可容纳8000个ANSI(ACSII)字符
nchar(n) n的取值是:1-4000,即可容纳4000个Unicode字符
varchar(n) n的取值是:1-8000,即可容纳8000个ANSI(ACSII)字符,其长度是可变的,这个 n 只是表示这个字段字符的最大个数
nvarchar(n)n的取值是:1-8000,即可容纳4000个Unicode字符,其长度是可变的,这个 n 只是表示这个字段字符的最大个数

****************************************************************************************************

print @@ERROR	--最后一个T-SQL错误的错误号

print @@IDENTITY	--最后一次插入的标识值

print @@LANGUAGE	--当前使用的语言的名称

print @@MAX_CONNECTIONS	--可以创建的同时连接的最大数目

print @@ROWCOUNT		--受上一个SQL语句影响的行数

print @@SERVERNAME	--本地服务器的名称

print @@VERSION		--SQL Server的版本信息

print '当前错误号'+convert(varchar(5),@@ERROR)  ----查看当前错误号

*****************************************************************************************************

--声明变量
declare @age int
--赋值变量
set @age=10
--打印变量方式1
print @age
--打印变量方式2
select @age

declare @day int
set @day=9
declare @tz int
set @tz=1
while(@day!=0)
	 begin 
		set @tz=(@tz+1)*2
		set @day=@day-1
	 end
print '猴子总共吃了'+convert(nchar(5),@tz)+'个桃子'

**************************************************************************************************************

use master
go
--exec xp_cmdshell 'E:\Mywork',NO_OUTPUT
if exists (select * from sysdatabases where name='abc')--查看数据库中是否存在数据库名
	drop database abc ----------删除abc数据库
go 
create database abc		----------创建abc数据库
--EXEC xp_cmdshell 'dir E:\Mywork\' -------查看文件

select * from sysobjects where name='表名(或视图名)'	--------查看数据库中某张表(或视图)的存在以及信息

	-- 如果backtable表存在,就从deleted表中的数据复制到backtable表中
	if exists( select * from sysobjects where name = 'backtable')
		insert into backtable select * from deleted 
    	else
		--如果backtable表不存在,就新建backtable表并复制deleted表中的数据
		select * into backtable from deleted

insert into 需要插入的表(字段名)select 字段名 from 表名		----------插入一条在其他表中查询出来的记录

***************************************************************************************************************

第一范式(1NF)的目标:确保每列的原子性。
第二范式(2NF)的目标:确保表中的每列,都和主键相关 。
第三范式(3NF)的目标:确保每列都和主键列直接相关,而不是间接相关 

***************************************************************************************************************


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值