sql用法

创建数据库

创建之前判断该数据库是否存在

if exists (select * from sysdatabases where name=databasename) drop database databasename

go

create database database-name

删除数据库

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 rs=conn.excute(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 outer 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列名

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容