zoukankan      html  css  js  c++  java
  • MSSQL的基础应用

      1 基础
      2 创建数据库
      3 /****** 创建数据库******/
      4 CREATE DATABASE [PlateFormsExpress] ON  PRIMARY 
      5 (
      6   NAME = N'PlateFormsExpress', /*数据名称*/
      7   FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\PlateFormsExpress.mdf' ,  /*文件路经*/
      8   SIZE = 2304KB , /*大小*/
      9   MAXSIZE = UNLIMITED,  /*最大 UNLIMITED 是无限*/
     10   FILEGROWTH = 1024KB )
     11  LOG ON  /*日志*/
     12 ( NAME = N'PlateFormsExpress_log', 
     13  FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\PlateFormsExpress_log.LDF' ,
     14  SIZE = 576KB , 
     15  MAXSIZE = 2048GB ,
     16  FILEGROWTH = 10%)
     17 GO
     18 删除数据库
     19 /****** 删除数据库******/
     20 IF  EXISTS (SELECT name FROM sys.databases WHERE name = N'PlateFormsExpress')
     21 DROP DATABASE [PlateFormsExpress]
     22 GO
     23 
     24 分离数据库
     25 /*********分离数据库**********/
     26 sp_detach_db
     27 /**附加数据库**/
     28 sp_attach_db --加名称,然后完整的路经
     29 修改数据库
     30 
     31 /*********修改数据库**********/
     32 sp_renamedb '旧名称','新名称'
     33 
     34 备份
     35 /******* 备份数据库*******/
     36 
     37 USE master
     38 GO
     39 EXEC sp_addumpdevice 'DISK','TESTBACK','C:\MSSQLBACKUP\MYDATABASE.DAT'
     40 --开始备份
     41 Backup database PlateFormsExpress to TESTBACK
     42  
     43 创建表
     44 /*********创建表**********/
     45 CREATE TABLE 表名(列名 数据类型 [NOT NULL] [Primary key],列名 数据类型  [NOT NULL] Default '')
     46 
     47 --根据已有的表创建新表
     48 CREATE TABLE 新表名 like 旧表名
     49 
     50 CREATE TABLE 新表名 as select 列名 from 旧表 definition only
     51 删除表
     52 /*********删除表**********/
     53 drop table tableName
     54 
     55 增加一列
     56 /*********增加一个列**********/
     57  ALTER TABLE [表名] add column [] [字段类型]
     58 
     59 --注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,
     60 --唯一能改变的是增加varchar类型的长度
     61 添加主键
     62 /*********添加主键**********/
     63 
     64  Alter table [表名] add primary key([列名])
     65  --删除主键
     66  Alter table [表名] drop primary key([列名])
     67 创建索引
     68 /*********创建索引**********/
     69 
     70 create  index 索引名 
     71 on [表名([列名])
     72 --删除索引:
     73 drop index 索引名称
     74 
     75 eg:
     76 CREATE INDEX SelectIndex
     77 on Userinfo(UserCode)
     78 创建视图
     79 /*********创建视图**********/
     80 
     81 create view [视图名] as 
     82 select [表名]
     83 --删除视图名
     84 drop view [视图名]
     85 聚合函数应用
     86 --
     87 select COUNT as 总数 from 表名
     88 --求和:
     89 select SUM([字段]) as 总和 from 表名
     90 --平均
     91 select AVG([字段]) as 平均 from 表名
     92 --最大
     93 select MAX([字段]) as 最大值 from 表名
     94 --最小
     95 select min([字段])as 最小 from 表名
     96 
     97 简单语句:
     98 --选择:
     99 select * from Customer where [条件][范围]
    100 --插入
    101 insert into Customer(Id,Name,Address,Tel) values('','','','')
    102 insert into Customer (Id,Name,Address,Tel) select userid,username,useraddress,usertel from userinfo
    103 --删除
    104 delete from table1 where 条件
    105 --更新
    106 update [表名] set 列名=value where 条件
    107 --模糊查找
    108 select * from [表名] where 列名 like '%[值]%'
    109 --排序
    110 select * from [表名] order by 字段名 desc
    111 高级查询
    112  A: UNION 运算符
    113   UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALLUNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
    114  B: EXCEPT 运算符
    115   EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALLEXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
    116  C: INTERSECT 运算符
    117   INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALLINTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
    118 注:使用运算词的几个查询结果行必须是一致的
    119  D、left (outer) join120   左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
    121   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
    122  E:right (outer) join:
    123   右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
    124  F:full/cross (outer) join125   全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
    126 分组 Group by
    127 注:Group by 一般与聚合函数使用
    128 select COUNT(UserCode) from userinfo group by username
    129 go
    130  
     1 --1说明:复制表(只复制结构,源表名:UserInfo 新表名:f_testa) (Access可用)
     2   --A
     3    select * into F_testa from  UserInfo where 1<>1 --(仅Sql Server使用)
     4    select * from f_testa
     5    go
     6    --B
     7    select top 0 * into F_testb from UserInfo
     8 --2拷贝表 (拷贝数据,源表名:UserInfo 目标表名:f_testa) (Access可用)
     9    insert into f_testa (usercode,username,userage,PassWordInfo) select
    10    usercode,username,userage,'Hello' from UserInfo
    11 --3 说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
    12   insert into f_testa(usercode,username,userage,PassWordInfo)
    13   select id,name,AgentId,Password from store..Users where store..Users.Id='222'
    14   
    15 --4子查询
    16    select usercode,username,userage from UserInfo where UserCode in 
    17    (select UserCode from f_testa)
    18 --多表查询
    19 select a.ordercode,a.OrderName,a.orderdata,b.CommonName,b.CommonCount,b.CommonMoney 
    20 from F_OrderCommon as a,F_OrderDetail as b where a.OrderCode=b.Ordercode
    21 
    22 --5 外连接查询
    23 select a.ordercode,a.OrderName,a.orderdata,b.CommonName,b.CommonCount,b.CommonMoney 
    24 from F_OrderCommon as a inner join F_OrderDetail as b  on a.Ordercode=b.Ordercode
    25 
    26 select a.ordercode,a.OrderName,a.orderdata,b.CommonName,b.CommonCount,b.CommonMoney 
    27 from F_OrderCommon as a left  join F_OrderDetail as b  on a.Ordercode=b.Ordercode
    28 
    29 --6 between /not between
    30  select * from F_OrderCommon where builddate time1 and time2  --在time1 time2之间
    31  select * from  F_OrderCommon where commoncode not between 111 and 333
    32 --7 in 使用方法 
    33 select * from  UserInfo where UserCode in ('22','11','00')
    34 select * from UserInfo where UserCode not in ('22','11')
    35 select top 10 * from UserInfo where UserCode not in(select top 30 UserCode from UserInfo)
    36 --8两张关联表,删除主键已在副表中没有的信息
    37 delete from F_OrderCommon where not exists(select * from F_OrderDetail where 
    38 F_OrderCommon.ordercode=F_OrderDetail.Ordercode)
    39 --9随机取10条数据
    40 select top 10 * from UserInfo order by NEWID()
    41 
    42 --10随机选择记录
    43 select NEWID()
    44 
    45 --11删除重复的记录
    46 delete from UserInfo where UserCode not in (select MAX(UserCode) from UserInfo group by UserName)
    47 
    48 select distinct *  into usercodew from f_testa
    49 delete from f_testa
    50 insert into f_testa select * from usercodew
    51 --注: 这种操作不能有大量数据操作。
    52 --12列出数据库里面所有的表名
    53  select name from sysobjects where type='u'  --U代表用户
    54 --13列出表里面所有的列名
    55 select name from syscolumns where id=OBJECT_ID('UserInfo')
    56 select * from syscolumns

    备注:部分SQL语句代码来自网络

  • 相关阅读:
    Linq To Object
    笔试算法
    给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线
    vue3.0中setup的参数
    力扣算法题
    给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组
    vif 与 vfor优先级
    给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 /返回这三个数的和。
    /给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[
    vue3+canvas随机生成4位验证码
  • 原文地址:https://www.cnblogs.com/w2011/p/2812842.html
Copyright © 2011-2022 走看看