一、什么是数据库

1、数据库概念:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API接口用于创建,访问,管理,搜索和复制所保存的数据。

2、RDBMS(关系数据库管理系统):

  • 能让我们使用表、列和索引实现一个数据库
  • 保证各种表的行间的引用完整性
  • 自动更新索引
  • 解释一个SQL查询和组合来自不同表的信息
  • SQL:结构化查询语言(Structured Query Language),在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。

二、数据库基本结构

数据库:

—— 数据库是表的集合,带有相关的数据。

—— 表:一个表是多个字段的集合。

—— 字段:一个字段是一列数据,由字段名和记录组成。

数据表:

—— 数据库是由多个数据表构成的

—— 每张数据表存储多个字段

—— 每个字段由不同的字段名及记录构成,每个字段有自己的数据结构及约束条件

数据类型:

——数值类型:

–     INT:有符号的和无符号的。有符号大小-2147483648~2147483647,无符号大0~4294967295。宽度最多为11个数字- int(11)

–     TINYINT:有符号的和无符号的。有符号大小-128~127,无符号大小为0~255。宽度最多为4个数

字- tinyint(4)

–     SMALLINT:有符号的和无符号的。有符号大小-32768~32767,无符号大小为0~65535。宽度最多为6个数字- smallint(6)

–     FLOAT(M,D):只能为有符号的。默认为(10,2) – DOUBLE(M,D):只能为有符号的。默认为(16,4)

–     DECIMAL(M,D):只能为有符号的。

——日期和时间类型

–     DATE:YYYY-MM-DD格式,在1000-01-01和9999-12-31之间。

–     DATETIME:YYYY-MM-DD HH:MM:SS格式,位于1000-01-01 00:00:00和9999-12-31 23:59:59 之间。

–     TIMESTAMP:称为时间戳,在1970-01-01 00:00:00和2037-12-31 23:59:59之间。

–     TIME: 以HH:MM:SS格式, -838:59:59~838:59:59

–     YEAR(2|4): 以2位或4位格式存储年份值。如果是2位,1970~2069;如果是4位,1901~2155。

——字符串类型

–     CHAR(M):固定长度字符串,长度为1-255。如果内容小于指定长度,右边填充空格。如果不指定长度,默认为1

–     VARCHAR(M):可变长度字符串,长度为1-255。定义该类型时必须指定长度

–     BLOB 或TEXT:最大长度65535。存储二进制大数据,如图片。不能指定长度。两者区别: BLOB 大小写敏感

–     TINYBLOB 和TINYTEXT:最大长度255。不能指定长度。

–     MEDIUMBLOB 或MEDIUMTEXT:最大长度16777215 字符

–     LONGBLOB 或LONGTEXT:最大长度4294967295 字符

–     ENUM:枚举。例如:ENUM(‘A’,’B’,’C’)。NULL 值也可

——约束条件

–   约束是在表上强制执行的数据检验规则

–   用来保证创建的表的数据完整和正确

主键约束:保证表中每行记录都不重复。

主键,又称为”主码”,是数据表中一列或多列的组合。主键约束要求主键列的数据必须是唯一的,并且不允许为空。使用主键,能够惟一地标识表中的一条记录,并且可以结合外键来定义不同数据表之间的关系,还可以加快数据库查询的速度

非空约束:指的是字段的值不能为空。

唯一性约束:要求该列的值必须是唯一的。(1) 允许为空,但只能出现一个空值;(2)一个表中可以有多个字段声明为唯一的;(3) 唯一约束确保数据表的一列或几列不出现重复值。

默认约束:指定某个字段的默认值。如果新插入一条记录时没有为默认约束字段赋值,那么系统就会自动为这个字段赋值为默认约束设定的值。

自增字段:一个表只能有一个自增字段,自增字段必须为主键的一部分。默认情况下从1开始自增。

