Day34 數據庫(一)數據庫簡介,MySQL的安裝與基本語法

1.數據庫

什麼是數據(Data)html

  數據就是描述事物的符號記錄,描述事物的符號能夠是數字,文字,圖片等,在計算機中要描述一個事物,就要抽取事物的特徵,組成一條條記錄.mysql

什麼是數據庫(DataBase,簡稱DB)linux

  數據庫就是存放數據的倉庫,只不過如今這個倉庫是在計算機存儲設備上,按照必定的格式存放ios

  數據庫中的數據具備較小的冗餘度,較高的數據獨立性和易擴展線sql

什麼是數據庫管理系統(Database Management System,簡稱DBMS)數據庫

  數據庫管理系統就是管理數據和數據庫的應用程序windows

數據庫管理數據庫分爲兩類:安全

  關係型數據庫架構

    數據和數據之間是有關聯和限制的socket

    關係型數據庫一般就是表結構,因此咱們在使用這一類數據庫時第一步須要肯定表的結構

    常見的關係型數據庫有:MySQL,Oracle,sqlite,db2,sql server

  非關係型數據庫

    一般都是以k,v鍵值的形式存儲數據

    常見的有:Redis,MongoDB(文檔型數據庫,很是接近關係型的非關係型數據庫),memcache

注意:在咱們Python的開發中,最常使用的是MySQL數據庫

 

 

2.初識MySQL

  MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關係型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS(Relational Database Management System,關係數據庫管理系統) 應用軟件。

  MySQL是一種關係數據庫管理系統,關係數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。
  MySQL所使用的 SQL 語言是用於訪問數據庫的最經常使用標準化語言。MySQL 軟件採用了雙受權政策,分爲社區版和商業版,因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,通常中小型網站的開發都選擇 MySQL 做爲網站數據庫。

MySQL數據庫內的數據內容分類

  首先一個數據庫由不一樣大小的庫組成,一個庫又由不一樣大小的表組成,一個表由不一樣大小的記錄組成

咱們能夠將數據庫類比成計算機內部的文件系統
庫   >>>   文件夾
表   >>>   文件
記錄 >>>   文件內一行行的數據叫作一條條的記錄

表頭:表格的第一行數據

字段:字段名+字段類型

 

3.MySQL的下載與安裝

mysql爲咱們提供開源的安裝在各個操做系統上的安裝包,包括ios,linux,windows。

mysql的安裝、啓動和基礎配置 —— linux版本 (https://www.cnblogs.com/Eva-J/articles/9664401.html)

mysql的安裝、啓動和基礎配置 —— mac版本 (https://www.cnblogs.com/Eva-J/articles/9664401.html)

mysql的安裝、啓動和基礎配置 —— windows版本 (https://www.cnblogs.com/Eva-J/articles/9669675.html)

 

4.使用MySQL前的一些小操做

  MySQL也是一個基於socket通訊的c/s架構的軟件,因此他也具備服務端和客戶端,服務端的啓動程序是bin文件夾下的mysqld,客戶端的啓動程序是bin文件夾下的mysql

  在運行MySQL前最好將bin目錄添加到系統環境變量下,這樣咱們能夠直接打開程序

  首先咱們使用管理員身份打開cmd終端

  服務端的打開:直接輸入mysqld

  客戶端的打開:重開一個cmd終端窗口,輸入mysql -h 127.0.0.1 -p 3306 -uroot -p,若是是本機IP和端口號可省略

  客戶端的退出:exit或者quit

  查看全部的數據庫:show databases

  查看某個進程:退出數據庫以後在終端輸入tasklist |findstr +名稱

  殺死某個進程:taskkill /F /PID+進程號

注意:1.MySQL在初始登陸的時候是沒有密碼的,直接回車便可,

   2.MySQL中的sql語句,是以分號結束的,不敲分號默認沒有輸完,客戶端還會繼續讓咱們輸入

製做環境變量
  將啓動文件所在的路徑添加到系統的環境變量中

  注意:配置完以後一段要從新啓動mysql服務端及cmd終端

將mysqld製做成系統服務
  製做系統服務 你的cmd終端必定要是管理員身份

  mysqld --install

修改密碼
  沒有密碼的狀況下
    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配置文件內的配置

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

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

 

4.MySQL內的基本操做

1. 操做文件夾(庫)
   增:create database db1 charset utf8;
   查:show databases; 查全部
    show create database db1; 查單個 改:alter database db1 charset latin1; 修改編碼 刪除: drop database db1; 刪庫
2. 操做文件(表) 先切換到文件夾下:use db1; 指定庫
           select database(); 查看當前所在的庫 增:create table t1(id int,name char); 查:show tables; 查看某個庫下面的全部的表
    show create table t1; 查看單個表的信息
    desc t1; 查看錶中的描述信息 改:alter table t1 modify name char(
3); alter table t1 change name name1 char(2); 刪:drop table t1; 3. 操做文件中的內容(記錄) 增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); 能夠插入多個 查:select * from t1; 查詢全部的字段信息
    select name from t1; 查詢全部字段的指定信息
    select name from t1 where id=1; 查詢帶有篩選條件的字段信息 改:update t1 set name
='sb' where id=2; 修改數據的一個字段信息,能夠修改多個 刪:delete from t1 where id=1; 刪除指定條件的數據
    delete from t1; 刪除表中的全部數據 清空表: delete
from t1; #若是有自增id,新增的數據,仍然是以刪除前的最後同樣做爲起始。 truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始, *auto_increment 表示:自增 *primary key 表示:約束(不能重複且不能爲空);加速查找

 

5.MySQL內的存儲引擎

什麼是存儲引擎

  不一樣的數據應該具備不一樣的處理機制

MySQL中的存儲引擎

  Innodb:默認的存儲引擎,支持事務,外鍵,行鎖,因此相對來講比較安全.查詢速度較myisam慢,可是更加的安全

  myisam:MySQL5.1版本以前的默認存儲引擎,不包括5.1,它是存儲記錄和文件的標準方法,它不是事務安全的,而且不支持外鍵

  memory:內存引擎(數據都存放在內存中),斷電或者關閉服務端,數據即消失

  blackhole:不管存什麼都立馬消失(黑洞)

 

各個不一樣的引擎生成的文件區別

  Innodb:表t1,生成兩個文件,第一個是表結構文件,第二個是真實數據

  myisam:表t2,生成兩個文件,第一個是表結構文件,第二個是真實數據,第三個是表索引

  memory:表t3,生成一個文件,只有一個表結構文件,它的真實數據存儲在內存中

  blackhole:表t4,生成一個文件,只有一個表結構文件,而且沒有真實數據,存進來什麼立馬消失

 

相關文章
相關標籤/搜索