一、数据库概念及作用

1.1 数据库概念

数据库就是以**一定格式进行组织的数据的集合。**通俗来看数据库就是用户计算机上的一些具有特殊格式的数据文件的集合。

普通文件:我可以存数据

数据库:我也可以存数据

问题:既然数据库本身就是一种文件,那用户可以不使用数据库而使用普通文件来进行数据的存储吗?

从理论上是可以的,但是相比于普通文件,数据库有以下特点:

  • 持久化存储
  • 读写速度极高
  • 保证数据的有效性
  • 对程序支持性非常好,容易扩展

1.2 数据库的作用

比如用户在网站上能够看到微博以及其相关评论,能在购物网站上看到商品的详细描述以及图片等等,这些数据都是来自于后台的数据库,总之数据库就是用来存储数据的。

知识要点

数据库就是用户计算机上的一些具有特殊格式的数据文件的集合.数据库的特点:
1.持久化存储
2.读写速度极高
3.保证数据的有效性
4.对程序支持性非常好,容易扩展

二、数据库分类及特点

数据库分类

  • 关系型数据库
  • 非关系型数据库

2.1 关系型数据库

关系型数据库,是指采用了关系模型来组织数据的数据库,简单来说,这种关系模型指的就是二维表格模型.

示例:

编号 姓名 性别 年龄 电话 家庭住址
1 孙悟空 100 188 8888 8888 花果山1号洞
2 白骨精 1000 166 6666 6666 盘丝2号洞
3 猪八戒 18 199 9999 9999 高老庄3号洞

常见的关系型数据库:

  • Mysql :Web时代使用最广泛的关系型数据库。
  • ORACLE:银行,电信等项目中使用到。
  • SQLite:轻量级数据库,主要应用在移动平台。
  • SQLServer:在微软项目中使用。

MySQL使用了双授权政策,它分为社区版和商业版,由于其体积小速度快总体使用成本低,尤其是开源,一般中小型网站的开发都选择MySQL作为网站数据库。

2.2 非关系型数据库

非关系型数据库,又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL,对NoSQL 最普遍的定义是“非关联型的”,强调Key-Value 的方式存储

常见的比如说:mongoDB、redis

本部分主要讨论关系型数据库,对于非关系型数据库会在后面的课程学习到。

知识要点

  • 数据库分类:
    关系型数据库
    非关系型数据库

  • 关系型数据库特点:
    使用二维表格这种形式存储数据

  • 非关系型数据库特点:
    强调Key-Value 的方式存储数据

三、数据库管理系统

3.1数据库管理系统介绍

数据库管理系统( Database Management System,简称DBMS)是为管理数据库而设计的软件系统。

包括三大部分构成。

  • 数据库文件集合:主要是一系列的数据文件,作用是存储数据
  • 数据库服务器:主要负责对数据文件以及文件中的数据进行管理
  • 数据库客户端:主要负责和服务端通信,向服务端传输数据或者从服务端获取数据

3.2 SQL语句

数据库客户端和数据库服务端怎么通讯呢?
数据库客户端通过“特殊的语言”告诉服务端,客户端想要做什么. 这个专门的语言就是 SQL语句。

所以我们之后学习数据库的重点就在于如何编写sql语句

SQL(Structured Query Language)是结构化查询语言,是一种用来操作RDBMS的数据库语言。当前几乎所有关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库

那么什么是RDBMS呢?
Relational Database Management System 所谓的关系型数据库管理系统RDBMS,是专门用来管理关系型数据库的系统.

3.3 关系型数据库中核心元素

主键:唯一标识一行记录的字段 ------编号这一列的数据

字段:一列数据类型相同的数据 (数据列) 表头 优先定义------姓名-性别-年龄-电话-地址 这几列数据

记录:一行记录某个事物的完整信息的数据(数据行) ------编号为1.2.3的这几行数据

编号 姓名 性别 年龄 电话 地址
1 孙悟空 100 188 8888 8888 花果山1号洞
2 白骨精 1000 166 6666 6666 盘丝2号洞
3 猪八戒 18 199 9999 9999 高老庄3号洞

