1.数据安全问题:
限于目前的硬件水平,一台机器性能是有限的,所以垂直进行扩展也是有限的。于是只能通过水平扩展增强我们的整体性能,将数据与应用程序分离,把文件存放于一台机器,多台机器通过网络去访问这台机器上的文件(用socket实现),共享数据以防数据不安全需要加锁处理。
2.数据库的分类
关系型数据库:对每一列的数据类型会有限定。
MySQL
SqlServer
Oracle
sqlite,maridb等
非关系型数据库:redis,mongodb(可以解决断电即消失的问题)
它们最大区别:关系型数据库把数据存在硬盘中;非关系型数据库存在内存中。
3.mysql的架构:
类似于socket套接字的C/S架构。
流程:1.mysql服务端先启动,监听在某一个特定的端口(3306);2.mysql客户端连接服务端;3.MySQL客户端就可以发送相关的操作命令,去操作服务端存储的数据。
4.数据库服务器、数据管理系统、数据库、表与记录的关系
记录:1 刘海龙 324245234 22(多个字段的信息组成一条记录,即文件中的一行内容)
表:student,school,class_list(即文件)
数据库:oldboy_stu(即文件夹)
数据库管理系统:如mysql(是一个软件)
数据库服务器:一台计算机(对内存要求比较高)
总结:
数据库服务器-:运行数据库管理软件
数据库管理软件:管理-数据库
数据库:即文件夹,用来组织文件/表
表:即文件,用来存放多行内容/多条记录
5.数据库优点:
--可以管理大量数据
--并发操作同一个数据表格
--数据支持高级的操作,比如:分组,连表等。
6.mysql的安装(Windows):
Windows安装:
先去官网(https://dev.mysql.com/downloads/mysql/) #1、下载:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2、解压 如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64 #3、添加环境变量 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】 #4、初始化 mysqld --initialize-insecure ### 创建data目录, 初始化的数据 #5、启动MySQL服务 mysqld # 启动MySQL服务 #6、启动MySQL客户端并连接MySQL服务 mysql -u root -p # 连接MySQL服务器 mysql服务端不会阻塞住 制作windows的服务: "D:\mysql-5.7.28\bin\mysqld" --install 修改mysql的密码: C:\Windows\system32>mysqladmin -uroot -p "原密码" password "新密码" 出现的错误 C:\Windows\system32>mysql -uroot -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 如果出现上述错误,代表密码输入错误 #忘记密码,操作方式: #1 关闭mysqld的服务 #2 在cmd中执行:mysqld --skip-grant-tables ===》 不用密码就可以登录,绕过密码验证的权限 #3 在cmd中执行:mysql ===》 mysql -uroot -p #4 执行如下sql指令: update mysql.user set authentication_string=password('') where user = 'root'; flush privileges; (一定要操作) #5 tskill mysqld #或taskkill -f /PID 7832 #6 重新启动mysql服务
7.常用参数:
-u:user 用户名
-p:passward 密码
-h:host 主机名或ip
mysql -u root -p -h 192.168.1.10
-P:port 默认是3306
mysql -u root -p -h 192.168.1.10 -P 3307
8.初始mysql
有了MySQL这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写
mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们需要下载mysql的客户端,或者其他模块来连接到mysqld,然后使用SQL指令管理文件或者文件夹。
SQL指令:主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
SQL语言分为3种类型:
1.DDL语句 数据库定义语言:数据库、表、视图、索引、存储过程,例如 create drop alter
2.DML语句 数据库操纵语言:插入数据insert \删除数据delete\更新数据update\查询数据select
3.DCL语句 数据库控制语言:例如控制用户的访问权限grant\revoke
1.-操作数据库(操作文件夹)
--增:create database 数据库名称 charset utf8;
命名规范:可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位
show create database 数据库名;
删:drop database 数据库名称;
改:
删除再添加
如果数据库中有数据的话,直接drop会导致数据库中的数据丢失
在线上环境,不能够直接删除数据,在删除之前,需要进行备份。
查:show databases;
使用数据库:use 数据库名;
2.-操作数据表(操作文件):
先切换到文件夹下:use db1
增:create table t1(id int,name char);
删:drop table t1;
改:alter table t1 modify name char(3);
alter table t1 change name name1 char(2);
查:show tables
3.操作数据记录(操作文件中的内容/记录):
增:insert into t1 values(1,'egon1'),(2,'egon2'),(3'egon3'); 删:delete from t1 where id=1; 改:update t1 set name='sb' where id=2; 查:select * from t1; 清空表: delete from t1;如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。 truncate table t1;数据量大,删除速度比上一条快,且直接从零开始 auto_increment 表示:自增 primary key 表示:约束(不能重复且不能为空);加速查找