zoukankan      html  css  js  c++  java
  • 数据库

    数据库

    • 什么是数据库
      • 数据库即存放数据的仓库,是长期存放在计算机内、有组织、可共享的数据
      • 数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享

    一、数据库介绍

    • 随意存放在一个文件中的数据,数据的格式千差万别

      tank|123 jason:123 sean~123

    • 软件开发目录规范

      Project:
      	conf
          bin
          core
          db	# 存放一个个的文件
      

      都是从本地读取的数据

    • 将所有数据存放到一个第三方的公共位置,同一个软件凡是需要操作数据的,就必须去这个共享的位置操作

      • 第三方的公共位置(数据库)
      • 数据库集群:将同一个数据库中的数据,复制到不同的服务器中
    • MySQL数据:C----->S架构软件

      • MySQL数据库本质上就是一个基于网络通信的软件
      • 所有基于网络通信的软件,底层都是socket
      • 服务端
        • 基于网络通信
        • 收发消息
      • 客户端
        • 基于网络通信
        • 收发消息
      • 所有语言若想操作数据库,拿到服务端IP和PORT,都必须遵循一套标准的解析指令----->SQL语句
    • DBMS:数据库管理系统

      • 关系型数据库:MySQL、Oracle、DB2、sql server...
        • 表结构
          • 需要哪些字段
          • 字段是什么类型
        • 字段与字段类型
          • name--->'zico'--->字符串
          • age---> 17 ---> 整形
      • 非关系型数据库:Redis、MongoDB...
        • 非关系型数据库一般以key:value的形式存储
      • {'name':'zico'}{'age':17}

    二、安装数据库

    1. 下载MySQL安装包:

      1. 下载链接: https://downloads.mysql.com/archives/community/
    2. 解压安装包放在自定义路径

    3. 添加系统环境变量

    4. 以管理员身份打开CMD,输入mysqld启动服务端,此时会卡住(保持运行状态)

      1. bin目录下的:mysqld.exe
    5. 再新建一个cmd,mysql客户端连接服务端,输入mysql -h 127.0.0.1 -P 3306 -p 密码

      1. mysql初始化时无密码,可以进入游客模式,功能会很少
      2. 无密码直接进入---> 需要-p 密码
      3. 全写:mysql -h 127.0.0.1 -P 3306 -p 密码
      4. 简写:mysql -uroot -p 密码
    6. 退出数据库客户端

      1. exit
      2. quit

      注意:SQL语句末尾必须加 " ;"号

    7. 查看操作系统中是否已经启动mysql服务端

      1. tasklist | findstr "mysqld"
    8. 杀死mysqld服务端进程

      1. taskkill /F /PID pid号

      注意:做服务端操作时,必须先以管理员身份打开


    三、数据库命令

    • 查看所有数据库:show databases;

    • 制作系统服务

      • 必须将已经启动的服务端mysql关闭
      • 删掉已经启动过的mysqld的进程
      • 输入mysqld --install ---> 安装mysql系统服务
      • 输入net start mysql 启动mysql服务
      • 输入net stop mysql 关闭mysql服务
    • 管理员登录

      • mysql -u 登录mysql用户名 -p 密码
      • 默认自带root超级用户,没有密码
      • mysql -uroot 回车即可进入
    • 游客登录

      • mysql 回车进入游客模式
    • 修改密码

      • 默认没有密码的情况下,设置密码
        • cmd>>>:mysqladmin -uroot password 123
      • 在有密码的情况下,修改密码
        • cmd>>>:mysqladmin -uroot -p 原密码 password 新密码
        • cmd>>>:mysqladmin -uroot -p123 password 321
    • 破解密码:当密码忘记时使用

      • 关闭服务端
      • 跳过权限启动服务端
        • cmd>>>:mysql --skip-grant-tables
      • 客户端进入游客模式
        • cmd>>>:mysql
        • update mysql库.user表名 set 字段password=字段password('字段值') where 条件(若条件成立,则修改)user="root";
        • cmd>>>:update mysql.user set password=password('123') where user='root';
      • 重新启动服务端,不要跳过权限认证
        • 先kill掉跳过权限认证启动的服务端进程
        • 再手动去开启服务端中的mysql服务即可
    • 设置配置文件

      1. 先在mysql根目录下--->E:mysql-5.6.40-winx64mysql-5.6.40-winx64

      2. 创建一个名为"my.ini"的文件,这个是mysql的配置文件

        				[mysqld]
                        character-set-server=utf8
                        collation-server=utf8_general_ci
        
                        # 这个是用python软件连接的客户端
                        [client]
                        default-character-set=utf8
        
                        # mysql软件的客户端
                        [mysql]
                        # 可写,可不写这样可以不需要用户名与密码直接登录mysql
                        # user='root'
                        # password=123
        
                        # 设置默认的字符编码
                        default-character-set=utf8
        
      3. 重启mysql服务,即修改成功


    四、数据库基本操作

    1.库的操作,类似于文件夹

      • 语法:create database 库名
      • example: create database db1
      • 语法:show databases; 查看所有库
      • example:show create database db1; 查看db1库中的信息
      • 语法:alter database 库名 charset='字符编码类型';
      • example:alter database db1 charset='utf8';
      • 语法:drop database db1;

    2.表的操作,类似于文件

    • 在操作表之前,需要先切换到指定库

      • 语法:use 库名;
      • example:use db1;
      • 查看当前所在的库:select database()
      • varchar与char 都是字符串类型
      • 语法:create table 表名(字段名 字段类型)
      • example:create table user_info(name varchar(20), age int);
      • 查看当前库中所有的表:show tables;
      • 查看当前表结构:desc user_info;
      • 语法:alter table 表名 modify name varchar(28);
      • example:alter table user_info modify name varchar(28);
      • 语法:drop table 表名;
      • example:drop table user_info;

    3.记录的操作,类似于文件中的一行行的数据

      • 语法:insert into 表名 values('字段类型的数据1', 字段类型的数据2);
      • 插入一条:insert into user_info values('tank', 17);
      • 插入多条:insert into user_info values('jason', 73), ('sean', 84);
      • 语法:select * from 表名;查看表中的所有数据
      • example:select * from user_info;
      • 查看name字段为tank的记录:select * from user_info where name ='tank';
      • 查看name 字段为tank的age字段:select age from user_info where name='tank';
      • 查看所有的名字:select name from user_info;

      • 语法:update 表名 set 字段名=字段值 where 条件判断;
      • 修改age为62的记录中name属性为yang:update user_info set name='yang' where age=62;
      • 修改name为yang的记录中age的属性为18:update user_info set age=18 where name='yang';

      • 语法:delete from 表名;清空表记录,不提交,可恢复

      • example:delete from user_info;

      • 语法:truncate table 表名;删除,不可恢复

      • example:truncate table user_info;

      • 回滚:start transaction;恢复:rollback;

  • 相关阅读:
    [JavaScript] cookie和storage
    react-interview-02
    简单实现一个Vue
    js获取当前页面url
    鸽巢原理
    20210412-1 原型设计作业
    案例分析作业
    软件工程的202103226-1编程作业
    阅读反馈
    软件工程第一课
  • 原文地址:https://www.cnblogs.com/YGZICO/p/12030809.html
Copyright © 2011-2022 走看看