操作使用 MySQL 需要用到一种专门的编程语言: SQL (和 Java, C++ 是同类的)
这里需要注意的是:MySQL 是一个数据库软件,SQL 是一个编程语言,操作 MySQL 需要用到 SQL, 操作其他数据库也会用到这个语言
数据库操作,此处 数据库 指的是 数据集合, 是逻辑上的概念, 一个 mysql 服务器上,有多个这样的数据集合.
create database 数据库名 charset utf8; (create, database 都是SQL 中的关键字,数据库名以字母数字下划线随便起,但是不能和关键字重复,每个语句这里带有英文分号 ; 结尾)
成功案例:
注意:一个服务器上 数据库的名字,是不能重复的
例子:
创建数据库的时候,还可以同时设置一个字符编码,对于数据库存储中文有一定的帮助
因为 mysql 5. 默认的字符集是"拉丁文"无法直接存储中文的,创建数据库的时候手动指定 utf8 的字符集
mysql 这里指定的字符集还有一种写法: utfmb4 这是mysql 专有的,因为 mysql 的utf8不是完全体,有些内容缺失了(比如emoji),
utf8mb4 是完整版本的 utf8
例子:
指令集: 比如不同的编码方式,一个汉字需要用不同的字节数保存, 使用不同的字符集,编码方式也不同.计算机存储的是"二进制数据"编码就是用数字表示字符 (比如ASCII码)
现在比较常见的中文编码方式主要有两种: utf8和gbk码表
查看当前服务器有哪些数据库?
show databases;
一个数据库服务器,可以有多个数据库,使用 s 复数形式来描述
这里有些数据库是系统自带的,有些是我后来手动创建的
testdemo就是刚才创建出来的新鲜的数据库
test是之前创建出来的数据库
information_schema, mysql, performance_schema, sys是系统自带的数据库,这些数据库维护了 mysql 内部的一些相关信息,不去修改他们
use 数据库名;
数据库服务器上,有多个数据库,进行后续的表操作的时候,就需要先指定你要操作哪个数据库.
drop database 数据库名;
删除数据库是一个非常危险的操作,一旦删掉之后,数据就没了.
如果你删除的是一个比较重要的生产环境的数据,就非常危险
工作中会接触到的几套环境:
mysql是关系型数据库,是按照 数据表的方式来组织数据的,数据表中的每一列都会有具体的类型,下面说明一些比较重要的数据类型
float 和 double 不能精确保存,因此比较两个浮点数,不能使用 == ,而是需要通过作差, 小于一个误差值的形式(IEEE 754 标准)
在MySQL中,DECIMAL
和 NUMERIC
可以看作是相同的数据类型。事实上,这两者是可互换的,它们都用来存储精确的数值,这些数值有固定的小数位。这很重要,尤其是在处理财务数据时,比如货币,其中精度非常关键。
DECIMAL
和NUMERIC
类型允许用户定义精确度和小数位。格式可以表示为DECIMAL(M, D)
或NUMERIC(M, D)
,其中M
是数字的最大总位数(精度),D
是小数点后的位数(标度)。如果没有定义D
,默认是0
。
例如,DECIMAL(10, 2)
可以存储最大为99999999.99的数字,其中有8位在小数点前,2位在小数点后。
DECIMAL
不是按照 IEEE 754 的方式来表示的,而是类似于字符串的方式来表示的,需要付出更多的空间,运算的时候也会消耗更多的时间,但是保存的数据是精确的
size表示的是该字符串类型的数据能表示的最大长度
关系型数据库里边的存储结构先是一个数据库服务器,上面有很多数据库,每一个数据库都是逻辑上的数据集合,每一个数据库中都包含数据表
数据表 就是存储数据的基本单位
针对数据表的操作,一定是要先选中数据库 (use 数据库名;)
数据表有很多列,每一列都会有具体的类型
创建表的时候,必须要描述出表包含哪些列,每一列的类型,每一列的名字…后续往表里放的数据,也要遵守这里的规则,这是关系型数据库的基本要求
明确了列的类型,就可以更方便的对数据的值进行检查和校验
写sql的时候,可以分成多行
遇到 ; 才是一个完整的 sql, 在 ; 之前换行,就是换行操作
desc => describe
就是查看一个表里面有哪些列,列的名字和类型啥的…
Field表示有哪些列,Null如果是YES表示这个格子没有填,是空的,Default是默认值,这里默认为NULL
更多【笔记-MySQL学习笔记3: MySQL数据库基础】相关视频教程:www.yxfzedu.com