数据库基础

数据库基础

1、什么是数据库?

        存储信息的一个管理平台;对数据进行有效的管理

2、与文件相比数据库的优势?

  • 文件存在安全性问题;

  • 文件不方便进行存储海量数据;

  • 文件不利于查询和管理;

  • 在程序中操作数据库更方便;

3、存储介质:

    磁盘、内存

4、主流的数据库:

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。适用于C/S模式

  • Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。

  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。

  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。

  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

  • 国内:大金数据库,达梦数据库。

5、服务器、数据库、表的关系:

关系型数据库---一对一、一对多、多对多

6、MySQL架构图:

  • 客户端:代码层次

  • 连接池:登录判断->操作

  • 存储引擎:   数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。----不指定默认为InnoDB.

        MyISAM--不支持事务、保存点,支持全文搜索,检索速度较高

        InnoDB--支持事务、保存点,分布式的,临时的

        Federated--存储引擎访问在远程数据库的表中的数据,而不是本地的表。

        Archive--这个引擎只允许插入和查询,不允许修改和删除

        Merge--把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询

        Memory---将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。

        Cluster--也叫NDB Cluster 存储引擎,主要用于MySQL Cluster 分布式集群环境,

        Example--

  • MySQL文件系统

        NTFS--是 WindowsNT 环境的文件系统

        ext4--是Linux系统下的日志文件系统,是ext3文件系统的后继版本

常见的三种MySQL引擎MyISAM,InnoDB,Memory:https://www.cnblogs.com/yuxiuyan/p/6511837.html

7、SQL分类

  • DDL(数据定义语言)---维护存储数据的结构

        create、drop、alter

  • DML(数据操纵语言)---对数据进行操作

        insert、delete、update

  • DQL(数据查询语言)

        select

  • DCL(数据控制语言)---负责权限管理和事务

        grant、revoke、commit

 

8、连接数据库

    mysql -h [127.0.0.1] -P 3306 -u root -p[密码]

                    127.0.0.1-本机回环地址

    

9、数据类型

表的数据类型:    数据类型在前端、代码、数据库层次都要进行控制

 

数值类型:

bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。存储的是对应的 ASCII 值

float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节。float表示的精度大约是7位。

decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数。decimal整数最大位数m为65。支持小数最                                              大位数d是30。如果d被省略,默认为0、如果m被省略,默认是10。

文本类型:

char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255。

varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节。有1 - 3 个字节用于记录数据大小,所以说                     有效字节数是65532。

     当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节)

常用的时间日期类型:

  • datetime 时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从1000到9999,占用八字节

  • date:日期 'yyyy-mm-dd',占用三字节

  • timestamp:时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss格式和datetime完全一致,占用四字节

枚举和集合:

  • enum:枚举,“单选”类型;

            enum('选项1','选项2','选项3',...);              最大65535个

  • set:集合,“多选”类型;

            set('选项值1','选项值2','选项值3', ...);       最大64个

        集合查询,使用find_in_set(sub, str_list):如果sub在str_list中,返回下标;否则返回0;str_list用逗号隔开

 

  •  

  • 查询--select * from student;

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值