SQL 操做中遇到的操做语句

查找表中不重复的列

select distinct 列 from  表复制代码


SQL中所遇到的语句程序员

总体都是数据库

SELECT COLUMN FROM TABLE编程

明确索要查询获得的结果缓存

Column=各类条件,不一样值类型转换,截取,判断安全


SQL中几个主要的知识点bash

  1. 游标(不会)
  2. 索引(不会)
  3. 约束(知道)
  4. 视图(不会)
  5. 事务处理(不会)
  6. 存储过程(会一点,能看不会写)
  7. 数据库安全(不会)



6.什么是存储过程?有哪些优缺点?

数据库中的数据等因而“水”服务器

Selecte语句是“吸管”网络

那么存储过程就是“抽水管道”架构

存储过程的优势:
编程语言

  1. 存储过程就像咱们编程语言中的函数同样,封装了咱们的代码。(作好的管子用来取比较有针对性。筛出多余和无效的数据
  2. 可以将代码封装起来(屡次调用,不用重复写)
  3. 保存在数据库之中(同数据库一块儿,方便查询修改)
  4. 让编程语言进行调用(在不一样的场景中能够被使用,例如winfrom和网站)
  5. 存储过程是一个预编译的代码块,执行效率比较高(总体性,效率高)
  6. 一个存储过程替代大量T_SQL语句 ,能够下降网络通讯量,提升通讯速率(同上)

存储过程的缺点:

  • 每一个数据库的存储过程语法由于不通用,十分难以维护
  • 业务逻辑放在数据库上,难以迭代

4.什么是视图?以及视图的使用场景有哪些?


什么是视图?

视图是一种基于数据表的一种虚表(能够参考数据库中的临时表)

  • (1)视图是一种虚表
  • (2)视图创建在已有表的基础上, 视图赖以创建的这些表称为基表
  • (3)向视图提供数据内容的语句为 SELECT 语句,能够将视图理解为存储起来的 SELECT 语句
  • (4)视图向用户提供基表数据的另外一种表现形式
  • (5)视图没有存储真正的数据,真正的数据仍是存储在基表中
  • (6)程序员虽然操做的是视图,但最终视图还会转成操做基表
  • (7)一个基表能够有0个或多个视图

有的时候,咱们可能只关系一张数据表中的某些字段,而另外的一些人只关系同一张数据表的某些字段...


咱们应该作到:

他们想要看什么数据,咱们就给他们什么数据

一方面就可以让他们只关注本身的数据

另外一方面,确保一些保密的数据不会泄露出来

视图就是基于查询的一种虚表,也就是说,视图能够将查询出来的数据进行封装,那么咱们在使用的时候就会变得很是方便。

值得注意的是:使用视图专一于逻辑,但不提升查询效率



临时表和视图的区别

存在方式:
临时存在于 服务器内存
视图 无存在形式

生命周期:
临时表 Sql服务关闭就消失
视图 你不删它就不会消失

用途
临时表 常常做为 中间转接层
视图 做为物理表的窗口

效率
临时表由于在缓存中,因此执行效率比较高{不知道大数据量时如何??}
视图 通常吧?若是是嵌套了别的视图效率但是最低了{但愿高手再说说}

存储过程使用时:
临时表,效率很高{多是数据量少,再加上临时表是在缓存中,因此执行效率高}
视图 好象通常(据说2005中有索引视图,但据说它缺点很多?



三个范式是什么

  • 首先要明确的是:知足着第三范式,那么就必定知足第二范式、知足着第二范式就必定知足第一范式
  • 第一范式:字段是最小的的单元不可再分
    • 学生信息组成学生信息表,有年龄、性别、学号等信息组成。这些字段都不可再分,因此它是知足第一范式的
  • 第二范式:知足第一范式,表中的字段必须彻底依赖于所有主键而非部分主键。
    • 其余字段组成的这行记录和主键表示的是同一个东西,而主键是惟一的,它们只须要依赖于主键,也就成了惟一的
    • 学号为1024的同窗,姓名为Java3y,年龄是22岁。姓名和年龄字段都依赖着学号主键。
  • 第三范式:知足第二范式,非主键外的全部字段必须互不依赖
    • 就是数据只在一个地方存储,不重复出如今多张表中,能够认为就是消除传递依赖
    • 好比,咱们大学分了不少系(中文系、英语系、计算机系……),这个系别管理表信息有如下字段组成:系编号,系主任,系简介,系架构。那咱们能不能在学生信息表添加系编号,系主任,系简介,系架构字段呢?不行的,由于这样就冗余了,非主键外的字段造成了依赖关系(依赖到学生信息表了)!正确的作法是:学生表就只能增长一个系编号字段。

  • 参考连接: juejin.im/post/5a9ca0…

    drop、delete与truncate分别怎么使用?

    不一样的要求执行

    • 单表删除,用drop

    • 清除全部数据,保留表,用truncate

    • 删除部分数据,用delete,而且带上where子句(加条件判断怎么删除)

    相关文章
    相关标签/搜索