zoukankan      html  css  js  c++  java
  • 数据库(基础)

    1、创建数据库

    Create database database_name;

    2、删除数据库

    Drop database db_name;

    3、sql server 备份

    backup database db_name to disk=';d:dbn.aa';//指定需要备份数据库的路径和文件名;

    4、sql server恢复

    use master

    restore database dbname from disk=';d:dbn.aa' with replace;

    ---kill掉数据库的某个连接

    CREATE PROC KillSpid(@DBName varchar)
    AS
      BEGIN
       DECLARE @SQL varchar
       DECLARE @SPID int
       SET @SQL='DECLARE CurrentID CURSOR FOR
       SELECT spid FROM sysprocesses WHERE dbid=db_id('''+@DBName+''') '
       FETCH NEXT FROM CurrentID INTO @SPID
       WHILE @@FETCH_STATUS <>-1
        BEGIN
             exec('KILL '+@SPID)
        FETCH NEXT FROM CurrentID INTO @SPID
        END
        CLOSE CurrentID
        DEALLOCATE CurrentID
    END

    5、创建新表

    Create table tab_new like tab_old(用旧表创建新表)

    Create table tab_new as select col1,col2...from tab_old definition only;

    6、删除新表

    Drop table table_name;

    7、新增列

    Alter table tab_name add column_name varchar(30);

    8、修改列类型

    Alter table tab_name alter old_column_name new_column_name varchar(30);

    9、修改列名称

    exec sp_rename 'tablename.column1','column2'//把1列名修改为列名2;

    10、删除列

    Alter table table_name drop column_name;

    11、添加主键

    Alter table table_name add primary key(id);//id添加为主键;

    12、删除主键

    Alter table table_name drop primary key(id)

    13、创建索引

    Alter table table_name add index index_name (column_list) ||

    Create [unique] index index_name on table_name(column_list)

    14、删除索引

    Drop index index_name;

    15、创建视图

    Create view viewname as select statement(条件)

    例如:Create view view_name as select id=1 from user;

    16、删除视图

    Drop view view_name;

    17。查询语句:

    >>select * from table where range(范围);

    >>insert into table1(field1,field2)values(value1,value2);插入值

    >>delete from table1 where range(范围);删除

    >>update table1 set field1=value1 where range(范围);更新值

    >>select * from table1 where field like '%value1%';//Like主要用于模糊查询,查询field字段中包含value1的内容;

    select * from table where field like 'li*'//查询表中field字段中以li开头的内容;

    select * from table where field like '%[0-9]%'查询表中field中包含有数字的内容;

    select * from table where field like '%[!0-9]%'查询表中field中不包含有数字的内容;

    select * from table where field like '%[a-z]%'查询表中field中包含有字母的内容;

    >>select * from table1 order by field1 desc;//表中的field字段从大到小排序;

    select * from table1 order by field1 asc;//表中的field字段从小到大排序;

    >>select count as totalcount from table1//总数;

    >>select sum(field1) as sumvalue from table//求和;

    >>select avg(field1)as avgvalue from table//求平均数

    >>select max(field1) as maxvalue from table//求最大值

    >>select min(field1) as minvalue from table//求最小值

    18、联合查询

    >>select column_name(s) from table_name1 union select column_name(s) from table_name2;//union 查询结果是去重的;

    >>select column_name(s) from table_name1 union all select column_name(s) from table_name2;//union all 查询全部的结果,未去除重复;

    19、except 从左查询中返回右查询没有找到的所有非重复值;返回两个结果集的差

    >>select * from table1 except select * from table2;

    20、intersect返回两个结果集的交集

    >>select * from table1 intersect select * from table2;

    21、使用外连接

    >>left outer join(左外联接,左连接)

    select * from table1 left join table2 on table1.id=table.id;

    //结果集包括left join中指定的左表的所有行,而不仅仅是联接所匹配的行,如果左表的某行在右边没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null);

    select A.name,A.age,B.name,B.score from table_A A left join table_B B on A.name=B.name;//(table_A/table_B是表名,A,B是别名);

    select A.name,A.age,B.name,B.score from table_A A left outer join table_B B on A.name=B.name;

    >>right outer join(右外联接)//返回右表中的所有行,如果右表的某行在左表中没有匹配行,则将为左表返回空值;

    select A.name,A.age,B.name,B.score from table_A A right join  table_B B on A.name=B.name;

    select A.name,A.age,B.name,B.score from table_A A left outer join table_B B on A.name=B.name;

    >>full outer join(完整外联接)

    select A.name,A.age,B.name,B.score from table_A A full join table_B B on A.name=B.name;

    select A.name,A.age,B.name,B.score from table_A A full outer join table_B B on A.name=B.name;

    >>Cross join 交叉联接

    select A.name,A.age,B.name,B.score from table_A A cross join table_B B;

    >>自联接

    select A.name,A.age,B.name,B.score from table_A A,table_B,B where A.name=B.name+1

    22、inner join 内联接

    select A.name,A.age,B.name,B.score from table_A A inner join table_B B on A.name=B.name;

    select A.name,A.age,B.name,B.score from table_A A join table_B B on A.name=B.name;

    存储过程:

    杀掉连接的用户

    CREATE PROCEDURE dbo.killrubbishprocess AS
    DECLARE @spidnum int
    DECLARE rubbish_CURSOR CURSOR FOR
    select spid
    from master.dbo.sysprocesses
    where spid > 10 and spid <= 32767 and status='sleeping' and loginame='sa'
    order by spid

    OPEN rubbish_CURSOR

    FETCH NEXT FROM rubbish_CURSOR
    INTO @spidnum
    select s_kill = "kill " + cast(@spidnum as char(5))
    WHILE @@FETCH_STATUS=0
    BEGIN
    EXEC (s_kill)
    FETCH NEXT FROM rubbish_CURSOR
    INTO @spidnum

    END

    CLOSE rubbish_CURSOR
    DEALLOCATE rubbish_CURSOR
    GO 

  • 相关阅读:
    Jeninks远程部署war包
    DOCKER中centos7的中文支持
    正则四
    正则三
    正则二
    正则一
    SHELL小练习
    SHELL用法九(awk练习)
    SHELL用法八(Grep语句)
    SHELL用法七(Sed语句)
  • 原文地址:https://www.cnblogs.com/collect/p/4126723.html
Copyright © 2011-2022 走看看