1.增添字段

1.日增字段
alter table Table_Name add dspcode char(200)

用SQL语句添加删减修改字段
1.日增字段
     alter table docdsp    add dspcode char(200)
2.剔除字段
     ALTER TABLE table_NAME DROP COLUMN column_NAME
3.修改字段类型
     ALTER TABLE table_name    ALTER COLUMN column_name
new_data_type
4.sp_rename 改名
    
更改当前数据库中用户创立对象(如表、列或用户定义数据类型)的称谓。
    语法
    sp_rename [ @objname = ] ‘object_name’ ,
        [ @newname = ] ‘new_name’
        [ , [ @objtype = ] ‘object_type’ ]
        如:EXEC sp_rename    ‘newname’,’PartStock’
5.sp_help 展现表的局地中坚意况
     sp_help ‘object_name’     如:EXEC sp_help    ‘PartStock’
6.断定某一表PartStock中字段PartVelocity是或不是存在
if     exists     (select     *     from     syscolumns     where    
id=object_id(‘PartStock’)     and     name=’PartVelocity’)  
print     ‘PartVelocity exists’
else print ‘PartVelocity not exists’
另法:
判断表的存在性:
    select count(*) from sysobjects where type=’U’ and
name=’你的表名’
认清字段的存在性:
    select count(*) from syscolumns
    where id     = (select id from sysobjects where type=’U’ and
name=’你的表名’)
    and     name = ‘你要咬定的字段名’
  
一个小例子
–假设要处理的表名为: tb
–判断要添加列的表中是还是不是有主键
if exists(select 1 from sysobjects where parent_obj=object_id(‘tb’)
and xtype=’PK’)
begin
print ‘表中早已有主键,列只好做为普通列添加’
–添加int类型的列,默许值为0
alter table tb add 列名 int default 0  
end
else
begin
print ‘表中无主键,添加主键列’
–添加int类型的列,默许值为0
alter table tb add 列名 int primary key default 0  
end

2.删减字段
ALTER TABLE Table_Name DROP COLUMN Column_Name

7.随机读取若干条记下
      Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
      Sql server:select top n * from 表名 order by newid()
      mysql select * From 表名 Order By rand() Limit n
8.验证:日程安顿提前五分钟提示
      SQL: select * from 日程布置 where
datediff(minute,f伊始时间,getdate())>5

3.改动字段类型
ALTER TABLE Table_Name ALTER COLUMN Column_Name New_Data_Type

9.前10条记录
      select top 10 * form table1 where 范围

4.sp_rename 改名
EXEC sp_rename ‘[dbo].[Table_1].[filedName1]’,
‘filedName2’, ‘COLUMN’ 
更改当前数据库中用户创设对象(如表、列或用户定义数据类型)的称谓。
语法
sp_rename [ @objname = ] ‘object_name’ ,[ @newname = ] ‘new_name’,分类音讯; [ , [ @objtype
=] ‘object_type’ ]
如:EXEC sp_rename  ‘newname’,’PartStock’

10.囊括所有在 TableA 中但不在 TableB和TableC
中的行并消除所有重复行而派生出一个结出表
      (select a from tableA ) except (select a from tableB) except
(select a from tableC)

5.sp_help 凸显表的一部分为主气象
sp_help ‘object_name’    
如:EXEC sp_help ‘PartStock’

11.证实:随机取出10条数据
      select top 10 * from tablename order by newid()

6.断定某一表PartStock中字段PartVelocity是或不是存在
if exists (select * from syscolumns where id = object_id(‘PartStock’) and name=’PartVelocity’)  
    print ‘PartVelocity exists’
else
    print ‘PartVelocity not
exists’
另法:
判断表的存在性:
select

12.列出数据库里有着的表名
      select name from sysobjects where type=U
13.列出表里的具有的字段名
      select name from syscolumns where id=object_id(TableName)
14.表达:列示type、vender、pcs字段,以type字段排列,case可以一本万利地贯彻多重拔取,类似select
中的case。
      select type,sum(case vender when A then pcs else 0 end),sum(case
vender when C then pcs else 0 end),sum(case vender when B then pcs else
0 end) FROM tablename group by type
15.认证:开头化表table1
      TRUNCATE TABLE table1
16.证实:多少个高级查询运算词
  A: UNION 运算符
  UNION 运算符通过整合其余多少个结实表(例如 TABLE1 和
TABLE2)并消去表中其它重复行而派生出一个结出表。当 ALL 随 UNION
一起使用时(即 UNION
ALL),不排除重复行。三种情景下,派生表的每一行不是发源 TABLE1 就是发源
TABLE2。

    count(*)

  B: EXCEPT 运算符
  EXCEPT 运算符通过包含富有在 TABLE1 中但不在 TABLE2