数据表:由若干个字段和数据组成

数据库:由若干个数据表组成,一个数据库可以有多张数据表。

知识要点

RDBMS的组成:

  • 数据库客户端
  • 数据库服务端
  • 数据库文件集合

SQL语句:

  • 关系型数据库中客户端和服务端之间通讯的语言

关系型数据库中的核心元素:

  • 字段:一列数据类型相同的数据
  • 记录:一行记录某个事物的完整信息的数据
  • 数据表:有若干字段和记录组成
  • 数据库:由若干数据表组成

四、MySQL环境搭建

注意环境变量的添加。

五、MySQL数据类型

5.1 数据类型

Python中也有很多不同的数据类型,不同的数据类型它们的作用就是存放不同的数据。就相当于不同的酒选择不同的容器装一样。

比较常用的数据类型有:int decimal varchar 等等

5.2 整型类型

MySQL中定义数据字段的类型是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

5.3浮点型

float:单精度型,只保证6位有效数字的准确性

double:双精度型,只保证16位有效数字的准确性

decimal:定点数,其中decimal(5,2)代表共5位数字,其中2位是小数,比如:888.88

5.4 字符串

5.4.1 char和varchar的区别

  • char:定长字符串儿

    • char也叫定长字符串儿,指的是在创建表的时候char字段占用的磁盘空间的大小就已经固定了

      • 比如说,我们在定义name char(10),代表name字段将占用10个字符的硬盘空间,那么具体多少个字节要看使用的编码格式是什么,如果是utf8编码,那么一个字符占用3个字节,所以char(10)将占用30个字节,无论内容够不够30个字节都占30个字节的空间,例如只存abc三个字符也要占用30个字节空间。
  • varchar:变长字符串儿
    • varchar也叫变长字符串,指的是字段占用磁盘空间的大小并不是固定的,而是由内容决定的,等于内容的实际长度+1个字节(用 \0 表示字符串结束)。

      • 比如说,我们在定义name varchar(10),代表最多保存10个字符,如果使用utf8编码,那么最多占用30个字节的空间,但是如果内容不够30个字节,例如内容是abc,那么只占三个字符也就是9个字节再+1,共占10个字节的空间。

5.4.2 text

**注意:**text与char和varchar不同的是,text不可以有默认值,char和varchar允许有默认值

选择字符串类型的原则:

  • varchar:适用于经常变化的字段用
  • char:适用于知道固定长度的字符串
  • 尽量用varchar
  • 超过255字节的只能用varchar或者text,能用varchar的地方不用text

5.5 枚举类型

枚举类型enum,在定义字段时就预告规定好固定的几个值,然后插入记录时值只能在这几个固定好的值中选择一个。语法定义:gender enum(‘男’,’女’)
应用场景:当值是几个固定可选时,比如:性别、星期、月份、表示状态时(比如:是、否)

5.6 时间类型

知识要点

decimal: 定点数decimal(5,2)代表共5位数字,其中2位是小数,比如:888.88char:定长字符串
varchar:变长字符串char(10) : 不管实际使用, 必然占用10个字符空间varchar(10): 根据实际使用占用空间enum: 枚举类型 gender enum(‘男’,’女’),  gender的值只能选择其一

六、数据完整性和约束

6.1 数据完整性

数据完整性用于保证数据的正确性。系统在更新、插入或删除等操作时都要检查数据的完整性,核实其约束条件。

6.2 参照完整性

参照完整性属于表间规则。在更新、插入或者删除记录时,如果只改其一,就会影响数据的完整性。如删除表2的某记录后,表1的相应记录未删除,致使这些记录成为孤立记录。

表1:

id name age car
1 老王 20 101
2 老李 50 102

表2:

id car price
101 宝马 1 000 000
102 五菱神车 20 000

6.3 约束

约束类型 约束说明
NOT NULL 非空约束(设置非空约束,表示该字段下面保存的内容不能为空)
PRIMARY KEY 主键约束(唯一性和非空性)
UNIQUE KEY 唯一约束(唯一性,可以为空,但是只能有一个)
DEFAULT 默认约束(设置该字段下添加数据为空的时候会用设置的默认值填充)
FOREIGN KEY 外键约束(需要建立两表间的关系)

