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)的目标:确保每列都和主键列直接相关,而不是间接相关 ***************************************************************************************************************
sql server 使用总结
最新推荐文章于 2024-10-17 18:58:27 发布