數據庫 理論

數據庫的概念

使用文件來管理數據php

1.管理不方便 java

2.文件操做效率問題python

3.一個程序產生的數據不能共享mysql

因此產生了數據庫c++

  本質:將保存數據的部分 存到一個公共的地方 全部的用戶涉及到數據相關 都必須來這個公共地方查找redis

補充 假如存發數據庫的計算機 炸了 那麼 他的數據就都會沒了 因此就會有多個計算機來存放數據庫 數據共享 sql

數據庫之MySQL

  本質就是一款基於網絡通訊的應用軟件
  任何基於網絡通訊的軟件 底層都是socketmongodb

模擬 mysql服務端數據庫

  - 基於socket通訊編程

  - 收發消息

  - SQL語句(實際上是一個公共的標準)

模擬 mysql客戶端

  - 基於socket通訊

  - 收發消息

  - SQL語句(實際上是一個公共的標準)

ps:MySQL不僅僅支持MySQL的客戶端來操做 也支持其餘編程語言直接操做  python java c++ php語法都不同

DBMS 數據管理系統

  分爲  關係型數據庫 (數據與數據之間能夠有關聯限制的)

      關係型數據庫一般都是表結構,也就意味着你在用關係型數據庫的時候第一步就是肯定表結構

      先搞清楚什麼是 記錄 : 記錄就是 文件內(表內)的一行行數據

      補充: 庫 : 一個個文件夾  表: 一個個文件   字段: 表內寫的第一行數據   字段 :字段名+字段類型

        字段特定的類型 存名字用的 字符串 

                存密碼用的 數字

                存生日用的 日期

        常見的 非關係型數據庫  MySQL(免費 開源 性能不差 支持大量的高併發)

                     SQLserver (微軟的產品 僅僅支持windows)

                    Oracle (最牛B的數據庫 可是收費高)

                     DB2 (收費)

      非關係型數據庫

        一般都是以k,v鍵值的形式 存儲數據  (速度快 二級緩存)

        redis,mongodb(文檔型數據庫 很是接近關係型的非關係型數據),memcache

MySQL其實能夠把它當作一款支持遠程操做文件的軟件

安裝MySQL
    在IT行業 不要輕易的嘗試最新版本的軟件

下載以後 是將MySQL的服務端和客戶端都下載了下來
    解壓
    查看文件目錄

    服務端
        mysqld
    客戶端
        mysql

    啓動mysqld
        1.切換到bin目錄下
        2.執行mysqld

    ps:作前期MySQL配置的時候 終端建議你用管理員身份運行

    windows+r啓動的是普通用戶

    mysql在初始登錄的時候 是沒有密碼的 直接回車便可

    mysql中的sql語句 是以分號結束的 不敲分號 默認你沒有輸入完
    客戶端還會讓你繼續輸入
mysql的安裝

mysql中的sql語句 是以分號結束的 不敲分號 默認你沒有輸入完
客戶端還會讓你繼續輸入

SQL語句

    客戶端登錄
        mysql -h 127.0.0.1 -P 3306 -uroot -p
        能夠簡寫
        mysql -uroot -p

        若是不輸入用戶名和密碼 默認是訪客模式登錄  所能用到的功能不多

    客戶端退出登錄
        exit;
        quit;
    查看全部的數據庫
        show databases;


    查看某個進程
        tasklist |findstr 名稱(這個要退出才能查看!)

    殺死進程
        taskkill /F /PID 進程號




製做環境變量
    將啓動文件所在的路徑添加到系統的環境變量中
    注意:配置完以後一段要從新啓動mysql服務端及cmd終端

將mysqld製做成系統服務(電腦啓動,客戶端自動啓動,只要啓動客戶端便可)
    製做系統服務 你的cmd終端必定要是管理員身份

    mysqld --install(要將cmd所有退出,再從新打開,直接輸入該命令!)



修改密碼
    沒有密碼的狀況下
        mysqladmin -uroot -p password 123
    有密碼的狀況下
        mysqladmin -uroot -p123 password 123456

    當命令輸入錯誤的時候  能夠用\c取消前面的命令  cancel

破解密碼
    現將已經啓動的服務端停掉

    1.跳過用戶名和密碼的驗證功能 啓動服務端
        mysqld --skip-grant-tables  啓動服務端 跳過受權表
    2.修改管理員用戶對應的密碼
        update mysql.user set password=password(123) where user='root' and host='localhost';
    3.關閉當前服務端  從新以校驗用戶名密碼的方式啓動
    4.正常以用戶名密碼的方式 鏈接mysql服務端

配置文件
    \s查看 mysql服務端簡單配置
    一般狀況下配置文件的後綴都是ini結尾

    mysql自帶的配置文件不要修改
    可是你能夠新建一個配置文件 my.ini
    mysql服務端在啓動就會自動加載你的my.ini配置文件內的配置

    修改完配置文件以後須要先將服務端中止  從新啓動 才能生效

    修改了配置文件必定要重啓服務端


數據庫的基本操做
    庫  相似於文件夾
        增
            create database db1;
        查
            show databases;  查全部
            show create database db1;  查單個
        改
            alter database db1 charset='gbk';  修改編碼
        刪
            drop database db1;  刪庫
    表
        在建立表的時候 須要先指定庫
            指定庫:  use 庫名
            查看當前雖在的庫: select database()

        增
            create table userinfo(id int,name char);

        查
            show tables;  查看某個庫下面的全部的表
            show create table userinfo;
            desc userinfo;    <==> describe userinfo;
        改
            alter table userinfo modify name char(32);
        刪
            drop table userinfo;


    記錄
        先建立一個庫或者指定一個已經存在的庫
        切換到該庫下 建立表
        而後再操做記錄
        create database db1;
        create table userinfo(id int,name char(32),password int);

        增
            insert into userinfo values(1,'jason',123);  插入單條數據
            insert into userinfo values(1,'jason',123),(2,'egon',123),(3,'tank',123);  插入多條數據
        查
            select * from userinfo;  查詢全部的字段信息
            select name from userinfo;  查詢指定字段信息
            select id,name from userinfo where id=1 or name=tank;  帶有篩選條件的字段信息
        改
            update userinfo set name='kevin' where id=1;  修改數據的一個字段信息
            update userinfo set name='jason',password=666 where id=1;  修改數據的多個字段
        刪
            delete from userinfo where id =1;  指定刪符合條件的數據
            delete from userinfo;  將表中的數據所有刪除
相關文章
相關標籤/搜索