做网站多钱一年,河北邯郸旅游景点,秦皇岛属于哪个省哪个市的,上海模板建站哪家好博客主页#xff1a;花果山~程序猿-CSDN博客 文章分栏#xff1a;Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习#xff0c;一起进步#xff0c;一起探索编程的无限可能吧#xff01;让我们一起努力#xff0c;一起成长#xff01; 目录
一#xff0c;为什么会有… 博客主页花果山~程序猿-CSDN博客 文章分栏Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习一起进步一起探索编程的无限可能吧让我们一起努力一起成长 目录
一为什么会有数据库
二服务器数据库表的关系
三Mysql架构
四数据库的操作
1.数据库创建
校验规则对数据检索的影响
2.数据库的修改
3.数据库的备份与恢复
备份操作退出mysql
恢复操作进入mysql
数据库用户连接情况
五表的操作
1.创建表
删除表
2.详细查看表结构
3.修改表结构
修改表名
增加列
修改列
删除列
修改列名
六mysql 数据类型
1. bit——位类型
2. float decrimal
3.char varchar
4. 日期类型
5. enum set
enum set的索引策略 嗨收到一张超美的风景图愿你每天都能顺心 版本信息centos7.6mysql57 一为什么会有数据库 想我们电脑上的普通文件保存数据有以下几个缺点 安全性问题 不利于数据查询和管理 不利于存储海量数据 控制不方便程序员如果想要自己控制文档就需要每个程序员自己进行第二次开发这无疑是令人恼火的于是乎数据库工具的诞生就解决了这一个难题。 常见的数据库工具 SQL SeverSQLite嵌入式H2(java开发的嵌入式类库)Oracle(大型复杂项目) MySql(广泛使用)。 二服务器数据库表的关系 所谓安装数据库服务器只是在机器上安装了一个数据库管理系统程序这个管理程序可以管理多个数据库 一般开发人员会针对每一个应用创建一个数据库。 为保存应用中实体的数据一般会在数据库中创建多个表游戏里的设置信息等的以保存程序中实体的数据。 数据库服务器、数据库和表的关系如下 使用案例
首先我们先在root下进入mysql客户端
mysql -h 127.0.0.1 -P 3306 -u root -p #前面mysql安装设置了免密直接登
-h : 主机名这里是同一台主机当然是本地环回 -P端口号 -u: 用户名 -p: 密码由于咱们已经免密了可以直接回车进入 首先我们跟这下面的示例大致的走一下基本的流程后面我们再深入学习。 三Mysql架构 在学习mysql使用前我们先拉高眼界以全局视角来看mysql的架构。MySQL 是一个可移植的数据库几乎能在当前所有的操作系统上运行。 下面是Mysql的基本架构 查看全部引擎
show engines \G #\G 显示简化
常见的SQL语句命令
DDL【data definition language】 数据定义语言用来维护存储数据的结构代表指令: create, drop, alter就是对数据库的操作文件夹的操作DML【data manipulation language】 数据操纵语言用来对数据进行操作代表指令 insertdeleteupdate对表的操作增删更新DML中又单独分了一个DQL数据查询语言代表指令 select对表的查DCL【Data Control Language】 数据控制语言主要负责权限管理和事务代表指令 grantrevokecommit。 四数据库的操作
首先我们得了解两个编码集概念
编码集用于数据存储与读取同一个数据库编码集得统一。校验集用于数据里面的比较同时编码集与校验集也要标准对应。
首先我们先查看数据库支持的编码集字符集及校验集
show charset;
show collation;
查看默认的字符集校验集
show variables like character_set_database;
show variables like collation_database; 我们会发现默认就是utf8原因是我们在安装mysql时对mysqld进行了文件配置。 1.数据库创建 create database [if not exists] data_name [charset... collate ...] 括号内的表示可选内容如果存在同名数据库则不创建如果不显示表示编码集校验集则使用默认集。
例子 校验规则对数据检索的影响
首先就是是否区分大小写下面以utf8为例。 数据库删除 drop database data_name; 数据将被完全删除 2.数据库的修改
通过这个方法可以修改已存在数据库的编码集
alter database data_name [charset... collate...] 3.数据库的备份与恢复
备份虽然本质上是拷贝一份但我们还是不推荐这样奇怪的操作。
备份操作退出mysql
mysqldump -P3306 -u root -p 密码 -B 数据库1 数据库2 数据库备份存储的文件路径
其他细节仅备份表或多个表 mysqldump -u root -p 数据库名 表名1 表名2 备份路径 恢复操作进入mysql source 备份路径;
本质上就是将曾经数据库的操作都执行一遍。 数据库用户连接情况
show processlist; 五表的操作
1.创建表
语法:
create table 表名(内容1 comment 描述内容1内容2 comment 描述内容2)[charset... collate... engine...]
不同的存储引擎的选择影响着在磁盘中文件数量以InnoDBMyISAM为例如下 删除表 drop table 表名 2.详细查看表结构
首先是进入一个数据库语法
desc 表名 或者使用更详细查看表信息。
show create table 表名 \G;
(注\G 用来简化无用信息) 3.修改表结构
修改表名
语法
alter table 表名 rename 新表名; 增加列
语法
alter table student add address varchar(100) comment链接 after age;修改列
alter table student modify name varchar(20);可以修改列的描述信息。 删除列
alter table student drop geader;
这样我们就删除了列‘geader’表中的geader列全部数据将被删除。 修改列名
alter table student change id id varchar(64) comment学号; 六mysql 数据类型 需要注意的是相比于其他编程语言超出类型范围可能会进行数据截断但mysql中的数据类型为保证数据正确性不允许超出类型范围这样以来插入到数据库中的数据是原始输入。
mysql选取数据类型的思想由于mysql未来将会用于存储大量信息数据类型不能太小也不能太大选择合适的数据类型大小是值得我们考虑。 下面我就跳几个特殊的类型进行讲解
1. bit——位类型
语法 bit(num) num : 比特位数 2. float decrimal
语法 float( num1, num2) 或者 decrimal(num1, num2 ) num1 : 全部的位数num2小数点后的位数。 事实上float也存在精度丢失的情况而这时decrimal类型将被我们认识 3.char varchar
char语法 char(L): 固定长度字符串 L 是可以存储的长度单位为字符最大长度值可以为 255个字符。 注中文在utf8编码下一个字符占3字节在gbk下是 2字节每个字符 varchar语法 varchar(L): 可变长度字符串 L 表示字符长度最大长度 65535 个字节。 在sql语句中char类型的分配字节是按照你要多少个字符就给你多少个字符的字节要多少给多少varchar类型则是用多少给多少L是最大字符数。但varchar也需要付出些代价一般varchar会花费1~3字节来表示当前行varchar占用量因此最大字节长度为65532utf8最大字符数21844这里提一句由于mysql是按行读取一行的最大字节数也是65535超过影响varchar创建也影响后面类型创建 两者比较
char占用字节数固定效率高。varchar占用字节数较少但维护成本高。char更适合长度变化小的数据比如身份证号手机号等。varchar适合长度变化大的数据如网络地址。 4. 日期类型 常用的日期有如下三个 date :日期 yyyy-mm-dd 占用三字节。datetime 时间日期格式 yyyy-mm-dd HH:ii:ss 表示范围从 1000 到 9999 占用八字节。date与datetime就是一个固定时间程序员不修改则不变化。 timestamp 时间戳从 1970 年开始的 yyyy - mm - dd HH:ii:ss 格式和 datetime 完全一致占用四字节但 如果当前行的数据被修改timestamp列数据将自动更新 。 5. enum set C语言中我们也学过枚举mysql中的枚举也是为数据内容进行约束就像填问卷一样有答案限定一样。
enum语法 nume_ enum(‘内容一’‘内容二’ ‘内容三’...) set语法 nume_ set(内容一‘内容二’ ‘内容三’...) 两者的区别通过实验来展示 set如果使用数字是通过位来标记是否数据如下 enum set的索引策略 find_in_set(substr_list) sub: 目标str_list目标可能存在的范围。找到则返回下标反之返回0。
语法使用我们通过下面情况来举例 情况一简单的绝对查找 注where我们可以理解为mysql的判断语句类似于if 情况二在范围内查找一个存在 如果我们需要对判断一些数据是否存在我们就需要了解and类似于语言中 “与”如下 ok这样子我们就可以在enomset中任意的索引我们需要的数据了。 结语 本小节就到这里了感谢小伙伴的浏览如果有什么建议欢迎在评论区评论如果给小伙伴带来一些收获请动动你发财的小手点个免费的赞你的点赞和关注永远是博主创作的动力源泉。