MySQL數據庫入門筆記


1.MySQL 相關概念介紹

    MySQL 為關系型數據庫(Relational Database Management System),“關系型”可以理解為“表格”的概念,一個關系型數據庫由一個或數個表格組成。

 

  • 表頭(header): 每一列的名稱;
  • 列(row): 具有相同數據類型的數據的集合;
  • 行(col): 每一行用來描述某個人/物的具體信息;
  • 值(value): 行的具體信息, 每個值必須與該列的數據類型相同;
  • 鍵(key): 表中用來識別某個特定的人/物的方法, 鍵的值在當前列中具有唯一性。

 

2.MySQL 腳本的基本組成

    MySQL 通過執行 SQL 腳本來完成對數據庫的操作, 該腳本由一條或多條 MySQL 語句(SQL 語句 + 擴展語句)組成, 保存時腳本文件后綴名一般為 .sql。在控制台下, MySQL 客戶端也可以對語句進行單句的執行而不用保存為.sql 文件。

  • 標識符:標識符用來命名一些對象, 如數據庫、表、列、變量等, 以便在腳本中的其他地方引用。 MySQL 標識符使用萬能命名規則:標識符由字母、數字或下划線(\_) 組成, 且第一個字符必須是字母或下划線。對於標識符是否區分大小寫取決於當前的操作系統, Windows 下是不敏感的,但對於大多數 linux\textbackslash unix 系統來說, 這些標識符大小寫是敏感的。
  • 關鍵字:關鍵字有自己特定的含義, 盡量避免作為標識符。
  • 語句:MySQL 語句是組成 MySQL 腳本的基本單位, 每條語句能完成特定的操作, 他是由 SQL 標准語句 + MySQL 擴展語句組成。
  • 函數:MySQL 函數用來實現數據庫操作的一些高級功能, 這些函數大致分為以下幾類: 字符串函數、數學函數、日期時間函數、搜索函數、加密函數、信息函數。

 

3.MySQL 中的數據類型

    MySQL 有三大類數據類型, 分別為數字、日期\時間、字符串, 這三大類中又更細致的划分了許多子類型:

  • 數字類型:

       整數: tinyint、 smallint、 mediumint、 int、 bigint;
       浮點數: float、 double、 real、 decimal;

  • 日期和時間:

       date、 time、 datetime、 timestamp、 year;

  • 字符串類型:

      字符串: char、 varchar;
      文本: tinytext、 text、 mediumtext、 longtext;
      二進制(可用來存儲圖片、音樂等): tinyblob、 blob、mediumblob、 longblob.

    關於數據類型,更多內容參考以下網頁:http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html

 

4.使用 MySQL 數據庫

 

  4.1 登錄 MySQL

      以管理員身份啟動命令提示符,通過net start mysql或者net start mysql57(后面數字為版本號)來啟動MySQL 服務。安裝的時候可以選擇服務名,我在安裝的時候服務名是MySQL57,在Windows下啟動服務名是不區分大小寫的,在命令提示符里運行后者就可以了。

  • 啟動:net start mysql
  • 停止:net stop mysql
  • 卸載:net delete mysql

      啟動服務后,輸入以下格式的命令登錄數據庫:mysql -h 主機名 -u 用戶名 -p;

  • -h : 該命令用於指定客戶端所要登錄的 MySQL 主機名, 登錄當前機器該參數可以省略;
  • -u : 所要登錄的用戶名;
  • -p : 告訴服務器將會使用一個密碼來登錄, 如果所要登錄的用戶名密碼為空, 可以忽略此選項.

      以登錄剛剛安裝在本機的 MySQL 數據庫為例, 在命令行下輸入mysql -u root -p按回車確認, 如果安裝正確且 MySQL 正在運行, 會得到以下響應:

          Enter password:

      若密碼存在, 輸入密碼登錄, 不存在則直接按回車登錄,默認 root 賬號是無密碼的。登錄成功后你將會看到 Welecome to the MySQL monitor... 的提示語。然后命令提示符會一直以 mysql>加一個閃爍的光標等待命令的輸入, 輸入 exitquit退出登錄。

 

  4.2 創建一個數據庫

 

      創建數據庫命令格式:create database 數據庫名 [其他選項];

      為了便於在命令提示符下顯示中文,在創建時通過character set gbk將數據庫字符編碼指定為gbk。創建成功時會得到 Query OK, 1 row affected(0.02sec) 的響應。

      注意: MySQL 語句以分號(;)作為語句的結束, 若在語句結尾不添加分號時, 命令提示符會以 -> 提示你繼續輸入(有個別特例, 但加分號是一定不會錯的);

      提示: 可以使用 show databases; 命令查看已經創建了哪些數據庫。

 

  4.3 選擇所要操作的數據庫

 

      4.3.1 查看當前數據庫的方式

  •  通過函數database()實現

            mysql> SELECT database();

  • 通過show tables實現

            mysql> show tables;
            注:注意查看列頭形式, 格式為:Tables_in_[db_name]

  • 通過status實現

            mysql> status;
            注:注意結果中的"Current database"信息

 

    4.3.2 修改當前數據庫

      要對一個數據庫進行操作, 必須先選擇該數據庫, 否則會提示錯誤:ERROR 1046(3D000): No database selected

      兩種方式對數據庫進行使用的選擇:
           一: 在登錄數據庫時指定, 命令: mysql -D 所選擇的數據庫名 -h 主機名 -u 用戶名 -p;
           二: 在登錄后使用 use 語句指定, 命令:use 數據庫名。use 語句可以不加分號,加上也不會出錯, 執行 “use + 已創建數據庫名” 來選擇創建的數據庫, 選擇成功后會提示: Database changed.

 

      4.3.3 查看已存在的數據庫和數據表

        使用show databases;語句可以查看所有的數據庫,然后使用use 數據庫名;選擇數據庫,使用show tables;可以查看當前數據庫(剛選擇的數據庫)中的所有數據表了。如果查看某個數據表中的數據,使用select * from 數據表名;就可以了。

 

  4.4 創建數據庫表

  • 創建數據庫表:create table 表名稱(列聲明);
  • 查看已經創建的表名稱:show tables;
  • 查看已創建的表的詳細信息:describe 表名;

      如下創建一個數據庫表:

