一,表

  1. 表中的列叫做字段,行叫记录也叫元组。
  2. 主键:唯一的标识表中的某一条记录
  3. 外键:一个表的主键作为另一个表的外键,表示两个表之间的关系。一般将外键写在记录的一方,比如部门号和员工号,应该将部门号作为员工的外键。多对一写在多的一面。
  4. 外键的值一定要在该外键的表中存在

二,约束

  1. 对一个表中的属性操作的限制叫做约束
  2. 主键约束:不允许重复元素,避免数据冗余
  3. 外键约束:通过外键约束从语法上保证了本事务所关联的其他事务一定存在。
  4. 事物与事物之间的关系是通过外键来体现的
  5. check约束:保证事物的取值在合法范围内
  6. default约束:保证事物一定有一个值
  7. 唯一约束:unique保证事物的取值不允许重复,但是允许其中有一列,且只能有一列为空。
  8. unique唯一性不能重复,default默认值,check约束范围
  9. 主键和unique的区别:unique只允许一列可以为空,主键不能为空。

三,关系

  1. 一对一:即可以把表A的主键充当表B的外键,也可以把表B的主键充当A的外键
  2. 一对多:把表A的主键充当表B的外键,或者说把A的主键添加到B表来充当B表的外键,在多的一方添加外键
  3. 多对多:例如班级是一张表,教师是一张表,班级和教师的关系也是一张表。

四,查询代码篇

五,数据库中单引号与双引号的区别

一般单引号是字符串,双引号是字段的名字

六,聚合函数【多行函数】

  1. 不返回为null的数据
  2. 单行函数和多行函数不能同时使用
  3. group by 【分组查询】使用group by之后,select中只能出现分组后的整体信息,不能出现组内的详细信息。
  4. having【对分组后的信息进行过滤】,having不能使用别名,先过滤时还没有别名,所以是错的,having后面必须是分组的整体信息,条件参数顺序不能改变where一定要在having前面
  5. having与where的异同:相同点:having与where都是对数据过滤,都只保持有效数据。不同点:where对原始记录过滤,having对分组后的数据过滤,where必须在having前面,不能颠倒,否则报错。

七,连接查询

  1. 将两个表或者两个以上的表以一定的连接条件连接起来,从中检索出满足条件的数据
  2. 内连接:(1)select……from A,B的用法,(2)select……from A,B where……的用法,(3)select……from A join B on……的用法
  3. 外连接:(1)左外连接:left join关键字从表table1返回所有的行,即右表table2中没有匹配。如果表中没有匹配则结果为null

(2)右外连接:right join 关键字从右表table2返回所有的行,即使左表table1中没有匹配,则结果为null

(3)完全连接:full outer join 关键字只要左表table1和右表table2其中一个表中存在匹配,则返回行。full outer join关键字结合了left join和right join的结果

(4)自连接:一张表自己和自己连接起来查询数据

(5)交叉连接:

(6)联合:表和表之间的数据以纵向的方式连接在一起

八,视图的格式

  1. create view视图的名字
  2. as-select的前面不能添加begin
  3. select语句-select后面不能添加end

九,视图的优缺点

  1. 优点:可以隐藏一些表的原始数据,相当于保护原始数据,简化查询,增加数据的保密性
  2. 缺点:增加了数据库的维护成本,视图只是为了简化查询,但是并不能加快查询的速度,如果原始表数据丢失,视图就要进行修改
  3. 注意的问题:创建视图的select语句必须为所以的计算列指定别名,视图不是物理表,是临时虚拟表,临时表。

十,事务

(1)为什么需要事务?

  1. 事务可以保证避免数据处于一种不合理的中间状态
  2. 利用事务可以实现多个用户对共享资源的同时访问
  3. 事务必须得保证多个用户对共享资源同时访问数据库给用户的反应是合理的

(2)事务和线程的关系?

  1. 事务也是通过锁来解决很多问题的
  2. 线程同步就是通过锁来解决的 sychronized

(3)事务和第三方插件的关系

  1. 直接使用事务库技术难度很大,很多人借助第三方插件来实现,因此一般人不需要细细的研究数据库中事务的语法细节,第三方插件想要完成预期的功能,一般必须的借助数据库中的事务机制来实现

(4)事务的三种运行模式

  1. 自动提交事务:每条单独的语句都是一个事务,如果成功执行则自动提交,如果失败则自动回滚
  2. 显式事务:每个事务均以BEGIN TRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束
  3. 隐藏事务:在前一个事务完成时新事务隐式启动,每个事务仍以COMMIT或ROLLBACK语句显式结束。

重点:数据库是如何解决存储问题的,以及check,default,unique约束

