前言:SQL数据库的第二节课,继续讲解基本的语句及用法。

内容

  1.insert插入语句

    insert into Book(bookName,bookPrice,bookAuthor) values('C#基础',35,'li')  //向Book表中插入相关信息

  2.update修改语句

    update Book set bookPrice=30 where bookName='C#基础'  //修改Book表

  3.delete删除语句

    delete Book where bookName='C#基础'

  4.查找指定区域中的记录,分页

    select * from (select id,row_number() over(order by id desc) as row from[entry]) Entry where row between 1 and 5000

  5.给表添加一个字段:

    alter table Book add press nvarchar(20) null

  6.删除表

    drop table Book

  7.约束:一张表只能有一个PK,但可以有多个UNIQUE约束,PK约束定义主键不能为空,但UNIQUE可以为空值。check约束一个键值,实现域完整性。可以用SQL语句或者可视化的方法去实现。

  8.选择出生年月日:

    select year(getdate())  //获取当前的年

    select month(getdate())  //获取当前的月

    select day(getdate())  //获取当前的日

    select * from Employee where month(birthday)=8  //查询8月份过生日的员工的所有信息

    select * from Employee where year(birthday)=2008 and month(birthday)=8 and day(birthday)=12  //查询出生日为2008-8-12日的所有员工信息

    select dateadd(yy,100,getedate())  //当天加上100年的时间

    select datediff(mm,getdate(),'2108/12/31')  //当天距离2108/12/31还有多少年

  9.isnull表示判断是否为空:select title,content,isnull(categoryID,0) from news  //表示为null的categoryID用0显示出来

  10.case用法,用来做判断。

    (1)查找categoryID=13的state,并对state进行判断

    select state, case  

    when(state=1) then '待审'

    when(state=2) then '已审'

    end as pro_state

    from category where categoryID=13

    (2)查找出低级的多少个,中级的多少个,高级的多少个

    select Count(*) as [Count] from category

    group by

    case

    when categoryID<15 then '低级'

    when categoryID between 15 and 20 then '中级'

    else  '高级'

    end

    (3)查出category 中的CategoryID,name以及判断每个categoryID 的大小

    select CategoryID,name,

    case

    when categoryID<15 then '低级'

    when categoryID between 15 and 20 then '中级'

    else  '高级'

    end as categoryRange from category

  11.索引,主要用于性能的维护。

    (1)概念:表的存储由两部分组成,一部分用来存放数据页面,另一部分用来存放索引页面。索引是快速查找数据库中实际信息的一种 方法,具体分为:聚集索引(每个表只能有一个聚集索引,它对应的表按照其索引进行物理排序,相当于百科全书里的页码。默认的聚集索引即为主键)、非聚集索引(每个表可以有多个非聚集索引,相当于百科全书后面的关键字目录)。

    (2)建立索引可以通过右击->索引/键来生成。

    (3)建立索引时需要注意的:

    1)默认情况下,SQL Server会默认主键为聚集索引,这样会造成资源浪费。

    2)顺序问题

    3)索引的维护:数据库系统运行一段时间后,随着数据行的插入、删除和数据页的分裂,索引对系统的优化性能就会大大降低,这时我们需要对索引进行分析和重建。

  12.视图:一种虚拟表,其使用和表的使用类似,主要用于控制用户所要显示的数据(视图的本质就是联合查询)。老师不太喜欢用视图,修改表中的数据时需要同步视图中的数据,可能要手动修改,比较麻烦,直接在程序里写代码就行了。

  13.存储过程:

    (1)优点:在创建时进行编译,以后每次执行存储过程不需要再编译,而一般的SQL语句要每执行一次编译一次(所以一些复杂逻辑的SQL建议写在存储过程里面);存储过程重复使用,可以减少数据库开发人员的工作量(所以一些经常被调用的SQL建议写在存储过程里面);安全性高,可设定只有某些用户才具有指定存储过程的使用权。

    (2)基本语法:

    1)创建一个存储过程:

    create proc procCategory

    {

    @name nvarchar(200),

    @age int

    }

    as

    select * from Category where name=@name and age=@age

    2)查看结果:

    exec procCategory 'zoe',11

    3)更改存储过程:

    alter proc

    4)删除存储过程:

    drop proc

    5)控制流语句:    

    create proc procNewsInsert

    (

    @creatTime datetime

    )

    as

    if datediff(dd,@creatTime,getdate())>7  /*creatTime距离当天大于天*/

    begin;

    select * from News

    end;

    else

    begin;

    select top 3* from News

    end;

    执行:exec procNewsInsert '2009-05-10 11:36:43.810'

  14.触发器:是一种特殊的存储过程,它是在数据进行增、删、改的时候同时进行的操作,相当于一个事件。

  15.SQL备份及还原:(1)(bak文件)选中相应的数据库右键->任务->备份;(2)找到创建数据库时创建的两个文件:.mbf及_log.ldf文件,附加进去则可以。

  16.数据的导入导出功能:右键->任务->导出,数据导入到新表之后主键会丢失,需要自己手动设置。

  17.作业功能:自动执行一个事件,设定时间。只要数据库是开着的,作业就会定时去执行。

后记:两节课已经上完了,基本上可以了解如何使用了,但还想进一步学习,所以打算这周系统的学习一下。

