利用SQL語句進行添加、刪除、修改字段,表與字段的基本操作,數據庫備份等

博客來源:點擊打開鏈接

用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

  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

  9.前10條記錄

  select top 10 * form table1 where 範圍

  10.包括所有在 TableA 中但不在 TableB和TableC 中的行並消除所有重複行而派生出一個結果表

  (select a from tableA ) except (select a from tableB) except (select a from tableC)

  11.說明:隨機取出10條數據

  select top 10 * from tablename order by newid()

  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。

  B: EXCEPT 運算符

  EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重複行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重複行。

  C: INTERSECT 運算符

  INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重複行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重複行。

  注:使用運算詞的幾個查詢結果行必須是一致的。

  17.說明:在線視圖查詢(表名1:a )

  select * from (SELECT a,b,c FROM a) T where t.a > 1;

  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

  19.說明:in 的使用方法

  select * from table1 where a [not] in (‘值1','值2','值4','值6')

  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 database-name

  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 col 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 select statement

  刪除視圖:drop view viewname

  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

    34.修改數據表中的字段名

    exec sp_rename '表名.原字段名','新字段名','column'

    35.修改數據庫表名

    EXEC sp_rename '原表名','新表名'

 

    數據庫備份:

  USE DB_ndmspmasterdb;

  GO

  declare @path varchar(500)

  set @path='D:\NDM_Data\DB_NDMSpMasterdb'+CONVERT(VARCHAR, GETDATE(), 105)+'.Bak'

  select @path

  BACKUP DATABASE DB_ndmspmasterdb

  TO DISK = @path

  WITH FORMAT,

  MEDIANAME = 'Z_SQLServerBackups',

  NAME = 'Full Backup of DB_ndmspmasterdb';

  GO

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章