mysql初识
程序员文章站
2022-04-21 18:02:34
[TOC] 数据库是什么 数据库:存储数据的仓库 为什么使用数据库 之前用excel来进行管理数据,有诸多问题: 电子表格只能处理有限的数据列和数据行,对于数百万玩、数千万等巨大的数据列很难有效地处理 电子表格无法提供安全、方便地权限管理和控制手段 电子表格很难实现多个数据之间地关联 电子表格很难实 ......
数据库是什么
数据库:存储数据的仓库
为什么使用数据库
之前用excel来进行管理数据,有诸多问题:
- 电子表格只能处理有限的数据列和数据行,对于数百万玩、数千万等巨大的数据列很难有效地处理
- 电子表格无法提供安全、方便地权限管理和控制手段
- 电子表格很难实现多个数据之间地关联
- 电子表格很难实现并发控制、增量维护等管理方式
这些问题,数据库都能解决,数据库是一种有效地管理大量的、安全的、并发的、关联的、一致的数据管理工具。
数据库的分类
关系型数据库
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
也就是说对于每一列的数据类型会有约束。
典型的关系型数据库:
- mysql、 mariadb
- oracle 甲骨文公司,收费昂贵
- sql server 微软出品
- sqlite 小型的文件数据库
非关系型数据库
- memcache
- mongodb
- redis
非关系型数据库以key-value的形式存储数据
区别
关系型数据库,把数据存在硬盘中
非关系型数据库, 把数据存在内存中
mysql的架构
类似于socket的客户端和服务端
流程:
- mysql服务端先启动,监听在一个特定的端口,默认是3306
- mysql客户端连接服务端
- mysql客户端就可以发出相关的操作命令,去操作服务端储存的数据
mysql的安装(windows)
- 官网下载之后5.7版本的
- 解压到指定目录 如
c:\mysql-5.7.28-winx64
- 添加环境变量 ,在系统环境变量path添加
c:\mysql-5.7.28-winx64\bin
- 初始化
mysqld --initialize-insecure
# 创建data目录,用来存储数据库 - 启动mysql服务
- 可以在cmd(win10需要管理员权限)中运行
mysqld --install
安装服务 - 或者在win10服务中启动mysql
- 可以在cmd(win10需要管理员权限)中运行
- 启动mysql客户端并连接mysql服务
mysql -u root -p
- 修改mysql密码
mysqladmin -uroot -p '原密码' password '要修改的密码'
常用的参数:
-u user 用户名 -p password 密码 -h host主机名或ip mysql -h 192.168.1.1 -uroot -p -p 端口 默认是3306 mysql -h 192.168.1.1 -p 3306 -uroot -p
忘记密码:
先关闭mysqld服务 net stop mysql 在cmd中执行: mysqld --skip-grant-tables 再开一个cmd执行: mysql -uroot -p 此时不需要输入密码 执行sql语句: update mysql.user set authentication_string=password('') where user='root'; 重启mysql服务
数据库服务器、数据管理系统、数据库、表、记录的关系
- 数据库服务器:运行数据库管理软件
- 数据库管理软件:管理数据库,如mysql
- 数据库:用来组织表,相当于win系统中文件夹的概念
- 表:即文件,用来存放多条记录
初始mysql
操作数据库
增:
create database 数据库名称 charset utf8; # 字符集默认时latin1
数据库命名规范:
- 可以由字母、数字、下划线、@、#、$
- 区分大小写
- 具有唯一性
- 不能使用关键字如 select create
- 不能单独使用数字
- 最长128位
删:
drop database 数据库名称;
改:
数据库删除了再添加
线上环境下,不能直接删除数据,再删除之前需要进行备份
查:
show database; # 查看数据库 use 数据库名称
操作数据表
创建表:(表是二维的,要有字段)
mysql> create table setcreed( -> id int, -> name varchar(20) -> );
查看表:
mysql> show tables;
删除表:
mysql> drop table setcreed;
查看数据表结构:
mysql> desc setcreed; 或者 mysql> show create table setcreed;
数据相关
数据类型
- 常用数据类型如下:
- 整数:int, bit
- 小数:decimal
- 字符串:varchar, char
- 日期时间:date, time, datetime
- 枚举类型(enum)
- 特别说明的类型如下:
- decimal表示浮点数,如decimal(5, 2)表示共存5位数、小数占2位
- char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '
- varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会储存ab
- 字符串text表示储存大文本,当字符大于4000时推荐使用
- 对于图片、音频、视频等文件,不存储在数据库里,而是上传到服务器中,然后在表中存储这个文件的url
单表中数据的增、删、改、查
- insert 插入数据
mysql> insert into setcreed(id,name) values(2, 'neo'),(3, 'cwz');
insert 另一种方式插入数据:
mysql> insert into setcreed set id=4, name='soso';
- 查看表中数据
select 查询方法:
mysql> select * from setcreed; # * 表示查看所有内容
查询后面可以跟条件:
mysql> select * from setcreed where id<3;
- update更新数据
mysql> update setcreed set name='qwe' where id=3;
- delete 删除数据
mysql> delete from setcreed where id=4;