10.28 总结

夙愿已清 提交于 2019-12-02 16:05:33

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 表示:约束(不能重复且不能为空);加速查找
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!