首页 > 数据库 >记一篇SQL笔记

记一篇SQL笔记

时间:2023-04-19 15:26:06浏览次数:37  
标签:3177837 范式 一篇 笔记 SQL PK 主键

title: 记一篇SQL笔记
date: 2022-11-10 15:02:59
cover: /i/l/?n=23&i=blog/3177837/202304/3177837-20230419150737994-1755737660.jpg
top_img: /i/l/?n=23&i=blog/3177837/202304/3177837-20230419150737994-1755737660.jpg
description: 今天学习了数据库的范式设计,受益颇多,故此记录。
tags:
  - SQL
  - MySQL
  - SQL范式
categories:
  - 面试笔记
  - SQL笔记
copyright: true
language: zh-CN

今天学习了数据库的范式设计,受益颇多,故此记录。

记一篇SQL笔记

一、树形结构

问:如何用最少的表和字段设计一个树形结构?

答:一个表,三个字段(或两个字段);如:idpidpname(或不要)

二、基础技巧

a) “对”(正确性)

1) 一个表

  1. 需要主键(PK)保证每条数据的 唯一性(即实体完整性)(如:加一个id字段作为主键);

  2. 尽量使用 非业务字段 做PK(如学生表中不用学号做PK,而另外新建一个 非业务字段id 作为主键,因为学号属于其中的业务字段,一旦发生改动,主键无法变动就 芭比Q 了);

2) 多个表(FK)(参照完整性)

b) “好”(“尺”:范式)(范式共有 5 级)(平时三级就够了)

  1. 一级范式(1NF):简单二维表(字段中不能再有集合)

  2. 二级范式(2NF):消除部分函数依赖(小技巧:比如给每一个表 都加一个非业务字段 作为PK即可)

  3. 三级范式(3NF):消除 传递函数依赖(即非主键值不依赖于另一个非主键值)

标签:3177837,范式,一篇,笔记,SQL,PK,主键
From: https://www.cnblogs.com/QuestionMark001/p/17333373.html

相关文章

  • 51单片机学习笔记 STC89CRC
    STC89C51(Flash程序储器(字节)4k)52(Flash程序储器(字节)8k)53(Flash程序储器(字节)12k)...具体参考芯片手册STC89C系列51单片机封装方式1.DIP封装2.LQDP封装3.PLCC封装 电平特性数字电路中只有两种电平:高电平和低电平高电平:5V低电平:0VTTL电平信号被利用的最多是因......
  • MySQL 查看数据库表容量大小
    1.查看所有数据库容量大小selecttable_schemaas'数据库',sum(table_rows)as'记录数',sum(truncate(data_length/1024/1024,2))as'数据容量(MB)',sum(truncate(index_length/1024/1024,2))as'索引容量(MB)'frominformation_schema.t......
  • NULL值引入导致新增的unknown逻辑值 以及 SQL server中ANSI_NULLS的使用
    部分参考文章:https://www.bbsmax.com/A/A7zgEOVl54/ [BBSMAX]Lumia1020 2022-11-08https://www.cnblogs.com/SFAN/p/4343703.htmlcnblogs@ sunnyboy 2015-03-1710:17wikipedia三值逻辑:https://zh.wikipedia.org/wiki/%E4%B8%89%E5%80%BC%E9%80%BB......
  • MySQL 级联查询所有父级
    表结构:idnamecodeparent_code1老板A 2总经理BA3项目总监CB4开发工程师DC      查询D开发工程师的所有上级:SELECT`name`,@`code`ASc_ids,(SELECT@`code`:=parent_codeFROMdepartWHERE`code`=@`code`)ASp_id......
  • 使用TSQL创建作业
    使用TSQL创建作业<scriptlanguage="javascript"type="text/javascript">document.title="使用TSQL创建作业-"+document.title</script>具体帖子记不清了,在原来的基础上修改了一点:ifexists(select*fromdbo.sysobjectswhereid=object_id(N......
  • SQL——CHARINDEX,找到字符(char)的位置(index)
    DECLARE@ItemCodeVARCHAR(50)SET@ItemCode='1,2,34,56,78,9,0'WHILE(CHARINDEX(',',@ItemCode)<>0)BEGINPRINT(SUBSTRING(@ItemCode,1,CHARINDEX(',',@ItemCode)-1))SET@ItemCode=STUFF(@ItemCode,1,CH......
  • Mysql数据库的安装教程
    (Mysql数据库的安装教程)一、Mysql数据库介绍MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软......
  • 6.1.4 MySQL缓存策略
    LinuxC/C++服务器MySQL缓存策略大部分场景下MySQL的读要远远大于写的需求的,急需要解决的问题是提升读的性能......
  • SQL 跨数据库处理 语句
    1.插入数据SETIDENTITY_INSERT数据库A.dbo.FI_FloExpenseDailyON--设置为允许手动插入值INSERTINTO数据库A.[dbo].[表1](ID,[FlowNo])SELECTID,ExpenseNoFROM数据库B.[dbo].[表1]WHEREAppType=0SETIDENTITY_INSERTMixOne_DB_Seind.dbo.FI_FloExpenseDaily......
  • sql语句优化
    问题查找及措施问题查找需要找到具体的代码,对其进行一对一优化,而非一直把关注点放在服务器和sql平台降低简化每个事务中处理的问题,尽量不要让一个事务拖太长的时间例如文件上传时,应将文件上传这一步放在事务外面微软建议  4.启动sql定时执行计划怎么启动sqlserver......