创建数据库
    创建之前判断该数据库是否存在
    if exists (select * from sysdatabases where name=databasename) drop database databasename
    go
    create database database-name
    删除数据库 增加字段的sql语句
    drop database dbname
    备份sql server
    --- 创建备份数据的 device
    use master
    exec sp_addumpdevice disk, testback,
    c:\mssql7backup\mynwind_1.dat
    --- 开始备份
    backup database pubs to testback
    创建新表
    create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
    根据已有的表创建新表:
    a:go
    use 原数据库名
    go
    select * into 目的数据库名.dbo.目的表名 from 原表名(使用旧表创建新表)
    b:create table tab_new as select col1,col2? from tab_old definition only
    创建序列
    create sequence simon_sequence
    minvalue 1 -- 最小值
    maxvalue 999999999999999999999999999 -- 最大值
    start with 1 -- 开始值
    increment by 1 -- 每次加几
    cache 20;
    删除新表
    drop table tabname
    增加一个列
    alter table tabname add colname coltype
    删除一个列
    alter table tabname drop column colname
    添加主键
    alter table tabname add primary key(col)
    说明:删除主键:alter table tabname drop primary key(col)  创建索引
    create [unique] index idxname on tabname(col?。)
    删除索引:drop index idxname on tabname
    注:索引是不可更改的,想更改必须删除重新建。
    创建视图
    create view viewname as select statement
    删除视图:drop view viewname
    简单基本的sql语句
    (1) 数据记录筛选:
    sql=select * from 数据表 where 字段名=字段值 order by 字段名
    [desc]
    sql=select * from 数据表 where 字段名 like %字段值% order by 字段名 [desc]
    sql=select top 10 * from 数据表 where 字段名 order by 字段名
    [desc]
    sql=select * from 数据表 where 字段名 in (值1,值2,值3)
    sql=select * from 数据表 where 字段名 between 值1 and 值2
    (2) 更新数据记录:
    sql=update 数据表 set 字段名=字段值 where 条件表达式
    sql=update 数据表 set 字段1=值1,字段2=值2 ?? 字段n=值n where 条件表达式
    (3) 删除数据记录:
    sql=delete from 数据表 where 条件表达式
    sql=delete from 数据表 (将数据表所有记录删除)
    (4) 添加数据记录:
    sql=insert into 数据表 (字段1,字段2,字段3 ?) values (值1,值2,值3 ?)
    sql=insert into 目标数据表 select * from 源数据表 (把源数据表的记录添加到目标数据表)
    (5) 数据记录统计函数:
    avg(字段名) 得出一个表格栏平均值
    count(*;字段名) 对数据行数的统计或对某一栏有值的数据行数统计 max(字段名) 取得一个表格栏最大的值
    min(字段名) 取得一个表格栏最小的值
    sum(字段名) 把数据栏的值相加
    引用以上函数的方法:
    sql=select sum(字段名) as 别名 from 数据表 where 条件表达式 set ute(sql)
    用 rs(别名) 获取统计的值,其它函数运用同上。
    查询去除重复值:select distinct * from table1
    (5) 数据表的建立和删除:
    create table 数据表名称(字段1 类型1(长度),字段2 类型2(长度) ?? )
    几个高级查询运算词
    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),不消除重复行。
    注:使用运算词的几个查询结果行必须是一致的。
    使用外连接
    a、left outer join:
    左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。
    sql: select a.a, a.b, a.c, b.c, b.d, b.f from a left out join b on a.a = b.c
    b:right outer join:
    右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
    c:full outer join:
    全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
    编辑本段判断对象是否存在 判断数据库是否存在
    if exists (select* from sysdatabases wherename= 数据库名) dropdatabase[数据库名]
    判断表是否存在
    if not exists (select * from sysobjects where [name] = 表名 and xtype=u)
    begin
    --这里创建表
    end
    判断存储过程是否存在
    if exists (select* from sysobjects whereid = object_id(n[存储过程名]) and objectproperty(id, nisprocedure) = 1) dropprocedure[存储过程名]
    判断临时表是否存在
    if object_id(tempdb..#临时表名) isnot null
    droptable#临时表名
    判断视图是否存在
    --sql server 2000
    if exists (select* from sysviews whereobject_id = [dbo].[视图名]
    --sql server 2005
    if exists (select* from sys.views whereobject_id = [dbo].[视图名]
    判断函数是否存在
    if exists (select* from dbo.sysobjects whereid =
    object_id(n[dbo].[函数名]) and xtype in (nfn, nif, ntf)) dropfunction[dbo].[函数名]
    获取创建信息
    select[name],[id],crdate from sysobjects where xtype=u /*
    xtype 的表示参数类型,通常包括如下这些 c = check约束 d = 默认值或default约束 f = foreignkey约束 l = 日志 fn = 标量函数 if = 内嵌表函数 p = 存储过程 pk = primarykey约束
(类型是k) rf = 复制筛选存储过程 s = 系统表 tf = 表函数 tr = 触发器u = 用户表 uq = unique约束(类型是k) v = 视图 x = 扩展存储过程 */
    判断列是否存在
    if exists(select* from syscolumns whereid=object_id(表名) and name=列名)
    altertable表名dropcolumn列名

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。