MySQL基礎

MySQL

一、數據庫介紹

  1. 咱們本地存放的數據在文件中,和軟件開發目錄規範中,都是從本地讀取數據python

  2. 將全部的數據存放在一個第三方的公共位置,同一個如軟件凡是須要操做數據,就必須去這個共享的位置操做——這個第三方的公共存放數據的位置就是數據庫mysql

  3. 數據庫集羣:將同一個數據庫中的數據複製到不一樣的服務中備份sql

  4. MySQL數據庫:C/S架構軟件數據庫

    • MySQL數據庫本質上就是一個基於網絡通訊的軟件
    • 全部基於網路通訊的軟件,底層都是socket
    • 服務端:
      • 基於網絡通訊
      • 收發消息
    • 客戶端
      • 基於網絡通訊
      • 收發消息
    • 全部的語言若想操做數據庫,拿到服務端IP和port,都必須遵循一套標準的解析指令——SQL語句
  5. DBMS:數據庫管理系統網絡

    • 關係型數據庫:MySQL,Oracle,DB2,SQL,servser......
      • 表結構——字段和字段類型
    • 非關係數據庫:Redis,MongoDB......
      • 非關係數據庫通常以key:value的形式存儲

二、安裝數據庫

  1. 下載MySQL安裝包架構

  2. 解壓安裝包socket

  3. 添加bin目錄到系統環境變量中測試

  1. 以管理員身份打開cmd,輸入mysqld 此時會卡住在一個位置(這是服務端)ui

  2. 再新建一個cmd,輸入mysql 進入遊客模式測試是否正常進入(這是客戶端)編碼

  1. 退出數據庫客戶端,直接輸入quit或exit

  1. 在客戶端中

    1. 直接輸mysql是進入遊客模塊,全寫: mysql -h (ip地址) -P 3306 -p 密碼
    2. 輸入: mysql -uroot -p 密碼或者mysql -h 127.0.0.1 -P 3306 -uroot -p密碼 進入管理員登陸
    3. 接到遠程主機上的MYSQL
      假設遠程主機的IP爲:218.105.110.116,用戶名爲root,密碼爲abcd123456。
      則鍵入如下命令:mysql -h218.105.110.116 -uroot -p abcd123456;(注:u與root之間能夠不用加空格,其它也同樣)。
  2. 查看操做系統中是否已經啓動mysql服務端

    1. 查看:在cmd中直接輸入tasklist |findstr "mysql"
    2. 殺死mysqld進程:在緊接着後面cmd直接輸入taskkill /F /PID pid號(此處pid號爲上一步查看的pid號)
  3. 每次都須要打開服務端再去開客戶端太過麻煩,咱們須要將服務端製做系統服務

    1. 必須將已啓動的mysqld服務端cmd關閉
    2. 殺死已經啓動過的mysqld進程(pid)(也能夠直接輸入net stop mysql 關閉服務端)
    3. 管理員權限下在cmd中輸入mysql --install ——>安裝mysqld系統服務
    4. 管理員權限下在cmd中輸入net start mysql 打開服務端
  4. 修改密碼

    1. 客戶端默認沒有密碼的狀況下,設置密碼
      • cmd>>>: mysqladmin -uroot password 新密碼
    2. 有密碼的狀況下修改密碼
      • cmd>>>: mysqladmin -uroot -p原密碼 password修改的密碼
  5. 破解密碼

    1. 關閉服務端(管理員權限打開cmd,輸入net stop mysql
    2. 管理員權限下,cmd輸入,mysqld --skip-grant-tables
    3. 從新打開一個cmd進入客戶端模式:
      1. 進入遊客模式,直接輸入mysql
      2. 再輸入update mysql.user set password=password('修改的新密碼') where user="root";(記得加分號)
    4. 從新啓動服務端
      1. 管理員權限打開cmd
      2. 先kill掉服務端的進程(輸入net stop mysql
      3. 再打開服務端(輸入net start mysql
  6. 設置配置文件(客戶端輸入\s查看配置)

    1. 找到mysql目錄,D:\mysql-5.6.40-winx64

    2. 建立一個名爲 「my.ini」 的文件,這個是mysql的配置文件

    3. 在文件中粘貼如下內容

      [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
    4. 從新啓動mysql服務

三、數據庫基本操做(數據庫命令後都要加分號)

  1. 庫的操做——相似於文件夾

    1. 增:
      • 語法:create database 庫名;
      • 例:create database db1;
    2. 查:
      • 語法:show databases; # 查看全部的庫
      • 語法:show create database 庫名; # 查看庫名中的信息
      • 例:show create database db1;
    3. 改:
      • 語法:alter database 庫名 charset=「字符編碼類型」;
      • 例:alter database db1 charset=「utf8」;(注意數據庫中utf8不能加-)
    4. 刪:
      • 語法:drop database 庫名;
      • 例:drop database db1;
  2. 表的操做——>相似於文件

    操做表前須要切換到指定的庫

    語法:use 庫名;

    例:use db1;

    select database(); # 查看當前所在的庫

    1. 增:

      varchar與char 都是字符串類型,varchar(指定長度)

      • 語法:create table 表名(字段名 字段類型);
      • 例:create table text1(name varchar(20), age int(11));
    2. 查:

      • 查看當前庫中全部的表:show tables;
      • 查看錶結構:desc text1;
    3. 改:

      • 語法:alter table 表名 modify 字段名 字段類型;
      • 例:alter table text1 modify name varchar(28);
    4. 刪:

      • 語法:drop table 表名;
      • drop table text1;
  3. 記錄的操做——相似於文件中的一行行數據

    1. 增:

      • 語法:insert into 表名 values('字段類型的數據1',字段類型的數據2);
      • 語法:insert into 表名(字段名) values(字段名對應的值);
      • 例:insert into text1 values('shen', 18); #插入一條
      • 例:insert into text1(name,age) values('shen', 18);
      • 例:insert into text1 values('shen', 18),('vikey', 20); # 插入兩條
    2. 查:

      *:指的是全部

      • 語法:select * from 表名; # 查看錶中全部的數據
      • 例:select * from text1;
      • 語法:select * from 表名 where 條件; # 查看錶中全部的條件成立時的條件數據
      • 例:select * from text1 where name=’shen‘
      • 語法:select 字段A from 表名 where 條件; # 查看條件成立時字段A的數據
      • 例:select age form text1 where name=’shen‘;
      • 語法:select 字段A from 表名; # 查看全部的字段A
      • 例:select name from text1;
    3. 改:

      • 語法:update 表名 set 字段名=字段值 where 條件; # 若條件成立,則修改爲功
      • 例:update text1 set name='tate' where age=18;
    4. 刪:

      • 語法:delete from 表名;# 清空表記錄,不提交,可恢復,能夠用where條件刪除
      • 例:delete from text1;
      • 例:delete from text1 where id=1;
      • 語法:truncate table 表名; # 刪除不可恢復,不可用where條件刪除
      • 例:truncate table text1;
相關文章
相關標籤/搜索