我认为五个比较重要的数据库概念

本文详细介绍了SQL语句的四大分类:DDL、DML、DQL和DCL,涵盖了数据库的操作、查询、控制及事务管理。同时,深入解析了数据库范式、多表查询技巧、事务特性和常见数据库约束。

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

一、SQL语句的分类:
1.DDL:数据库定义语言,专门对数据库,表,列进行操作。
例如:
操作数据库:创建一个数据库:create database 数据库名;
操作表:创建一张表: create table 表名 (
字段名 数据类型,
字段名 数据类型,
字段名 数据类型
);
操作列:添加一列: alter table 表名 add 列名的类型;

2.DML:数据库操作语言,专门对数据库中的数据进行增,删,改操作。
例如:
新增数据: insert into 表名 (字段1,字段2,字段3) values (值1,值2,值3);
删除数据: delete from 表名 where 条件;
修改数据: update 表名 set 字段名=新的值 where 条件;

3.DQL:数据库查询语言,专门对数据库中的数据进行查询操作。
例如:
查询所有: select * from 表名;
查询部分:select 字段1,字段2,字段3 from 表名;
起别名查询: select 字段1 别名1,字段2 别名2 from 表名;
逻辑运算符:
and:多个条件同时满足
or:多个条件满足其中一个
not: 不满足
范围判断 : between …and
模糊查询: like
排序查询:order by 字段名 asc(升序) | desc(降序)
聚合函数: max,min,avg,sum,count
分组查询:group by 字段名;
4.DCL:数据库控制语言,专门操作用户,权限等。
例如:
查看授权: show grants for ‘用户名’@‘主机名’;
5.TCL:事务控制语言,专门操作数据库中事务(开启,提交,回滚)

二、数据库的范式:
数据库范式的分类: 第一范式、第二范式、第三范式、BCNF范式、第四范式、第五范式
主要为:
第一范式:一个表中任何字段不可拆分; (强调数据表的原子性)
第二范式:在第一范式的基础上,一个表只描述一件事,并且每个表必须有一个唯一的主键;
第三范式:建立在第二范式基础上,消除传递依赖(从表的外键必须依赖主表的主键,不能是其他字段)。

三、多表查询:
1.笛卡尔积查询: select * from 表A,表B;(感觉没什么意义)
2.多表查询的分类:
内链接: [inner] join (inner 可省略)
1)、隐式内连接:
select * from 主表,从表 where 主表.主键名=从表.外键名;
2)、显示内连接:
select * from 主表 [inner] join 从表 on 主表.主键名=从表.外键名;
外连接:
1)、左外连接: left [outer] join :以左表为准,只要左表中有的数据,查询结果就会显示。
2)、右外连接: right [outer] join:以右表为准,只要右表中有的数据,查询结果就会显示。 (其实左表右表换一下位置就可以)
3.子查询也叫嵌套查询:
1)、如果子查询结果为单值,可以使用=作为条件使用;
2)、如果子查询结果为单列多值,必须使用in作为条件使用;
3)、如果子查询的结果是一张表(多列多值),可以作为另一张表来查询。

四、数据库事务:
1.事务的特点:一组SQL语句操作,要么都成功,要么都失败。
2.事务的四大特性:
1)、原子性:事务中所有SQL语句,要么都成功,要么都失败(转账);
2)、一致性:事务前后,数据必须保持一致;
3)、隔离性:两个事务之间,数据互不影响;
4)、持久性:只有事务提交了,事务才会持久保存在硬盘中。
3.事务的隔离级别:
如果不考虑隔离级别的情况下,可能会出现以下问题:
1)、脏读:一个事务,读取到另一个事务没有提交的数据;
2)、不可重复读:一个事务,两次读取数据时,得到的数据值不一致;
3)、幻读(虚读):一个事务,两次读取数据时,得到的数据的数量不一致。
四种隔离级别:
1)、读未提交:三个问题都不能解决;
2)、读已提交:可以解决脏读(oracle默认选择);
3)、可重复读:可以解决脏读和不可重复读(mysql默认选择);
4)、串行化:所有问题都可以解决(一次只能开启一个事务)。

五、数据库的约束:
1.主键约束:每条记录的唯一标识,主键唯一且不能为null;
例如 : primary key 自动增长: auto-increment
2.唯一约束:某个字段值唯一,可以为null;
例如: unique
3.默认约束:如果该字段没有赋值,就具有一个默认值;
例如: default ‘值’
4.非空约束:该字段不能为null;
例如: not null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值