zoukankan      html  css  js  c++  java
  • MySQL基础-1

    数据库的基本概念

    什么是数据库

    字面意思数据库就是存储数据的仓库,正常情况下我们存储数据的方式有:

    1. 列表,字典,元组……等

      这些都存在内存中

      优点:存取速度快

      缺点:计算机断电就消失了

    2. 文件存储

      通过文件进行存储,保存在硬盘

      优点:永久保存

      缺点:存取速度慢

    而我们的数据库也是通过文件进行存取,它是一套基于CS架构的客户端和服务器程序,最终数据都会存储在服务器的磁盘上

    为什么要使用数据库

    使用文件存储带来的问题:

    1. 存取速度慢

    2. 单台机器容量有上限,且程序可能会在不同的机器上运行

      如果使用单台机器,性能有上限,所以当一台机器无法满足客户访问需求时,就需要增加机器来共同完成任务

      • 分布式 每一个服务器提供不同的服务

        优点:降低了程序之间的耦合度,更加容易维护

        缺点:通讯比较繁琐,容灾性比较差

      • 集群 所有的服务器提供一样的服务

        优点:容灾性强,易扩展,随时可以增加删减服务器数量

      如此一来,我们用户的数据就会分布在不同的服务器上,我们该怎样获取用户数据呢?

      只能通过网络取进行访问

    3. 用户权限管理

    4. 多个客户端并发访问,无法保证数据安全

    数据库的分类

    1. 关系型数据库

      数据之间存在相互关联关系,数据库可以维护这种关系

      存储介质:一般是磁盘

      常见的关系型数据库:

      1. Mysql

        目前最流行的关系型数据库,适用于中小型企业

      2. SQL server

        微软旗下产品,只能在Windows平台上运行

      3. oracle

        目前最强大的关系型数据库,在集群和用户管理上非常突出,适合大型企业

      4. db2

        IBM产品,主要面向企业级用户,通常和硬件捆绑销售

    2. 非关系型数据库

      数据之间不存在关系,需要用户自己维护数据之间的关系

      存储介质:一般是内存

      常见的非关系型数据库:

      1. mongoDB
      2. redis
      3. memcache

    数据库的重要概念

    名称 概念
    数据(Columu) 文件中的某一个字符串
    记录(Row) 文件的某一行
    表(Table) 某个文件
    库(DataBase) 文件夹
    DBMS 数据库管理系统
    数据库服务器 运行DBMS的计算机

    数据库的安装

    一般采用压缩包的方式进行安装,直接解压到本地就可以了

    安装步骤

    1. 先去 https://dev.mysql.com/downloads/mysql/ 下载Mysql社区版本,选择版本号,建议使用5.6版本

    2. 下载完成后,解压到本地

    3. 添加环境变量

    4. 注册系统服务

      通过管理员身份运行cmd

      注册:mysqld --install 将mysqld服务器添加到服务中,能够开机进行自启

      启动服务:net start mysql 启动服务器

      停止服务:net stopmysql 启动服务器

    简单使用数据库

    1. 在cmd终端输入mysql启动客户端,此时是以游客的身份进行登录

    2. 如果要进行登录操作,就需要在终端里指定用户名密码等参数

      命令:mysql -h127.0.0.1 -P3306 -uroot -p

      常见参数:

      1. -h 指定主机名称,在本机运行就是127.0.0.1,一般默认为主机,可以不写
      2. -P 指定端口,默认为3306,可以不写
      3. -u 指定用户名,root是管理员身份
      4. -p指定密码,root默认密码为空
    3. 管理员密码设置

      1. 知道原始密码

        • 先登录进去,然后执行更新语句进行修改

          输入:update mysql.user set password=password("新密码") where host="localhost" and user="root"

          刷新权限

          输入:flush privileges

        • 使用mysqladmin小工具

          命令:mysqladmin -uroot -p原始密码 password 新密码

      2. 不知道原始密码

        • 跳过授权表,手动启动mysqld,指定参数

          命令:

          1. mysqld --skip-grant-tables
          2. update user set password = password("新密码") where host="localhost" and user="root";
        • 重启mysqld就可以了

    4. 库的操作

      # 切换数据库
      mysql> use 数据库名称
      
      # 查看所有数据库
      mysql> show databases;  # 必须加分号
      
      # 查看数据库详情
      mysql> show create database 数据库名称;
      
      # 创建新的数据库
      mysql> create database 数据库名称;
      
      # 创建新的数据库,并指定编码方式
      mysql> create database 数据库名称 charset 编码方式; # 不能加-
      
      # 修改数据库的编码方式
      mysql> alter database 数据库名称 charset 编码方式;
      
      # 删除数据库
      mysql> drop database 数据库名称;
      

      数据库命名规范:

      1. 不区分大小写
      2. 不要使用关键字,例如create,drop……
      3. 不能使用纯数字
      4. 可以使用下划线,通常是字符数字下划线组合使用
    5. 表的操作

      # 创建表
      mysql> create table 表名称(列名称1 数据类型,列名称2 数据类型,……) charset 编码方式;
      
      # 查看当前库下的表
      mysql> show tables;
      
      # 查看表结构
      mysql> desc 表名称
      
      # 查看表的创建详情
      mysql> show create table 表名称;
      
      # 删除表
      mysql> drop table 表名称;
      
      # 清空表数据
      mysql> truncate table 表名称;
      
      # 修改表名
      mysql> rename 旧的表名称 to 新的表名称;
      
      # 修改表的编码
      mysql> alter table 表名称 charset 编码方式(utf8);
      
      # 添加字段
      mysql> alter table 表名称 add 列名称 数据类型;
      
      # 删除字段
      mysql> alter table 表名称 drop 列名称;
      
      # 修改数据类型
      mysql> alter table 表名称 modify 列名称 新的数据类型;
      
      # 修改列名
      mysql> alter table change 旧的列名称 新的列名称 数据类型;
      
      
  • 相关阅读:
    PHP中防止SQL注入的方法
    SQLmap超详细文档和实例演示
    Spring Cloud 个人心得 理论
    Spring注解说明
    git各角色权限描述
    jenkins调用tomcat重启命令 && tomcat重启脚本
    nginx1.5 升级到1.14
    发布项目
    spring boot 多线程
    Jmeter测试http请求
  • 原文地址:https://www.cnblogs.com/Hades123/p/11170832.html
Copyright © 2011-2022 走看看