中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起利用时
(EXCEPT ALL),不拔除重复行。

from sysobjects

  C: INTERSECT 运算符
  INTERSECT 运算符通过只包涵 TABLE1 和 TABLE2
中都局地行并消除所有重复行而派生出一个结出表。当 ALL 随 INTERSECT
一起行使时 (INTERSECT ALL),不免除重复行。
  注:使用运算词的多少个查询结果行必须是同样的。

where type=’U’
and name=’你的表名’
判断字段的存在性:
select

17.申明:在线视图查询(表名1:a )
      select * from (SELECT a,b,c FROM a) T where t.a > 1;

    count(*)

18.表明:between的用法,between限制查询数据范围时包罗了边界值,not
between不包罗
      select * from table1 where time between time1 and time2
      select a,b,c, from table1 where a not between 数值1 and 数值2

from syscolumns
where id = (select id from sysobjects where type=’U’
and name=’你的表名’)
and name = ‘你要判断的字段名’
一个小例子
–即使要处理的表名为:
tb
–判断要添加列的表中是还是不是有主键
if exists(select 1 from sysobjects where parent_obj=object_id(‘tb’) and xtype=’PK’)
begin
    print ‘表中早就有主键,列只可以做为普通列添加’
    –添加int类型的列,默许值为0
    alter table tb add 列名 int default 0  
end
else
begin
    print ‘表中无主键,添加主键列’
    –添加int类型的列,默许值为0
    alter table tb add 列名 int primary key default 0  
end

19.证实:in 的运用方法
      select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

7.随机读取若干条记下
Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
Sql server:select top n * from 表名 order by newid()
mysql select * From 表名 Order By rand() Limit n

20.证实:两张关联表,删除主表中早已在副表中从不的新闻
      delete from table1 where not exists ( select * from table2 where
table1.field1=table2.field1 )
21. 注脚:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
  法一:select * into b from a where 1<>1
  法二:select top 0 * into b from a

8.认证:日程布署提前五分钟提示
SQLselect * from 日程安插 where datediff(minute,f起头时间,getdate())>5

22.讲明:拷贝表(拷贝数据,源表名:a 目的表名:b) (Access可用)
      insert into b(a, b, c) select d,e,f from b;

9.前10条记录
select top 10 * form. table1 where 范围

23.认证:跨数据库之间表的正片(具体数量应用相对路径) (Access可用)
      insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where
条件
  例子:..from b in “&Server.MapPath(“.”)&”\data.mdb” &” where..
24.成立数据库
      CREATE DATABASE database-name

10.包罗拥有在 TableA 中但不在
TableB和TableC 中的行并消除所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)

25.验证:删除数据库
      drop database dbname
26.说明:备份sql server
  — 创立 备份数据的 device
      USE master
      EXEC sp_addumpdevice disk, testBack,
c:\mssql7backup\MyNwind_1.dat

11.证实:随机取出10条数据
select top 10 * from tablename order by newid()

  — 开始 备份
      BACKUP DATABASE pubs TO testBack

12.列出数据库里装有的表名
select name from sysobjects where type=U

27.声明:制造新表
      create table tabname(col1 type1 [not null] [primary key],col2
type2 [not null],..)
  根据已部分表创立新表:
      A:create table tab_new like tab_old (使用旧表创立新表)
      B:create table tab_new as select col1,col2… from tab_old
definition only

13.列出表里的兼具的字段名
select name from syscolumns where id=object_id(TableName)

28.说明:
  删除新表:drop table tabname

14.说明:列示type、vender、pcs字段,以type字段排列,case可以方便地完成多重选取,类似select中的case
select
    type,
    sum(case vender
            when A then pcs
            else 0
        end),
    sum(case vender
            when C then pcs
            else 0

29.说明:
  伸张一个列:Alter table tabname add column col type
  注:列伸张后将不可能去除。DB2中列加上后数据类型也无法改变,唯一能更改的是充实varchar类型的长短。

        end),
    sum(case vender
            when B then pcs
            else 0

30.说明:
  添加主键:Alter table tabname add primary key(col)
  说明:
  删除主键:Alter table tabname drop primary key(col)

        end)
FROM tablename
group by type

31.说明:
  创设索引:create [unique] index idxname on tabname(col….)
  删除索引:drop index idxname
  注:索引是不行变更的,想更改必须删除重新建。