SQL初级知识点的更多相关文章

  1. sql注入知识点整理(基础版)

    sql注入知识点整理(基础版) 基本步骤 判断是否报错 判断闭合符号 判断注入类型 构建payload 手工注入或者编写脚本 基本注入类型 报错型注入 floor公式(结果多出一个1):and (se ...

  2. SQL函数知识点

    SQL函数知识点 SQL题目(一) 1.查询部门编号为10的员工信息 select*from emp where empno=10; 2.查询年薪大于3万的人员的姓名与部门编号 select enam ...

  3. sql操作知识点个人笔记(SQLServer篇)

    实际工作中,总会遇到一些常用的或不常用的sql,这些sql可能并没多少技术含量,但对我们本身而言,一个最大的问题就是很容易忘记.对我个人而言,以前常用的,过阵子之后再用到,发现不记得了.由此得出结论, ...

  4. SQL必备知识点

    经典SQL语句大全 基础 1.说明:创建数据库.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 device.说明:创建新表crea ...

  5. SQL初级语句

    一)SQL是什么? 结构化查询语言(Structured Query Language)简称SQL, 是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据 ...

  6. SQL初级语法 [查询: SELECT]

    SQL查询: SELECT 普通查询: SELECT "栏位名" FROM "表格名" DISTINCT 查询:(去掉重复) SELECT DISTINCT & ...

  7. SQL初级第三课(下)

    我们续用第三课(上)的表 辅助表 Student                   Course               Score                    Teacher Sno ...

  8. SQL初级第二课

    随着我们数据库越来越复杂 我们要掌握的姿势也要也来越多.... 首先建立个表 create table shop(code int primary key identity (1,1),name va ...

  9. SQL初级

    SQL是一个微软开发的数据库,因为联系到很多内部服务程序和文件所以安装和删除的时候有些人会遇上些麻烦,如果安装失败了那就得完全删除后重装,然而他自己自带的删除系统并不是那么给力,所以悲剧就诞生了,不行 ...

  10. 161017、SQL必备知识点

    经典SQL语句大全 基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql ser ...

随机推荐

  1. vue 中的 provide/inject

    provide/inject 是 vue 2.2.0 版本新增 类型: provide:Object | () => Object inject:Array<string> | { ...

  2. P5736 质数筛

    原题连接 一看到这个熟悉的输入,我们就立马反应过来要请出一维数组来记录一下输入的数据.现在数据的存储解决了,紧接着来剖析一下步骤: 输入数据 一个一个的判断是否为质数 筛去合数 输出质数 理清了思路后 ...

  3. 4.git的指令应用

    1.stash 应用:   应用场景:在当前分支开发代码,开发到一半,代码没有提交,你想在当前分支的基础上切换到别的分支:或者创建新的分支,所以需要把当前开发的内容进行藏匿起来. 1.1藏匿指令:   ...

  4. linux合并bilibili下载的blv视频

    B站下载的学习视频,用python+sh合并处理,自己mark一下 手机bilibili下载了视频,想要搞到电脑上看,结果发现下载下来的都是文件夹里的一堆片段,仔细一看还是 .blv,脑那样啊! 在虚 ...

  5. 前端vue的JsPDF html2canvas 生成pdf并以文件流形式上传到后端(转载)

    原文地址 1.首先在文件内引入htmlToPdf.js这里代码引入了html2canvas和jspdf//需要 npm i html2Canvas 和 npm i jspdf 在这里将getPdf 这 ...

  6. C# List GroupBy and Sum

    List<PartRequest> partRequests = new List<PartRequest>(); partRequests.Add(new PartReque ...

  7. eclipse的快捷键都有哪些

    非常实用的快捷键 Ctrl+D: 删除当前行 Ctrl+Alt+↓: 复制当前行到下一行 Ctrl+Alt+↑: 复制当前行到上一行 Alt+↓: 当前行和下面一行交互位置 Alt+↑: 当前行和上面 ...

  8. [ARC073C] Ball Coloring

    简要题意 \(N\) 个盒子,每个盒子里有两个数.现在要把盒子中的数分成两种颜色,满足: 每个盒子中的数分别属于两种颜色,每个数恰好属于一种颜色 两种颜色的数的极差的乘积最小 求这个最小值 \(N \ ...

  9. 牛客 二叉树中和为某一值的路径 【时间19ms】【内存9560k】

    https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca 构造函数:new ArrayList(al)把al的所有值复制到 ...

  10. React脚手架的使用

    初始化项目 npx create-react-app my-app // 或 npm init react-app my-app // 或 yarn create react-app my-app 启 ...