ASP.NET动态网站制作(16)-- SQL数据库(2)的更多相关文章

  1. ASP.NET动态网站制作(3)--css(2)

    前言:css分为四次课讲完,第一节课内容见ASP.NET动态网站制作(2)--css(1),接下来的内容会涉及到定位.浮动.盒子模型(第二次课).css的具体应用(第三次课).css3(第四次课).今 ...

  2. ASP.NET动态网站制作(15)-- SQL数据库(1)

    前言:数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,用户可以对文件中的数据进行增.删.改.查.数据库有很多种类型,从简单的存储有各种数据的表格到能都进行海量数据存储的大型数据库 ...

  3. ASP.NET动态网站制作(1)--html

    前言:正式上课的第一课,讲的是前端部分的最基础内容:html. 前端:html,css,js 数据库:sql server 动态部分:.net,c#... IIS(Internet Informati ...

  4. ASP.NET动态网站制作(28)-- 三层框架(2)

    前言:三层框架的第二节课,继续上次课的内容. 内容: 1.三层框架的使用目的:可以将视图层和业务逻辑层及实体层分开,可以提高代码的扩展性,安全性,可以实现程序的低耦合性. 2.GetModel方法及G ...

  5. ASP.NET动态网站制作(26)-- Ajax

    前言:这节课讲解关于Ajax的相关内容. 内容: 1.当点击页面中的一个按钮提交数据或请求数据的时候,整个页面的信息都会提交(不管信息是否是提交或者请求的数据,页面中所有的数据都提交),这样耗用的时间 ...

  6. ASP.NET动态网站制作(24)-- ADO.NET(3)

    前言:ADO.NET的第三节课.今天主要讲SQL Helper. 内容: 1.DataReader和DataSet的区别: (1)DataReader是一行一行地读,且只能向前读:DataSet是一次 ...

  7. ASP.NET动态网站制作(22)-- ADO.NET(1)

    前言:这节课开始真正地学习WEB开发,ADO.NET就是一组允许.NET开发人员使用标准的.机构化的,甚至无连接的方式与数据交互的技术.所属的类库为:System.Data.dll. 内容: 1.AD ...

  8. ASP.NET动态网站制作(27)-- 三层框架(1)

    前言:今天主要介绍一下三层框架,给大家一个整体的概念.分层概念使得程序低耦合,更加健壮,扩展性更好. 内容: 1.三层: UI(表现层):主要是指与用户交互的界面.用于接收用户输入的数据和显示处理后用 ...

  9. ASP.NET动态网站制作(23)-- ADO.NET(2)

    前言:这节课老师请高级班的E老师过来代课,还是接着老师讲的内容继续深入,修改了上节课老师写的部分代码. 内容: 1.数据库本质就是一个软件,这个软件帮助我们把数据有序地存储起来,当我们需要数据的时候帮 ...

随机推荐

  1. [bug]The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

    写在前面 在模拟请求的时候,如果url为https的,会报这个错误.大概错误就是:基础连接已关闭:无法建立信任关系的SSL / TLS的安全通道. The underlying connection ...

  2. flask的session解读及flask_login登录过程研究

    #!/usr/bin/env python # -*- coding: utf-8 -*- from itsdangerous import URLSafeTimedSerializer from f ...

  3. maven自己主动编译,解决你每次代码改动须要又一次编译的繁琐

    maven结构的项目,我们在每次改动代码后都会须要手动编译,以下命令能够解决此问题.仅仅要代码改动.会自己主动帮你编译. 进入项目文件夹运行:mvn -U eclipse:clean eclipse: ...

  4. 关于VS下的应用程序出现0xc000007b的问题以及OpenCV相关的0xc000007b问题

    本文参考过其他一些文章: http://www.cnblogs.com/csuftzzk/p/windows_launch_error_0xc000007b.html 这个问题在网上一查一大堆,主要的 ...

  5. 机器学习第3课:线性代数回顾(Linear Algebra Review)

    3.1  矩阵和向量 如图:这个是 4×2 矩阵,即 4 行 2 列,如 m 为行,n 为列,那么 m×n 即 4×2 矩阵的维数即行数×列数 矩阵元素(矩阵项): Aij 指第 i 行,第 j 列的 ...

  6. PHP Warning: 的解决方法

    在后台管理,用header("location:");做返回时,总是不能正常返回, Warning: Cannot modify header information - head ...

  7. EffectiveJava(20)使用子类型化优化标签类

    标签类:其中有许多样板代码,包括枚举声明,标签域和条件语句 如果要给它添加风格,除了有权限修改源码之外,你还得给每个条件语句都添加一个条件,否则就会在运行时失败 标签类过于冗长,容易出错,并且效率低下 ...

  8. 倍福TwinCAT(贝福Beckhoff)基础教程 松下驱动器如何执行绝对值清零

    点击参数-参数一览,然后修改015为0(设置为绝对编码器方式),点击设定值变更,然后传送,EEP,将参数写入驱动器(保持USB线连接,重启驱动器并确认参数确是改成0了)   监视器-清除多圈数,清除之 ...

  9. Android 软键盘的监听(监听高度,是否显示)

    Android官方本身没有提供一共好的方法来对软键盘进行监听,但我们实际应用时.非常多地方都须要针对软键盘来对UI进行一些优化. 下面是整理出来的一个不错的方法.大家能够使用. public clas ...

  10. inspect模块详解

    inspect模块主要提供了四种用处: (1).对是否是模块,框架,函数等进行类型检查. (2).获取源码 (3).获取类或函数的参数的信息 (4).解析堆栈 使用inspect模块可以提供自省功能, ...