知识要点

数据完整性用于保证数据的正确性

约束作用是保证数据的完整性和一致性

七、登录和退出数据库命令

7.1 数据库操作基本步骤

  • 连接数据库
  • 输入用户名和密码
  • 输入命令完成对数据库的操作(SQL语句的完成)
  • 输入命令对数据库中的表结构和表数据的操作(SQL语句的完成)
  • 退出数据库

7.2 连接数据库命令

打开终端,运行命令(系统环境变量里面加入了MySQL的启动路径):

mysql -uroot -p
回车后输入自己设置的密码,我当前设置的密码为qwe123ps: mysql -uroot -pqwe123 也可以登录

7.3 退出数据库命令

在终端中,运行命令:

quit 和 exit  或  ctrl+d注意:SQL语句以英文  ;   为结束符
ps: SQL语句不区分大小写

7.4 显示版本和时间命令

select version();   显示版本
select now();       显示查看时间

7.5 数据库基本操作命令

show databases;              查看所有数据库         show databases;
select database();          查看当前使用的数据库    select database();
create database 数据库名 charset=utf8;  创建数据库   create database python charset=utf8
use 数据库名;                使用数据库             use python;
drop database 数据库名;      删除数据库-慎重使用      drop database python;

7.6 数据表基本操作命令

创建数据表命令:

create table 表名(
字段名称  数据类型  可选的约束条件
field1 datatype constraint1,
field2 datatype,
field3 datatype,
…………………………
fieldN datatype,
---- 主键说明可以放在字段中独立说明,也可以放在最后统一说明。
primary key(one or more fields)
);

示例:

create table students(id int unsigned primary key auto_increment not null,name varchar(20) default '',age tinyint unsigned default 0,height decimal(5,2),gender enum('男', '女', '中性','保密'),cls_id int unsigned default 0
);

Ps:auto_increment表示自动增长

7.7 查看表结构命令

show tables;     查看当前数据库中的所有表
desc 表名;           查看表结构
show create table 表名;  查看表的创建语句--详细过程

在开发过程中不需要频繁的操作表结构,所以该章节的目的就是让我们能够在需要的时候根据这些语法写出符合要求的SQL语句就可以了 .

7.8 数据表结构修改命令

alter table 表名 列名 类型;                添加字段
alter table change 原名 新名 类型及约束;   重命名字段
alter table 表名 modify 列名 类型和约束;   修改字段
alter table 表名 drop 列名;              删除字段
drop table 表名;                         删除表

7.9 表数据操作命令

  • 添加数据
insert into 表名 values(...);                      全列插入:值得顺序与表结构得字段一一对应.
insert into 表名(列1,列2...) values(值1,值2,...);   部分列插入:指的顺序与给出得列顺序对应.
insert into 表名 values(...),(...)......;          一次性插入多条数据.
insert into 表名(列1,列2...) values(值1,值2,...),(值1,值2,...)...;   部分列多行插入数据.
  • 修改查询数据
select * from 表名;                            查询所有列
select 列1,列2,列3... from 表名;               查询指定列数据
update 表名 set 列1=值1,列2=值2,... where 条件.    修改数据
  • 删除数据
delete from 表名 where 条件;                 删除数据

