SQL学习笔记(完整)

本文详述了SQL数据库的完整性、操作语句、聚合函数、表连接、设计步骤和事务等内容,涵盖从数据库创建到索引、存储过程和触发器的使用,深入解析SQL在数据库管理中的核心应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简述数据库完整性及其作用

​ 1.域完整性:检查约束 默认约束 非空约束

​ 2.实体完整性: 主键约束 唯一约束 标识列

​ 3.引用完整性:外键约束

​ 4.自定义完整性:触发器

简述实现数据库操作的语句以及语法

--增
insert into 表名(1,列2,……) values(1,值2,……)
--删
delete FROM 表名 WHERE 条件
--改
update 表名 SET1=新值1,列2=新值2,…… WHERE 条件
--查
SELECT1,列2,…… 
FROM 表名 
WHERE 条件  
group byhaving 条件  --(结果筛选) 
order by[ASC|DESC]  --(结果排序)


常用的聚合函数

--聚合函数
--  max(列) 
--	min(列) 
--	sum(列) 
--	avg(列) 
--	count(*)

表连接分为哪几种类型

--内联查询,可能造成数据列丢失
SELECT1,2,…… 
FROM1
inner join2 on1.=2.SELECT1,2,…… 
FROM1,2
WHERE1.=2.--左外联查询,保证左表一定出现在结果集中
SELECT1,2,…… 
FROM1
left join2 on1.=2.--右外联查询,保证右表一定出现在结果集中
SELECT1,2,…… 
FROM1
right join2 on1.=2.

了解设计数据库的步骤

良好的数据库设计:

  • 节省数据的存储空间

  • 能够保证数据的完整性

  • 方便进行数据库应用系统的开发

糟糕的数据库设计:

  • 数据冗余、存储空间浪费
  • 内存空间浪费
  • 数据更新和插入的异常

软件项目开发周期中的数据库设计:

  • 需求分析阶段:分析客户的业务和数据处理需求

    • 收集信息:与该系统有关人员进行交流,充分了解用户需求,理解数据库需要完成的任务
    • 标识实体(Entity):标识数据库要管理的关键对象或实体,实体一般是名词
    • 标识每个实体的属性(Attribute):例如客人编号、姓名
    • 标识实体之间的关系(Relationship):对象之间的依赖
  • 概要设计阶段:设计数据库的E-R模型图,确认需求信息的准确和完整

    • E-R图(Entity-Relationship)分析对象之间的关系:
      • 1655519852572
      • 将各实体转换为对应的表,将个属性转换为各表对应的列
      • 标识每个表的主键列
      • 在表之间建立主外键,提现实体之间的映射关系
    • 转化E-R图为数据库模型图:
      • 通过微软提供的Microsoft Visio软件—数据库模型图来绘制数据库模型图
      • 箭头关系由一实体指向另一被依赖的实体
      • 1655520597216
    • 映射基数:
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kX8iLdr9-1656908913581)(C:\Users\Admin\AppData\Roaming\Typora\typora-user-images\1655519985662.png)]
  • 详细设计阶段:应用三大范式审核数据库结构

    • 为什么需要数据规范化:减少数据冗余,减少操作异常
    • 不符合规范的表设计
      • 信息重复;更新异常;插入异常(无法正确表示信息);删除异常(丢失有效信息)
    • 第一范式(1NF)的目标是确保每列的原子性
      • 如果每列都是不可再分的最小数据但愿(也成为最小的原子单元),则满足第一范式(1NF)
    • **第二范式要求每个表只描述一个事情 **
    • 第三范式:如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)
  • 代码编写阶段:物理实现数据库,编码实现应用

  • 软件测试阶段

  • 安装部署


SQL语句分为四种

**1、数据查询语句:DQL(Data Query Language):SELECT **

2、数据操纵语句:DML(Data Manipulate Language):Insert Update Delete

3、数据定义语句:DDL(Data Defination Language):建库、建表、加约束

4、数据控制语句:DCL(Data Control Language):权限管理


SqlServer数据库由哪几种文件组成?

  • 主数据文件:*.mdf

  • 次要数据文件:*.ndf

  • 日志文件:*.ldf

    创建SqlServer数据库时,需要指定哪些属性?

  • 文件存放位置,分配的初始空间,属于哪个文件组

  • 文件增长:可以按百分比或实际大小指定增长速度

  • 文件容量设置:可以指定文件增长的最大值或不受限


创建数据库的语法

Create Database db_name
ON[Primary]
(
--	<数据文件参数>[,……n]<文件参数>
)
[LOG ON]
(
-- <日志文件参数>[,……n]
)
使用CREATE DATABASE语句创建数据库MySchool,要求:
  • 该数据库具有一个数据文件和一个日志文件
  • 文件保存在D盘已有的文件夹Project下
  • 数据文件的大小初始为5MB,最大值为100MB,文件增长率是15%
  • 日志文件的大小初始为2MB,增长量是1MB
CREATE DATABASE MySchool
	on primary
	(
        name 	   = 	'myschool_data',  --逻辑名
        size	    =    5mb,  --初始大小
        maxsize     =    100mb,  --最大值
        filegrowth  =    15%,  --增长方式
        filename='d:\project\myschool_data.mdf'  --文件路径
    )
    log on
    (
     	name 	= 'myschool_log',
        size 	= 2mb,
        maxsize = 50mb,
        filegrowth =1mb,
        filename = 'd:\project\myschool_log.ldf'
    )
使用CREATE DATABASE语句创建数据库Employee,要求:
  • 数据库具有多个数据和日志文件
  • 分别设置主数据文件和次要数据文件
  • 分别设置不同的日志文件
CREATE DATABASE Employee
ON PRIMARY
	--主要数据文件Employee_data
	(
    	name = 'Employee_data',
        size = 5mb,
        maxsize = 100mb,
        filegrowth = 10%,
        filename = 'd:\project\Employee_data.mdf'
    ),
    --次要数据文件Employee_data2
    (
    	name = 'Employee_data2',
        size = 5mb,
        maxsize = 100mb,
        filegrowth = 10%,
        filaname = 'd:\project\Employee_data2.ndf'
    )
    --主要日志文件Employee_log
LOG ON
	(
    	name = 'Employee_log',
        size = 2mb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值