15.认证:开头化表table1
TRUNCATE TABLE table1

32.说明:
  成立视图:create view viewname as select statement
  删除视图:drop view viewname

16.表明:多少个高级查询运算词
A:UNION 运算符
UNION
运算符通过结合其余八个结果表(例如TABLE1 和
TABLE2)并消去表中此外重复行而派生出一个结出表。
ALLUNION 一起利用时(即 UNION ALL),不免除重复行。几种处境下,派生表的每一行不是发源
TABLE1 就
是来自 TABLE2。

33.注脚:多少个大约的骨干的sql语句
  选择:select * from table1 where 范围
  插入:insert into table1(field1,field2) values(value1,value2)
  删除:delete from table1 where 范围
  更新:update table1 set field1=value1 where 范围
  查找:select * from table1 where field1 like ’%value1%’
—like的语法很精细,查资料!
  排序:select * from table1 order by field1,field2 [desc]
  总数:select count * as totalcount from table1
  求和:select sum(field1) as sumvalue from table1
  平均:select avg(field1) as avgvalue from table1
  最大:select max(field1) as maxvalue from table1
  最小:select min(field1) as minvalue from table1

B:EXCEPT 运算符
EXCEPT 运算符通过包蕴所有在
TABLE1 中但不在 TABLE2中的行并消除所有重复行而派生出一个结实表。当 ALL
EXCEPT 一起使用时 (EXCEPT ALL),不清除重复行。

34.数据库备份:

CINTERSECT 运算符
INTERSECT 运算符通过只囊括
TABLE1 和 TABLE2中都有的行并消除所有重复行而派生出一个结出表。当 ALL
INTERSECT 一起利用时 (INTERSECT ALL),不清除重复行。
注:使用运算词的多少个查询结果行必须是相同的。

USE DB_ndmspmasterdb;
GO

17.验证:在线视图查询(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a > 1;

declare @path varchar(500)
 set @path=’D:\NDM_Data\DB_NDMSpMasterdb’+CONVERT(VARCHAR,
GETDATE(), 105)+’.Bak’
select @path

18.说明:between的用法,between限定查询数据范围时包涵了边界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2

BACKUP DATABASE DB_ndmspmasterdb

19.说明:in 的采纳格局
select * from table1 where a [not] in (‘值1′,’值2′,’值4′,’值6’)

TO DISK = @path
   WITH FORMAT,
      MEDIANAME = ‘Z_SQLServerBackups’,
      NAME = ‘Full Backup of DB_ndmspmasterdb’;
GO

20.注明:两张关联表,删除主表中已经在副表中尚无的新闻
delete from table1
where not exists (select * from table2 where table1.field1=table2.field1)

 

21.认证:复制表(只复制结构,源表名:a
新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 *
into b from a

 

22.表明:拷贝表(拷贝数据,源表名:a
目的表名:b) (Access可用)
insert into b(a, b, c)
select d,e,f from b;

23.验证:跨数据库之间表的正片(具体多少选拔相对路径)
(Access可用)
insert into b(a, b, c)
select d,e,f from b in ‘具体数据库’ where 条件
例子:..from b in “&Server.MapPath(“.”)&”\data.mdb” &” where..

24.创办数据库
CREATE DATABASE databasename

25.认证:删除数据库
drop database dbname

26.说明:备份sql server
–创建
备份数据的 device
USE master
EXEC sp_addumpdevice disk,
testBack, c:\mssql7backup\MyNwind_1.dat
–开始 备份
BACKUP DATABASE pubs TO testBack

27.验证:制造新表
create table tabname
(
    col1 type1 [not null] [primary key],
    col2 type2 [not null],
    ..
)
基于已有些表创立新表:
A:create table tab_new like tab_old (使用旧表创立新表)
B:create table tab_new as select col1,col2… from tab_old definition only

28.说明:
去除新表:
drop table tabname

29.说明:
追加一个列:
Alter table tabname add column type
注:列增添后将不能去除。DB2中列加上后数据类型也不能够改变,唯一能更改的是伸张varchar项目标长度。

30.说明:
丰盛主键:
Alter table tabname add primary key(col)
除去主键:
Alter table tabname drop primary key(col)

31.说明:
创制索引:
create [unique] index idxname on tabname(col….)
剔除索引:
drop index idxname
注:索引是不足更改的,想改变必须删除重新建。

32.说明:
成立视图:
create view viewname
as
    具体的SQL语句
去除视图:
drop view viewname

根源为知笔记(Wiz)