MySQL-数据库基础相关推荐

  1. php大牛额城战笔记,PHP语言大牛开发笔记(8)——MySQL数据库基础回顾[2]

    本文主要向大家介绍了PHP语言大牛开发笔记(8)--MySQL数据库基础回顾[2],通过具体的实例向大家展示,希望对大家学习php语言有所帮助. 一.数据表 为了确保数据的完整性和一致性,在创建表时指 ...

  2. 1.0 MySQL数据库基础知识

    MySQL数据库基础知识 MYSQL介绍 MySQL分支版本的发展 MySQL. Oracle. SQLServer的市场区别 MYSQL数据库使用上的结构 MYSQL体系架构图 MYSQL体系架构- ...

  3. MySQL数据库基础(五)——SQL查询

    MySQL数据库基础(五)--SQL查询 一.单表查询 1.查询所有字段 在SELECT语句中使用星号""通配符查询所有字段 在SELECT语句中指定所有字段 select fro ...

  4. mysql数据库基础的简单操作指南

    最近在学习mysql,本文是做的关于mysql学习的笔记,跟大家分享一下,希望对大家学习mysql知识有所助益.mysql现在几乎已经成了网站建设的主流数据库,很多php网站系统都采用了mysql数据 ...

  5. MySQL数据库 --基础

    MySQL数据库 --基础 一.数据库介绍 1.1 数据库管理系统 数据库管理系统(DataBase Management System,DBMS)由一个互相关联的数据的集合和一组用以访问这些数据的程 ...

  6. linux下mysql数据库基础及客户端命令详解

    linux下mysql数据库基础及客户端命令详解 1.mysql数据库存储引擎: SHOW ENGINES;   #查看mysql支持的存储引擎 常见有如下两个存储引擎: MyISAM:每表三个文件: ...

  7. mysql数据库基础语句讲解

    mysql数据库基础讲解 一.数据库客户端命令 二.数据库基础sql语句 三.数据表基础语句 四.数据的增删改查(重点) 切记sql语句之后一定要加 ; 一.数据库客户端命令 1.mysql: mys ...

  8. Linux Mysql 数据库基础

    目录 Linux Mysql 数据库基础 一.数据库 数据库简介 数据库的分类 数据库的发展史 数据库系统发展阶段 DBMS 数据库管理系统 数据库管理系统的优点 数据库管理系统的基本功能 数据库系统 ...

  9. MySQL数据库基础01 韩顺平 自学笔记

    MySQL数据库基础 数据库简单原理图 连接Mysql 启动和关闭mysql服务 连接Mysql指令 数据库三层结构 数据在数据库中的存储方式 SQL语句的分类 简单通过Java操作Mysql数据库 ...

  10. Mysql数据库基础知识(五)之:视图、变量、存储过程、函数、流程控制结构

    第一部分:Mysql数据库基础知识(一)之 基础查询----分组查询 第二部分:Mysql数据库基础知识(二)之 连接查询----子查询-----分页查询------union联合查询 第三部分:My ...

最新文章

  1. 共谋大数据产业发展新篇章
  2. python使用osgeo库_python中使用gdal,osgeo
  3. json 取值判断_【收藏级】.NETCore3.1中的Json互操作解读
  4. AT3945-[ARC092D]Two Faced Edges【dfs】
  5. ADO.NET多值查询
  6. android显示过程,Android 桌面加载图标过程分析
  7. 防止前端脚本JavaScript注入
  8. 水面反光如何拍摄_拍照反光太难看?这八个办法值得一试!
  9. Windows PowerShell 2.0语言开发之脚本块
  10. PPT好帮手,模版不用愁-www.officeplus.cn
  11. 第一次QMK编译记录(11.26)
  12. 数值计算之 插值法(5)分段插值,埃尔米特插值
  13. 基于JavaSwing开发蜘蛛纸牌游戏 课程设计 大作业源码
  14. 探花交友06-即时通信
  15. PHP训练聊天机器人,智能聊天机器人,陪你聊天练口才!
  16. 计算机网络--自顶向下方法 学习笔记之计算机网络和因特网
  17. 基于javascripts的语法特性使用设计原则
  18. 安卓android银联支付Unionpay
  19. 今日分享 不可思议的人体
  20. anaconda中使用pip安装pytorch(GPU)

热门文章

  1. python三大器物---装饰器
  2. 怎样一次性压缩多张图片?这个无损批量压缩图片方法送给你
  3. 蔡维德:Libra如果脱钩美元 美国第二天就让它下市
  4. V-by-One基础知识
  5. JDK8环境配置教程
  6. 夜神模拟器android 8.0,夜神模拟器6.0.8.0
  7. 综合布线3D虚拟仿真教学实训平台
  8. SysRec2016 | Deep Neural Networks for YouTube Recommendations
  9. Oracle Coherence中文教程三:配置
  10. 根据sam文件计算reads的GC含量