[数据库] 数据库基础知识总结 | 概念+基础用法

192 0
Honkers 2026-6-28 23:29:55 来自手机 | 显示全部楼层 |阅读模式

:该文章主要是总结的学习内容,感兴趣可以去看原视频28-复习_哔哩哔哩_bilibili

一、数据库相关概念

1、数据库:存储数据的仓库

存储方式:文件(一个表对应三个不同的文件)

2、数据库管理系统:用来管理数据库的软件(MySQL、oracle、db2、Sybase 、redis、MongoDB、HBASE、mecache、solidDB、sqlite、H2 database)

3、数据:数字、图片、视频、文件等等

二、数据库发展历史

文件型数据—》关系型数据库—》关系-对象型数据库

我们现在用的数据库通常是关系型数据库,方便软件的设计和实现,那什么是关系型数据库呢?

关系型数据库的概念

关系:一张符合特定要求的二维表(二维就是行和列)

:记录、实体

:字段、属性

关系型数据库:由二维表构成的数据库

关系之间的关系:表与表之间的关系(一对一、一对多、多对多)

数据库语言:数据库结构化语言

DDL:数据定义语言

DML:数据操作语言

DQL:数据查询语言

DCL:数据控制语言

三、连接数据库服务器

通过命令行链接数据库服务器

mysql -u root -p  # root是用户名  根据实际情况改写

常用的参数:

-u:用户名

-p:输入密码

-h:跟IP地址

-p:跟默认端口号,默认3306

还有一种方式就是通过客户端navicat来连数据库服务器

四、常用语句

1、create命令

1、创建数据库

create database [if not exists]   character set utf8;

2、删除数据库

drop datadase ;

2、创建表

1、语法

create table (

字段   数据类型(长度) 约束类型,

.......                                                ,

字段 数据类型(长度) 约束类型

) engine-innodb

2、数据类型

1、数字类型整数(tinyint、int、bigint)、小数(float 7位小数 4字节、double 15位 8、decimal 30位  17)、定义方法 (age int(3))

2、字符串类型char(n) (0-255) 、varchar(n) (0-65535) 、text(n) (0-65535)、binary(n) (0-n)

3、日期

year(yyyy)

data(yyyy-mm-dd)

time(HH:MM:SS)

timestamp(yyyy-mm-dd HH:MM:SS)

datatime(yyyy-mm-dd HH:MM:SS)

4、二进制(现在用的较少)

3、约束类型

约束:为保证数据库中的数据的完整性、准确性设定的一些限制规则

1、主键约束:数据表中的一个或者多个字段组合,用来唯一标识一行记录,同时可以排序来提高查询的效率 primary key

在指定的字段后加上primary key



复合主键

忘记加主键,后假如主键

2、非空约束:指定的字段的数据不能为空   not null

3、默认值约束:  default 可以给字段设置默认值,如果没有给字段赋值,就会自动使用默认值

 4、自增长: 被约束字段在数据记录增加时候其值会自动递增,一般是搭配主键一起使用,并且一个表只能使用一个 auto_increment

5、检查约束 :Mysql不支持检查约束,enum('v1', 'v2' ,...)set('v1', 'v2' ,...)

6、唯一约束:被唯一约束字段,它的值不可重复,unique,(unique 不能和默认值一起使用)

7、外键约束

外键:外键就是字段,是从表和主表之间建立关系的字段,foreign key  references

例如下图 从表3绿色的字段就是引用的主表 表1 表2黄色字段

主表:拥有主键的表,字段别其他的表引用的表就是主表

从表:引用其他表的主键字段的表就是被引用的表的从表

语法规则:

DML数据操作语言

1、insert:把数据插入到数据表中

语法 insert into (字段列表) values(值列表)         # 完整语法

insert into values(值列表)        #简洁写法

insert into (字段列表) values(值列表),(值列表),.....        #批量插入数据

2、update:对数据表中的数据进行变更

语法:

update set 字段名=值[,字段名=值],......[where 条件表达式]

注:如果缺少where ,就会把整个表的字段值改为同一个

3、delete:删除表中的数据记录

语法:

delate from  [where 条件表达式]

DCl数据控制语言

1、grant:获取权限

grant <权限列表> 数据库.对象 to '用户名'@'允许登录的地址' identified by '密码'

:要用flush 来刷新权限

2、revoke:解除权限

revoke <权限列表> 数据库.对象 to '用户名'@'允许登录的地址'

三大范式

1、范式:normal format设计数据表的标准格式,设计数据库必须要按照这个标准来设计执行

2数据库范式

1、目前有6个范式,目前用的最多的只有3个

第一范式:

  • 表中的字段不可拆分

第二范式:

  • 表中每一行必须唯一(避免重复数据,数据冗余),非主键必须完全依赖主键()
  • 建表必须建主键,尽量用一个主键

第三范式:

  • 每列都和主键直接相关,而不是间接相关

DQL数据库语言

1、select :筛选数据

1 语法

select 字段名,字段名,...from 表名[where 子句][group by 分组字段][order by 子句] [limit分页条件]

  • 最简单的查询:

        

        * :代表返回表中的所有的字段

  • 有条件的查询:用where来限制范围                       

2、 order by排序

 3、模糊查询 where like

4、查重  distinct 

select distinct 字段列表 from tablename[where 子句]

5、聚合函数:sum()、 count()、avg()、max()、min()

6、分组查询

7、having的用法

 having和where的区别:

8、连接查询:涉及到多个表的时候就需要连接查询

连接查询 有内连接和外连接(左外连接、右外连接),

外连接:

内连接:只有两个表都匹配上的才显示

9、子查询:嵌入到其他 sql语句中的查询语句,通常作为数据源、用来存放数据或者用来查询条件语句中的数据

10、组合查询:将多个查询的返回结果进行组合显示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行