数据库基础知识介绍(MySQL)的更多相关文章

  1. 阿里面试官必问的12个MySQL数据库基础知识,哪些你还不知道?

    数据库基础知识 1.为什么要使用数据库 (1)数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 (2)数据保存在文件 优点: 数据永久保存 缺点: 1)速度比内存操作慢,频繁的IO操作. ...

  2. MySQL数据库基础知识及优化

    MySQL数据库基础知识及优化必会的知识点,你掌握了多少? 推荐阅读: 这些必会的计算机网络知识点你都掌握了吗 关于数据库事务和锁的必会知识点,你掌握了多少? 关于数据库索引,必须掌握的知识点 目录 ...

  3. 数据库基础知识详解三:MVCC、范式以及表连接方式

    写在文章前:本系列文章用于博主自己归纳复习一些基础知识,同时也分享给可能需要的人,因为水平有限,肯定存在诸多不足以及技术性错误,请大佬们及时指正. 8.MVCC 多版本并发控制(Multi-Versi ...

  4. SQL数据库基础知识-巩固篇<一>

    SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...

  5. Nginx基础知识介绍

    Nginx基础知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx是免费的.开源的.高性能的HTTP和正向/反向代理服务器.邮件代理服务器.以及T ...

  6. TCP_Wrappers基础知识介绍

    1. TCP_Wrappers基础知识介绍 TCP_Wrappers是在 Solaris, HP_UX以及 Linux中广泛流行的免费软件.它被设计为一个介于外来服务请求和系统服务回应的中间处理软件. ...

  7. Swift Playgrounds for mac基础知识介绍

    Swift Playgrounds是一款适用于iPad和Mac的革命性应用程序,它使Swift学习变得互动而有趣.它不需要编码知识,因此非常适合刚开始的学生.使用Swift解决难题,以掌握基本知识.S ...

  8. MySQL学习笔记01_数据库基础知识

    01_1 mysql数据库启动与停止 以<管理员权限>启动cmd: 输入net stop mysql停止mysql服务: 输入net start mysql启动mysql服务: 输入mys ...

  9. MySQL数据库基础知识复习

    现在是2020年寒假,这也是新年写的第一篇博客,用了十几天的时间自学了数据库基础部分,想总结一下得失同时并通过写博客来复习前面学的知识点. 个人: 1.本来是计划一周学完基础部分的178p但没能完成这 ...

随机推荐

  1. 这些Winforms界面开发技巧你还没学会?OUT了

    DevExpress Winforms Controls内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpre ...

  2. python面向对象基础(四)内置方法 __xx__之new与init

    __init__和__new__方法 __new__() 是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在 Python 中存在于类里面的构造方法 __init__() 负责将 ...

  3. LOJ #3119「CTS2019 | CTSC2019」随机立方体 (容斥)

    博客链接 里面有个下降幂应该是上升幂 还有个bk的式子省略了k^3 CODE 蛮短的 #include <bits/stdc++.h> using namespace std; const ...

  4. [Google Guava] 6-字符串处理:分割,连接,填充

    原文链接 译文链接 译者:沈义扬,校对:丁一 连接器[Joiner] 用分隔符把字符串序列连接起来也可能会遇上不必要的麻烦.如果字符串序列中含有null,那连接操作会更难.Fluent风格的Joine ...

  5. 23、自动装配-Aware注入Spring底层组件&原理

    23.自动装配-Aware注入Spring底层组件&原理 Aware 接口,提供了类似回调函数的功能 自定义组件想要使用Spring 容器底层的一些组件(Application Context ...

  6. Strategic game POJ - 1463 【最小点覆盖集】

    Bob enjoys playing computer games, especially strategic games, but sometimes he cannot find the solu ...

  7. 【题解】丑数Humble Numbers-C++

    题目描述Description对于一给定的素数集合 S = {p1, p2, …, pK},如果一个数字,当我们对其做完质因子分解后,其质因子全是来自我们给定的素数集合,则认为这个数字是个丑数.注意: ...

  8. loaction.reload(false)和location.reload(true)的区别

    loaction.reload(false)和location.reload(true)有差别啊,一个是先判断页面有没修改,有的话就从服务器下载页面,没有就直接从缓存里拿(这个会提升响应性能)而把该方 ...

  9. Vue项目中的文件/文件夹命名规范

    Vue项目中的文件/文件夹命名规范 0.2262018.09.21 16:01:09字数 820阅读 6979 文件或文件夹的命名遵循以下原则: index.js 或者 index.vue,统一使用小 ...

  10. 022_统计每个远程 IP 访问了本机 apache 几次?

    #$1为IP#i为不同的IP#print ip[i],i 输出不同IP出现的次数总和以及它们是谁#ip[$1]++ 未定义则从0开始,IP出现则自增 #!/bin/bashawk '{ip[$1]++ ...