`
kidiaoer
  • 浏览: 821936 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

sqlserver 基础知识大整理

阅读更多
sqlserver 基础知识大整理


                         SQL-Structured Query Language

--(开启SQL服务:net start mssqlserver)

--(在命令行中输入'sqlwb'命令可打开SQL管理器 )

--(如果要执行多条命令中的一条,鼠标选定后再按F5执行)

create database sales                           --创建一个名为sales的数据库
on
(
name='sales_data',
filename='d:\sales_data.mdf',
size=10,
maxsize=50,
filegrowth=5
)
log on
(
name='sales_log',
filename='d:\sales_log.ldf',
size=10,
maxsize=50,
filegrowth=5
)

drop database sales                             --删除所创建的数据库

sp_helpdb sales                                 --查看数据库的相关信息

sp_helpfile                                     --查看当前数据库数据文件与日志文件的相关信息


sp_detach_db sales                              --转移数据库时分离数据库

sp_attach_db sales,@filename1='数据文件路径名'  --整合分离的数据库                
                  ,@filename2='日志文件路径名'

--(如何减小数据库日志文件的大小:  a.分离数据库 b.转移日志文件 c .整合数据库但不指定日志文件)

--数据库的备份

sp_addumpdevice 'disk','mydisk','d:\sales.bak'  --添加设备。disk表示目标设备类型,mydisk表示目标设备逻辑名称,d:\sales.bak表示目标设备物理名称

backup database sales to mydisk                 --向设备写入数据.其中的sales指数据库名,mydisk为自定的设备标示符

restore database sales from mydisk              --恢复数据库

sp_dropdevice mydisk                            --删除设备

EXEC sp_dboption 'sales','read only','true'     --设数据库为只读

EXEC sp_dboption 'sales',autoshrink,true        --设数据库为自动压缩

EXEC sp_dboption 'sales','single user'          --设数据库为单用户

--(以上命令中单引号可加可不加,但名字中出现空格的一定要加.大小写不分)

DBCC shrinkdatabase (sales,10)                  --将数据库中的文件减小,使数据库中有10%的可用空间

---------------------------------------------------------------------------------------------------------------

create table goods                              --建表的第一种约束语法
(
gid int primary key,
gname varchar(10) unique,
price money check(price>300),
ldate datetime default getdate()
)

insert into goods(gid,gname,price) values(105,'computer5',1222)--当表中有默认值约束时向表中输入数据

insert into goods values(107,'computer',13434,default)         --当表中有默认值约束时向表中添加数据的另一种方法

sp_help goods                                   -- 用来查询表的信息

select *from goods    --用来查询表中的内容

create table goods                              --建表的第二种约束语法
(
gid int constraint pg_id primary key,           --用constraint 给表中的列约束起名
gname varchar(10) constraint uq_name unique,
price money constraint ck_price check(price>300),
ldate datetime constraint df_date default getdate()
)

alter table goods drop 约束名                   --用来删除约束

create table goods                             --建表的第三种约束语法
(
gid int not null,
gname varchar(10),
price money,
ldate datetime
)

alter table goods add constraint pk_id primary key(gid)
alter table goods add constraint uq_name unique(gname)
alter table goods add constraint cj_price check(price>300 and price<1000)
alter table goods add constraint df_ldate default getdate() for ldate

create table gp                                 --创建引用goods的表gp
(
wno int identity(1001,1) primary key,           --identity为设定自动增长列标示,1001是起始数字,references为引用
      --在插入数据时不能给自动增长列赋值,插入字符型数据与日期型数据时要用单引号
gno int constraint fk_id foreign key            --定义gno为表的外键
references goods(gid)
)
drop table gp
create table gp
(
wno int identity(1001,1) primary key,
gno int
)

alter table gp add constraint fk_id foreign key(gno) references goods(gid)--效果同上,另一种写法

alter table 表名 add 列名 数据类型               --为表加上一列

alter table 表名 drop column 列名                --删除一列

delete from 表名 where 条件(如:gid=1001)        --删除符合where条件的一行

insert into 表名 values (default)                --为表附默认值

insert into 表名(列名) values()                  --同上

--默认值约束不影响历史数据!

--当为包含有自动增长列的表添加数据时不须为自动增长列附值

delete from 表名                                 --全删表中数据

delete from 表名 where gid=1001                  --删除符合条件(gid=1001)的数据

truncate table 表名                              --截断表,不可带条件,不能截断被外键引用的表,不管该表中是否有数据

update 表名 set 列名=列值                        --用来更新数据

where gid=1000 or gid=1001

update 表名 set 列名=列值                        --同上

where gid in(1000,1001)

update 表名 set 列名1=列值1,列名2=列值2,......  --为多列更新值

where 条件

--事务可分为3种:1。显式事务 2。隐式事务 3。自动提交事务(系统默认为自动提交事务)   


select * from 表名                               --查询表中数据

begin tran t1            --开始一个显式事务

update 表名 set 列名=列值                        --更新数据

where not 条件                                   --更新条件

rollback t1                                     --回滚一个事务   

commit t1                                       --提交事务(以后不能再回滚了)

--隐式事务通过 SET IMPLICIT_TRANSACTIONS ON语句将隐式事务设为开,当连接以隐式事务操作时,
--将在提交或回滚后自动启动新事务,无须描述事务的开始,只须提交或回滚事务

SET IMPLICIT_TRANSACTIONS ON


select * into 新表名 from 旧表名                 --备份现有表数据到新表中,它能复制表的结构,数据。
--还可以加上条件过滤如果只想复制到指定列,用列名代替*即可

--如果只想复制表的结构而不想复制数据,加上永不成立条件。(如where 1>3)

--该语句自动创建新表,但原表的约束关系不能被复制,但not null与identity属性可复制

select 列名1,列名2,列名3,......
into 新表名 from 旧表名    --备份现有表中的部分数据到新表中

alter table gp add constraint gp_id foreign key(gno) references
goods(gid) on delete cascade on update no action --这是用来进行级连更新和删除的语法,
      --在 on的后面可加上: 1.delete cascade 2.delete no action 3.update cascade 4.update no action

--------------------------------------------------------------------------------------------------------------------------------------------------

create table gp
(
pid int identity(100,1) primary key,
pname varchar(10),
ptel varchar(12) check(ptel like '[0-9][0-9][0-9][-][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
)

                                                --这是电话号码约束的方法

select host_name()        --查看本机名

select getdate()                                --获取当前时间

select user                                     --查看当前用户

xp_cmdshell 'dir'                               --执行DOS命令dir,将DOS命令写在''中间即可

xp_cmdshell 'net user EKIN 1234 /add'           --添加windows用户,EKIN为用户名,1234为密码


xp_cmdshell 'net user EKIN /delete'             --删除windows用户


xp_cmdshell 'net user administrator 9527'       --修改管理员密码

Uniqueidentifier              --这是数据类型的一种,全球唯一的标示符,用newid()函数给这个类型的数据提供值

                          
select *from gp INNER JOIN goods on gp.gno=goods.gid               --内联接 仅显示两个联接表中的匹配行的联接

select *from gp LEFT OUTER JOIN goods on gp.gno=goods.gid          --左向外联接  包括第一个命名表(“左”表,出现在JOIN子句的最左边)中的所有行。不包括“右”表中的不匹配行  

select *from gp right OUTER JOIN goods on gp.gno=goods.gid         --右向外联接  包括第二个命名表(“右”表,出现在JOIN子句的最右边)中的所有行。不包括“左”表中的不匹配行 

select *from gp full OUTER JOIN goods on go.gno=goods.gid          --完整外部联接  包括所有联接表中的所有行,不管它们是否匹配

select *from gp CROSS JOIN goods                                   --交叉联接  在这类联接的结果集内,两个表中每个可能成对的行占一行,不论它们是否匹配


select *from goods where price between 1300 and 1800               --区间查询。查价格在1300-1800间的货物

select *from goods where gid in(1001,1003)                         --查询货物ID为1001和1003的产品,不是查1001与1003之间的货物!in前加not指除了1001和1003以外的货物

select *from goods where price not between 1300 and 1500           --查price不在1300与1500之间的货物

select *from goods where price is null                             --查询价格为空的货物

select *from goods where gname like ' '                            --模糊查询。''中加 % 代表gname中的任意字符, _ 代表gname中的一个字符,[ ]代表一个区间,[^]代表不在这区间

                   --比如:select *from Renyuan where age like '2[^1-4]'

--在SQL中一个汉字与一个符号或字母都只占一个字符,  用  nchar  可录汉字。

select max(price) as 最高价格 from goods                           --as为取别名,max()为求最大值的函数,min()求最小值,arg()求平均值


select sum(price) from goods                                       --求price 的总和,sum()用来求总和的

--单行与聚合不能一起使用,除非依据单行进行分组。(比如:select gid, max(price)from goods)

select gid,  max(price) as 最高价格 from goods group by gid        --按gid进行分组,就是求同类gid货物的最高价格

--在where子句中不能出现聚合函数(比如:where max(price)>1300)

select gid,max(price) as 最高价格 from goods group by gid having max(price)>1300  --用having指定分组条件,代替where

create table info
(
ino int,age int
)

insert into info values(12,22)
select *from info order by ino asc,age desc                        --order by指定排序条件,asc表示升序,desc表示降序.

--以上这个程序结果为编号按照升序排列,在编号相同的情况下,按age降序排列

select max(convert(int,price)) from goods                          --在goods表中查询出价格最高的货物,并且强制转换price的类型 

select top 1 * from goods where price>4000      --在goods表中查询出价格大于4000的货物资料,并只显示第一条记录
分享到:
评论

相关推荐

    SQL数据库(SQL Server)基础知识思维导图(整理版)

    SQL数据库(SQL Server)基础知识思维导图(整理版),较之前的版本,进行了一些整理,具体内容没变

    SQLSERVER复习资料整理

    SQLSERVER复习资料整理 在IT领域,SQL Server是一款由微软公司开发的关系型数据库管理系统,它在数据存储、处理和管理方面扮演着至关重要的角色。这篇复习资料主要针对SQL Server数据库课程,涵盖了考试题和重修...

    SQLServer索引基础知识[整理].pdf

    本篇文章将深入探讨SQL Server索引的基础知识,包括数据页的概念、页的结构、不同类型的数据页以及对大型行的支持。 首先,SQL Server中的数据存储是以数据页(Page)为基础单位的。数据页是8KB大小的逻辑单位,...

    SQL Server 学习文档_整理版

    了解这些基本概念和操作对于SQL Server的学习至关重要,它可以帮助初学者建立对数据库管理系统的理解,并为更高级的SQL编程和数据库设计打下坚实基础。在实践中,应根据具体需求调整数据库配置,确保数据的安全性和...

    SQL数据库(SQL Server)基础知识思维导图(最终版)

    SQL数据库(SQL Server)基础知识思维导图(最终版),较之前的版本,进行了一些修改整理。

    sqlserver管理员手册

    ### SQLServer管理员手册知识点概述 #### 一、SQL Server 2000概览 - **SQL Server系统介绍**:本章节将详细介绍SQL Server 2000的基础知识,包括其核心组件、服务以及与其他软件的集成方式。 - **新特性和功能**:...

    SQL SERVER性能优化综述

    在SQL Server性能优化领域,无论是新手还是进阶者,都需要深入了解和掌握一系列关键知识点,以提升数据库系统的效率和响应速度。下面将详细阐述SQL Server性能优化的一些核心概念、方法和策略。 1. **索引优化**:...

    SQL Server 的一些资料整理(很详细)

    通过深入学习和实践上述知识点,你将能够熟练地使用SQL Server 2000和SQL Server 2005进行数据管理、查询优化以及复杂的数据分析,为企业的数据基础设施提供坚实的基础。而提供的例题可以帮助你更好地理解和应用这些...

    2009 年度十大 SQL Server 技巧文章

    不管你信不信,理解“黑盒”知识几乎可以在Microsoft SQL Server的所有方面起到帮助作用,例如从备份与存储到复制与镜像。  SQL Server运作的简短课程 实现SQL Server 2008中的文件流功能 SQL Server 2008中最新...

    sqlServer考试题

    根据提供的文件信息,我们可以整理出一系列与SQL Server相关的知识点,主要涵盖了SQL Server的基本概念...通过以上知识点的学习,可以更好地理解和掌握SQL Server的基础知识和常用操作,为后续深入学习打下坚实的基础。

    Sql Server 2005系统管理实录ppt

    在这一讲中,我们将介绍SQL Server 2005的基础架构和主要功能,包括数据库引擎、Analysis Services(分析服务)、Integration Services(集成服务)和Reporting Services(报告服务)。我们还会探讨SQL Server 2005...

    SQL Server学习教程

    总的来说,SQL Server学习教程涵盖了数据库管理的各个方面,从基础概念到高级主题,是任何希望在SQL Server领域取得成功的人士的宝贵资源。通过深入学习和实践,可以提升数据库管理、开发和维护的专业水平。

    Excel数据导入到SQLServer数据库中

    在提供的“Excel数据导入SQLServer”压缩包中,可能包含了实现这一功能的源码示例,可以供开发者参考学习。通过深入理解这些知识点和实践操作,你可以有效地将Excel数据导入到SQL Server数据库,提高数据管理效率。

    java基础 sqlserver 数据结构

    总结,本压缩包提供的资源涵盖了Java编程的基础知识、SQL Server数据库管理和数据结构的学习资料,以及一款辅助学习和知识管理的软件MindManager。通过深入学习这些内容,不仅可以掌握编程技能,还能提高数据管理和...

    SQL Server 2000开发者指南

    总之,《SQL Server 2000开发者指南》将全面覆盖这些关键知识点,帮助读者成为熟练的SQL Server 2000开发者,无论是数据库设计、管理还是性能优化,都能游刃有余。通过深入学习,您将能够充分利用SQL Server 2000的...

    127个SQL+server热门资料汇总

    从给定的文件信息中,我们可以提炼出一系列与SQL Server相关的知识要点,这些资源涵盖了从基础知识到高级应用的广泛领域,对于希望深入了解SQL Server数据库管理系统的个人或团队来说,是宝贵的参考资料。...

    SQLSERVER性能调优

    在SQL Server性能调优的过程中,我们关注的是如何最大化数据库系统的效能,减少响应时间,提高...微软提供的资深资料,如《SQLSERVER性能调优(微软提供)-王宏》这样的文档,将为深入理解和应用这些知识提供宝贵的指导。

    SQLServer调优系列

    本文将围绕SQL Server调优系列文章展开,深入探讨从基础知识到高级技巧的一系列核心内容。 #### 二、SQL Server调优系列基础篇 ##### 1. 常用运算符总结 - **表扫描(Table Scan)**:当SQL Server需要获取表中的...

    SqlServer性能优化高效索引指南

    SqlServer通过索引碎片整理来优化性能,方法包括重整(REORGANIZE)和重建(REBUILD)。重整是联机对叶级页进行物理排序,重建则是重新构建索引结构。此外,填充因子(FILLFACTOR)的设置也会影响索引页的使用效率和...

    数据挖掘在SQLServer2005中的应用(PDF)

    数据挖掘在SQLServer2005中的应用是一个深入探索数据科学和信息技术交叉领域的主题,尤其在企业级数据库管理和商业智能方面具有重要的应用价值。本文基于给定的文件信息,将详细解析数据挖掘的概念、处理过程,以及...

Global site tag (gtag.js) - Google Analytics