zoukankan      html  css  js  c++  java
  • 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
    column col type

      注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

    添加主键

      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语句

      选择: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%’ (所有包含‘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[separator]

    几个高级查询运算词

      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
    sys.databases where name = '数据库名')

      drop database [数据库名]

    判断表是否存在

      if not exists (select * from
    sysobjects where [name] = '表名' and xtype='U')

      begin

      --这里创建表

      end

    判断存储过程是否存在

      if exists (select * from
    sysobjects where id = object_id(N'[存储过程名]') and OBJECTPROPERTY(id,
    N'IsProcedure') = 1)

      drop procedure [存储过程名]

    判断临时表是否存在

      if object_id('tempdb..#临时表名')
    is not null

      drop table #临时表名

    判断视图是否存在

      --SQL Server 2000

      IF EXISTS (SELECT * FROM
    sysviews WHERE object_id = '[dbo].[视图名]'

      --SQL Server 2005

      IF EXISTS (SELECT * FROM
    sys.views WHERE object_id = '[dbo].[视图名]'

    判断函数是否存在

      if exists (select * from
    dbo.sysobjects where id = object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF',
    N'TF'))

      drop function [dbo].[函数名]

    获取用户创建的对象信息

      SELECT [name],[id],crdate
    FROM sysobjects where xtype='U'

      /*

      xtype 的表示参数类型,通常包括如下这些 C =
    CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数 IF = 内嵌表函数 P =
    存储过程 PK = PRIMARY KEY 约束(类型是 K) RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器 U = 用户表
    UQ = UNIQUE 约束(类型是 K) V = 视图 X = 扩展存储过程 */

    判断列是否存在

      if exists(select * from
    syscolumns where id=object_id('表名') and name='列名')

      alter table 表名 drop column 列名

    判断列是否自增列

      if
    columnproperty(object_id('table'),'col','IsIdentity')=1

      print '自增列'

      else

      print '不是自增列'

      SELECT * FROM sys.columns
    WHERE object_id=OBJECT_ID('表名')

      AND is_identity=1

    判断表中是否存在索引

      if exists(select * from
    sysindexes where id=object_id('表名') and name='索引名')

      print '存在'

      else

      print '不存在

    查看数据库中对象

      SELECT * FROM sys.sysobjects
    WHERE name='对象名'

  • 相关阅读:
    Java.io.outputstream.PrintStream:打印流
    Codeforces 732F. Tourist Reform (Tarjan缩点)
    退役了
    POJ 3281 Dining (最大流)
    Light oj 1233
    Light oj 1125
    HDU 5521 Meeting (最短路)
    Light oj 1095
    Light oj 1044
    HDU 3549 Flow Problem (dinic模版 && isap模版)
  • 原文地址:https://www.cnblogs.com/Gieag/p/2286121.html
Copyright © 2011-2022 走看看