1.--数据操作
SELECT --从数据库表中检索数据行和列
select * from table order by oid desclimit 0,5; 查表中最后5条记录
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表结构
CREATE VIEW --创建一个视图
DROP VIEW --从数据库中删除视图
CREATE INDEX --为数据库表创建一个索引
DROP INDEX --从数据库中删除索引
CREATE PROCEDURE --创建一个存储过程
DROP PROCEDURE --从数据库中删除存储过程
CREATE TRIGGER --创建一个触发器
DROP TRIGGER --从数据库中删除触发器
CREATE SCHEMA --向数据库添加一个新模式
DROP SCHEMA --从数据库中删除一个模式
CREATE DOMAIN --创建一个数据值域
ALTER DOMAIN --改变域定义
DROP DOMAIN --从数据库中删除一个域
--数据控制
GRANT --授予用户访问权限
DENY --拒绝用户访问
REVOKE --解除用户访问权限
--事务控制
COMMIT --结束当前事务
ROLLBACK --中止当前事务
SET TRANSACTION --定义当前事务数据访问特征
--程序化SQL
DECLARE --为查询设定游标
EXPLAN --为查询描述数据访问计划
OPEN --检索查询结果打开一个游标
FETCH --检索一行查询结果
CLOSE --关闭游标
PREPARE --为动态执行准备SQL 语句
EXECUTE --动态地执行SQL 语句
DESCRIBE --描述准备好的查询
---局部变量
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
2.常用加实用的:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库CREATE DATABASE database-name
2、说明:删除数据库drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 deviceUSE master
EXEC sp_addumpdevice 'disk','testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份BACKUPDATABASE pubs TO testBack
4、说明:
创建新表create table tabname(col1type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:createtable tab_new like tab_old (使用旧表创建新表)
B:createtable tab_new as select col1,col2… from tab_old definition only
5、说明:
删除新表:drop table tabname
6、说明:
增加一个列:Alter table tabname addcolumn col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:
添加主键:Alter table tabname addprimary key(col)
说明:
删除主键:Alter table tabname dropprimary key(col)
8、说明:
创建索引:create [unique] indexidxname on tabname(col….)
删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。
9、说明:
创建视图:create view viewname asselect statement
删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert intotable1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 setfield1=value1 where 范围
查找:select * from table1 wherefield1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order byfield1,field2 [desc]
总数:select count * as totalcountfrom table1
求和:select sum(field1) assumvalue from table1
平均:select avg(field1) asavgvalue from table1
最大:select max(field1) asmaxvalue from table1
最小:select min(field1) asminvalue from table1
11、说明:几个高级查询运算词
A: UNION运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B:EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。
C:INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接
A、leftouter join:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。 SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ONa.a = b.c
B:rightouter join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:fullouter join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
3.SQL复制的基本元素包括
出版服务器、订阅服务器、分发服务器、出版物、文章。
SQL复制的工作原理
SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器。
SQL SERVER复制技术类型
SQL SERVER提供了三种复制技术,分别是:
1、快照复制(呆会我们就使用这个)
2、事务复制
3、合并复制
只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。接下来我们就一步一步来实现复制的步骤。
一:先来配置出版服务器
(1)选中指定[服务器]节点。
(2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令。
(3)系统弹出一个对话框点[下一步]然后看着提示一直操作到完成。
(4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution)。
二:创建出版物
(1)选中指定的服务器。
(2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会弹出一个对话框。
(3)选择要创建出版物的数据库,然后单击[创建发布]。
(4)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)。
(5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQL SERVER2000"的数据库服务器
(6)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表。
(7)然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
三:设计订阅
(1)选中指定的订阅服务器。
(2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅]。
(3)按照单击[下一步]操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行复制操作的前提条件是SQL SERVER代理服务必须已经启动。然后[下一步]直到操作完。
4.1>、sysobjects
系统对象表。 保存当前数据库的对象,如约束、默认值、日志、规则、存储过程等
sysobjects 重要字段解释:
sysObjects (
Name sysname, --object 名称
id int, --object id
xtype char(2), -- object 类型
type char(2), -- Object 类型(与xtype 似乎一模一样? 有点郁闷…)
uid smallint, -- object 所有者的ID
... --其他的字段不常用到。
)
注:需要解释的是xtype 和type 是一模一样的,他的数据为:
C = CHECK 约束
D = 默认值或DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
IF = 内嵌表函数
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程
该表中包含该数据库中的所有对象,如有那些表 存储过程视图 等信息
2、sysColumns 数据库字段表。 当前数据库的所有字段都保留在里面。
重要字段解释:
sysColumns (
name sysname, --字段名称
id int, --该字段所属的表的ID
xtype tinyInt, --该字段类型,关联sysTypes表
length smallint, --该字段物理存储长度
...
)
比如要查询某一个张表的有那些字段和这些字段的长度
3、sysUsers
当前数据库的系统组,以及用户。
sysUsers(
uid smallint, --用户id
name smallint , --名称
uid varbinary(85) , --属于一个登陆
....
)
对数据库的用户进行管理
4、sysdenpends
当前数据库的依赖关系。 比如 我要修改某一张的结构时,怕修改后会影响到其它的视图函数 存储过程 ,这是在修改之前可以查询一下.那些视图 函数 存储过程调用了这个表的
这样在修改后就可以修改的视图 函数 存储过程,