• 20151020sql2


    SQL对数据增删改

    1、增加

    添加所有的字段 ID自动生成

    insert into StuInfor Values('ruanmou1','20','中国','男','一班','1999-1-1','222222')

    按照特定的字段 ,其它没有的字段以NULL代替

    insert into StuInfor (StuName,Age,Sex,QQ) Values('ruanmou2','20','男','33333')

    2、修改

    update StuInfor set StuName='小张',Age=28 where StuId=12

    3、删除

    delete StuInfor where StuId=12

    做删除修改的时候要先备份

    SQL分页

    分页语句

    查记录数行号 不是通过ID

    获取行号

    select StuId,row_number() over(order by StuId) as row from StuInfor

    分页

    select * from (select StuId,row_number() over(order by StuId) as row from StuInfor) where row between 1 and 5

    SQL修改表字段

    alter table Category

    add

    Age int null

    3、删除表

    drop table Users

    SQL年月日处理

    获取日期中的年份

    select year(Birthday) from StuInfor

    月份

    select month(Birthday) from StuInfor

    select daty(Birthday) from StuInfor

    获取当前年份 可以参与计算

    year(getdate())

    当前月份

    moth(getdate())

    当前日期

    day(getdate())

    日期计算

    dateadd加

    select dateadd(yy,100,getdate());

    select dateadd(mm,100,getdate());

    select dateadd(dd,100,getdate());

    datadiff间隔

    select datediff(yy,getdate(),'2108/12/31')

    select datediff(mm,getdate(),'2016/01/01')

    select datediff(dd,getdate(),'2016/01/01')

    SQL isnull

    判断为NULL是给定一个默认值

    select StuName,Age,Sex,ISNULL(country,'') from StuInfor

     SQL case

    判断

    select StuName, case

    when(EnglishScore < 50) then '差'

    when(EnglishScore between 50 and 70) then '普通'

    when(EnglishScore between 70 and 100) then '优秀'

    end as A

    from Score

    表-字段约束

    CHCK约束(保持数据的完整性)

    年龄不能大于200岁

    字段-约束-添加-表达式:Age>0 and Age<=100

    表-字段索引

    聚集索引:拼音查字法  比如有顺序的 ID 年龄 时间

    只有一个,默认的聚集索引 是主键 不需要重新创建

    非聚集索引:偏旁查字法 国家 (查询量不是特别大的时候不需要) 

     查询的比较多字段 例如产品的名称、分类

    创建:字段-索引/键-添加-列-StuName

    在表-可以查看 索引

    索引会产生碎片文件,要定期的整理碎片-重新组织-重新生成

    访问量大的时候,一个星期需要定期整理。

    表-视图

    作用:联合查询

    表-视图-选择三个表数据-找到其中的ID

    当作表来用。

    select * from View_1

    缺点:表里的数据如果做了修改,会造成数据不同步,还需要进行创建一次

    表-存储过程

    作用:1、安全性高,sql注入

    select * from StuInfor where StuName='' and Country=''

    如果传值 张三'--delete StuInfor 会把表删除了 SQL语句--表示注释

    select * from StuInfor where StuName='张三'--delete StuInfor ' and Country=''

    通过@传参的方式

    创建存储过程

    create proc procStuInfor

    (

    @StuName nvarchar(50),

    @Country nvarchar(50)

    )

    as

    select * from StuInfor where StuName=@StuName and Country=@Country

    可编程性 -存储过程

    执行存储过程

    exec procStuInfor ‘张三’,'中国'

    不能在SQL界面传sql注入的参数否则也会删除

    2、C#写sql语句是需要编译,写在存储过程是不需要编译,效率高一些。

    查询比较多,逻辑比较复杂的SQL语句存储在存储过程中。

    表--储发器

    在执行sql语句的时候,同时也能执行另外一条语句

    删除的时候,查询删除的语句

    创建

    Create trigger trigStuInforDelete

    ON StuInfor

    after delete /*有三种insert delete update*/

    AS

    begin

      select * from deleted/*查询删除的语句*/

    end

    数据库备份

    1、任务-备份-选项-覆盖(一个) 追加(两个)-确定 bak文件

    2、mdf文件 log文件 删除文件就没有了 所以应该-任务-分离

    数据库还原

    1、bak文件还原 创建同名的数据库-任务-还原-设备-文件-覆盖-确定

    2、mdf文件还原 数据库-附加-mdf文件-确定

    sqlserver高版本属性-选项-兼容级别-sqlserver2005

     数据导入/导出

    MYDB-导出到TESTDB

    导出-任务-导出- MYDB-TestDB-表-完成

    StuInfor表的主键会消失,所以要重新添加

    数据库自动备份 -作业

    自动备份

    新建作业-backupDB-确定

    步骤-新建step1 -MYDB-命令

    backup database mydb

    to disk='c: est.bak'

    确定-计划-添加计划-每周一 时间0:00:00

    确定

    自动删除

    删除某个条件

    SQLServer Profiler 检控网站卡的时候sql语句的执行情况

    MSSQL -SQLSERVER

  • 相关阅读:
    当最好的朋友背叛你的时候
    那就这样沉沦??
    Struts初步知识JSP实例学习教程
    结合struts和hibernate谈J2EE架构的数据表示
    创建 Controller
    对话:关于架构、设计与需求
    Struts 应用转移到 Struts 2 一
    Struts 应用转移到 Struts 2 二
    出现空白网页可能的原因
    jsp常用功能模块JSP实例学习教程
  • 原文地址:https://www.cnblogs.com/16lily521/p/4925548.html
Copyright © 2020-2023  润新知