1. 程式人生 > >mysql day 01

mysql day 01

什麼是資料庫
    儲存資料的倉庫
MySQL特點
    1、關係型資料庫
      1、資料以 行和列(表) 的形式去儲存的
      2、表中行:一條記錄  列:一個欄位
      3、表和表之間的邏輯關聯叫關係
      2、示例
        1、關係型資料庫儲存
        表1、學生資訊表
      姓名    年齡   班級
      星矢     25    三班
      水冰月   23    六班
        2、非關係型資料庫儲存
          {"姓名":"星矢","年齡":25,"班級":"三班","班主任":"大空翼"}
          {"姓名":"水冰月","年齡":23,"班級":"六班","班主任":"鬆人"}     
   

     


2、MySQL安裝
  1、Ubuntu安裝MySQL服務
    1、安裝服務端
      sudo apt-get install mysql-server
    2、安裝客戶端
      sudo apt-get install mysql-client
    3、Ubuntu安裝軟體
      1、sudo apt-get install update
      2、sudo apt-get -f install
        作用 :修復依賴關係
 

   4、更改庫的預設字符集
       1、方法 :更改配置檔案
       2、步驟
          1、獲取root許可權
              sudo -i
          2、cd /etc/mysql/mysql.conf.d
          3、cp mysqld.cnf    mysqld.cnf.bak
          4、subl  mysqld.cnf
          5、在[mysqld]下的tmpdir = /tmp新增
                 character_set_server = utf8
          6、/etc/init.d/mysql restart
  

 

預設初始賬戶root,密碼為空

 

3、啟動和連線MySQL服務
  1、服務端啟動
    1、檢視服務狀態
      sudo /etc/init.d/mysql status
      sudo /etc/init.d/mysql start
      sudo /etc/init.d/mysql stop
      sudo /etc/init.d/mysql restart
      sudo /etc/init.d/mysql reload
  2、客戶端連線
    1、命令格式
      mysql -h主機地址 -u使用者名稱 -p密碼
      mysql -hlocalhost -uroot -p123456


      # 本地登入可省略 -h 選項
        mysql -uroot -p
4、基本SQL命令
  1、SQL命令的使用規則
    1、每條命令必須以 ; 結尾
    2、SQL命令不區分字母大小寫
    3、使用 \c 終止當前命令的執行
  2、庫的管理  
    1、庫基本操作
      1、檢視所有庫
        show databases;
      2、建立庫(指定字符集)
        create database 庫名 character set utf8;
      3、檢視建立庫的語句(檢視字符集)
        show create database 庫名;
      4、檢視當前所在庫
        select database();
      5、切換庫
        use 庫名;
      6、檢視庫中的表
        show tables;
      7、刪除庫
        drop database 庫名;

    3、練習
      1、建立庫 testdb,指定字符集為 utf8
        create database testdb character set utf8;
      7、檢視庫 testdb2 中的所有表
        show tables;
      8、刪除庫 testdb
        drop database testdb;
      9、刪除庫 testdb2
        drop database testdb2;
  3、表的管理
    1、表的基本操作
      1、建立表(別忘了選擇庫,指定字符集)
        create table 表名(
    欄位名 資料型別 default,
        欄位名 資料型別,
        欄位名 資料型別
    )character set utf8;

      2、檢視建立表的語句(字符集、儲存引擎)
        show create table 表名;
      3、查看錶結構
        desc 表名;
      4、刪除表
        drop table 表名;


  4、注意
    ???所有資料都是以檔案形式儲存在資料庫目錄下/var/lib/mysql
  5、表記錄管理
    1、插入(insert)
      1、insert into 表名 values(值1),(值2);
      2、insert into 表名(欄位1,欄位2) 
         values(值1),(值2);此方式可以對部分欄位插入而無需對一個值的所有欄位進行賦值(使用方法1的時候,遇到沒有值的可以使用null)(值1*2代表輸出值1的2倍值,可修改輸出引數值)
    2、查詢(select)
     select 欄位1,欄位2(若填*,則代表對所有欄位顯示) from 表名 where 條件;
   where 條件計算:

                數值型別:  >,>=,<,<=,=,!=

                字元型別: =,!=

 



7、資料型別
  1、數值型別
    1、整型
      1、int 大整型(4個位元組)
    取值範圍 :0 ~ (2**32 - 1) 42億多
      2、tinyint 微小整型(1個位元組)
        1、有符號(signed預設) : -128~127
    2、無符號(unsigned) : 0~255
      age tinyint unsigned,
      3、smallint 小整型(2個位元組)
      4、bigint 極大整型(8個位元組)
    2、浮點型
      1、float(4個位元組,最多顯示7個有效位)
        欄位名 float(m,n) m->總位數 n->小數位位數
    float(5,2) 取值範圍:-999.99 ~ 999.99
    ## m的值最大為7
      2、double
        欄位名 double(m,n)
      3、decimal(m,n)
        1、儲存空間(整數部分、小數部分分開儲存)
      規則:將9的倍數包裝成4個位元組

      餘數     位元組
        0        0
       1-2       1
       3-4       2
       5-6       3
       7-8       4
      例:decimal(19,9)
        整數部分:10/9=1餘1  4位元組+1位元組=5
        小數部分:9/9=1餘0   4位元組+0位元組=4
        總共 :9個位元組


  2、字元型別
    1、char :定長
      char(寬度) 寬度取值範圍:1 - 255
    2、varchar :變長
      varchar(寬度) 寬度取值範圍 :1 - 65535
    3、text / longtext(4G) /blob / longblob(二進位制)
    4、char 和 varchar的特點
      1、char :浪費儲存空間,效能高
      2、varchar :節省儲存空間,效能低
    5、字元型別的寬度和數值型別寬度的區別
      1、數值型別寬度為顯示寬度,只用於select查詢時顯示,和佔用儲存無關,可用zerofill檢視效果

      2、字元型別的寬度超過後無法儲存
  3、列舉型別
    1、單選enum
      sex enum(值1,值2,...)

插入的時候是"值1"
    2、多選set
      likes set(值1,值2,...)
      ## 插入記錄時 "值1,值2......"

 



簡述客戶端把資料儲存到資料庫伺服器上的過程???