一些常用的sql語句,收藏著不記得就翻開看看

2021-06-08 07:32:50 字數 4741 閱讀 1029

用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

endelse

begin

print '表中無主鍵,新增主鍵列'

--新增int型別的列,預設值為0

alter table tb add 列名 int primary key default 0

end7.隨機讀取若干條記錄

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),不消除重複行。

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

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;

25.說明:刪除資料庫

drop database dbname

26.說明:備份sql

server

--- 建立 備份資料的 device

use master

exec sp_addumpdevice disk, testback, c:mssql7backupmynwind_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

記一些MySQL比較常用的SQL語句

下面的表名填需要重置的表 使用truncate truncate 表名 使用修改表的方法 alter table 表名 auto increment 1 暫時失效 set foreign key checks 0 外來鍵有效 set foreign key checks 1 資料庫當前只有乙個roo...

一些常用的 sql語句總結

查詢賣最好的商品名稱 select goods name from indent detail group by goods id order by sum goods num limit 1 查詢張三購買過的商品名稱 select goods name from user join indent ...

MySQL的一些常用SQL語句

備份表 create table 新錶 select from 舊表 建立臨時表 create temporary table tablename id varchar 100 name varchar 100 age varchar 100 刪除臨時表 drop temporary table i...