create table students
(
    id int unsigned not null auto_increment primary key,
    name char(8) not null,
    sex char(4) not null,
    age tinyint unsigned not null,
    tel char(13) null default "_"
);

      指定多列形成復合主鍵,即不在單個變量后使用關鍵字primary key,而是在創建變量完成后,采用primary key(變量1, 變量2, ...)的形式,方式如下:

create table students
(
    id int unsigned not null auto_increment,
    name char(8) not null,
    sex char(4) not null,
    age tinyint unsigned not null,
    tel char(13) null default "_",
    primary key(id, name)
);

      可以通過任何文本編輯器將語句輸入好后保存為 createtable.sql 的文件中, 通過命令提示符下的文件重定向執行執行該腳本。打開命令提示符, 輸入:mysql -D samp_db -u root -p < createtable.sql.(提示: 1.如果連接遠程主機請加上 -h 指令; 2. createtable.sql 文件若不在當前工作目錄下需指定文件的完整路徑。 )

      create table tablename (columns);為創建數據庫表的命令,列的名稱以及該列的數據類型將在括號內完成。
      “id int unsigned not null auto_increment primary key”解釋:

  • “id”:為列名稱;
  • “int”:指定該列的數據類型為int,后面用"unsigned" 加以修飾,表示該類型是無符號型;
  •  “not null”:說明該列不能為空;
  •  “auto_incremen”:在整數列中使用,作用是插入數據時若該列為null,將自動產生一個比現存值更大的唯一標識符。在每張表中僅能有一個這樣的值且所在列必須為索引列;
  • “primary key”:表示該列是表的主鍵,值唯一。

 

  4.5向表中插入數據

      insert 語句可以用來將一行或多行數據插到數據庫表中, 使用的一般形式如下:

          insert [into] 表名 [(列名 1, 列名 2, 列名 3, ...)] values (值 1, 值 2, 值 3, ...);

      有時我們只需要插入部分數據, 或者不按照列的順序進行插入, 可以使用這樣的形式進行插入:
          insert into students (name, sex, age) values(“孫麗”, “女”, 21);

 

  4.6 查詢表中的數據

 

      select語句:select 列名稱 from 表名稱 [查詢條件];可以使用通配符*查詢表中所有內容。
      特定條件查詢:select 列名稱 from 表名稱 where 條件;

  • where 列明 = 值
  • =、 \textgreater 、 \textless 、 \textless=、 \textgreater=、 !=
  • is [not] null、 in、 like
  • or 和 and 組合查詢

 

  4.7 更新表中的數據

      update語句可以更新表中數據,命令格式:update 表名稱 set 列名稱= 新值 where 更新條件;

 

  4.8 刪除表中的數據
      delete語句用於刪除表中的數據,刪除滿足條件的一行或者多行數據,命令格式:delete from 表名稱 \ where 刪除條件;

 

  4.9 創建后表的修改
      alter table 語句用於創建后對表的修改。

  • 添加列:alter table 表名\ add 列名 \ 列數據類型\ [after 插入位置];
  • 修改列:alter table 表名\ change 列名稱 \ 列新名稱\ 新數據類型;
  • 刪除列:alter table 表名\ drop 列名稱;
  • 重命名表:alter table 表名 \ rename 新表名;
  • 刪除整張表:drop table 表名;
  • 刪除整個數據庫:drop database 數據庫名;

 

5. 附錄
    修改 root 用戶密碼:
        打開命令提示符,執行命令:mysqladmin -u root -p password 新密碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM