linux下關係型資料庫解釋及mysql基本命令詳解

來源:互聯網
上載者:User

標籤:linux下關係型資料庫解釋及mysql基本命令詳解

linux下關係型資料庫解釋及mysql基本命令詳解

1.RDBMS:關係型資料庫,如下功能:

 資料庫建立、刪除、修改

 建立表、刪除表、修改表

 索引的建立、刪除

 使用者和許可權建立、修改、刪除

 資料新增、刪除、修改

 查詢

2.myslq屬於關係型資料庫,資料引擎命令如下:命令不區分大小寫

DML:Data Manapulate Language: 資料操作語言

  INSERT, REPLACE, UPDATE, DELETE

DDL:Data Defination Lanuage: 資料定義語言 (Data Definition Language)

  CREATE, ALTER, DROP

DCL:Data Control Language: 資料控制語言

  GRANT, REVOKE

SELECT:查詢命令

3.mysql用戶端登入命令:

  選項: -u: 使用者名稱,預設為[email protected]或[email protected]

          使用者名稱格式:[email protected]

       -p:使用者的密碼,預設為空白

       -h:mysql伺服器

  例如:在mysql伺服器中,本地登入伺服器命令,以下兩種命令功能一樣:

     3.1.mysql

     3.2.mysql -u root -p -h localhost

  mysql用戶端分為互動式和批處理模式

     互動式模式又分為用戶端和伺服器端命令類別

      用戶端命令如:quit(或\q),可輸入help或\h查詢用戶端命令

      伺服器端命令:必須使用語句結束符,預設為分號;如SHOW DATABASES;

4.mysql名稱解釋;

 4.1.mysqld服務偵聽在3306/tcp連接埠,屬主屬組均為mysql,資料存放在/var/lib/mysql/

 4.2.關聯式資料庫對象:庫,表,索引,視圖,約束,預存程序,儲存函數,觸發器,遊標,使用者,許可權,事務

 4.3.表:由多個欄位field或列column和多個行row組成

 4.4.欄位:由欄位名稱,資料類型和類型修飾(限制)組成

 4.5.資料類型分為字元,數值,日期時間,內建等組成

   字元:CHAR(n),VARCHAR(n),BINARY(n),VARBINARY(n),TEXT(n),BLOB(n)

           CHAR(n):    字元  ,不區分大小寫

           VARCHAR(n): 可變化字元 ,不區分大小寫

           BINARY(n):  二進位字元 ,區分大小寫

           VARBINARY(n):  可變化二進位字元,區分大小寫

           TEXT(n):大對象資料,不區分大小寫

           BLOB(n):大對象位元據,區分大小寫

           注意:n代表字元長度

   數值:精確數值和近似數值

      精確數值:代表有整形和十進位

         整型:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT

            TINYINT:1個位元組

            SMALLINT:2個位元組

            MEDIUMINT:3個位元組

            INT:4個位元組

            BIGINT:8個位元組

             修飾符:UNSIGNED,無符號,只有0或正整數

             不為空白:NOT NULL

         十進位:DECIMAL

     近似數值:代表有浮點型,FLOAT和DOUBLE

   日期時間:DATE,TIME,DATETIME,STAMP

   內建:  ENUM,SET

5.建立資料庫

  格式:

   CREATE DATABASE 資料庫名稱; 

   CREATE DATABASE [IF NOT EXISTS] 資料庫名稱;

  例如:建立資料庫mydb

    CREATE DATABASE mydb;  #如果資料庫存在,將會報錯,可用下條語句

    CREATE DATABASE IF NOT EXISTS mydb; #如果資料庫存在,將不會報錯

    查看剛建立的資料庫

     SHOW DATABASES;

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/80/86/wKioL1dDyojAn0b0AACk8RKfGKY640.jpg" title="1.jpg" alt="wKioL1dDyojAn0b0AACk8RKfGKY640.jpg" />

6.刪除資料庫

    格式:DROP DATABASE [IF EXISTS] 資料庫名稱;

   例如:刪除資料庫mydb

    DROP DATABASE mydb;

7.建立表

  格式:CREATE TABLE 表名(欄位1,欄位2,...); 需用USE 資料庫名  #切換預設資料庫

     CREATE TABLE 資料庫存.表名(欄位1,欄位2,...);

例如:建立表students

USE mydb;   #切換資料庫mydb為當前預設資料庫

CREATE TABLE students(Name CHAR(15) NOT NULL,Age TINYINT UNSIGNED,Gender CHAR(1) NOT NULL);          查看庫中的表:SHOW TABLES [FROM 資料庫名稱];預設顯示當前資料

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/80/87/wKiom1dDye3QJ4JBAAFWOzXf_3g289.jpg" title="2.jpg" alt="wKiom1dDye3QJ4JBAAFWOzXf_3g289.jpg" />

查看錶的結構:DESC 表名;

        DESC students;

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/80/86/wKioL1dDzeOxcOEyAAHamM3FLas691.jpg" title="3.jpg" alt="wKioL1dDzeOxcOEyAAHamM3FLas691.jpg" />

        

8.刪除表:DROP TABLE 表名;

9.修改表:ALTER TABLE 表名 

         MODIFY:保留欄位名稱,修改其他屬性

         CHANGE:連欄位都修改

         ADD:添加欄位

         DROP:刪除欄位

例如:對資料庫mydb中表students添加course欄位

ALTER TABLE mydb.students ADD course VARCHAR(100);

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/80/8C/wKiom1dD5S2Sb9O9AAJkpZimcko774.jpg" title="4.jpg" alt="wKiom1dD5S2Sb9O9AAJkpZimcko774.jpg" />

 將course欄位名稱修改成Courses

ALTER TABLE students CHANGE course Courses VARCHAR(100) AFTER Name;

  DESC studens;

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/80/8A/wKioL1dD54SCZHPEAAFcQQL4wYA545.jpg" title="5.jpg" alt="wKioL1dD54SCZHPEAAFcQQL4wYA545.jpg" />


10.DML:資料操作命令:

 INSERT INTO 表名 (欄位1,欄位2,...) VALUES|VALUE (‘字串值‘, 數值,...);

 INSERT INTO 表名 (欄位1,欄位2,...) VALUES|VALUE (‘字串1‘, 數值1,...),(‘字串2‘,數值 2,...);

 例如:插入Name欄位為Willow和Amy及其Gender欄位相關屬性內容

  INSERT INTO students (Name,Gender) VALUE (‘Willow‘,‘M‘),(‘Amy‘,‘F‘);

  SELECT * FROM students;

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/80/8C/wKiom1dD5yKRWbdlAAIAy51_bRE491.jpg" title="2.jpg" alt="wKiom1dD5yKRWbdlAAIAy51_bRE491.jpg" />


 如果不指定欄位,將對所有欄位賦值,如增加名字為Rob及其所有屬性

  INSERT INTO students VALUE (‘Rob‘,‘CCNP‘,26,‘M‘);

  SELECT * FROM students;

 650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/80/8A/wKioL1dD6LmyTWHZAAD0Ko096M0605.jpg" title="1.jpg" alt="wKioL1dD6LmyTWHZAAD0Ko096M0605.jpg" />

UPDATE 表名 SET 欄位=值 [WHERE 條件]; 

 例如:修改Name為willow使用者的Courses欄位為RHCA; 

 update students SET Courses=‘RHCA‘ WHERE Name=‘Willow‘;

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/80/8C/wKiom1dD6xChcPH5AAF0uqSP83U668.jpg" title="6.jpg" alt="wKiom1dD6xChcPH5AAF0uqSP83U668.jpg" />

DELETE FROM 表名 WHERE 條件;

 例如:刪除名字為Amy的使用者所有資料

 DELETE FROM students WHERE Name=‘Amy‘;

 SELECT * FROM students;

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/8D/wKiom1dD8nOST0qoAAFhs7t97j8462.jpg" title="7.jpg" alt="wKiom1dD8nOST0qoAAFhs7t97j8462.jpg" />

選擇:SELECT 欄位 FROM 表名 WHERE 條件;

  *: 所有欄位

 WHERE:沒有條件表示顯示所有行;

例如:選擇查看名字為Willow,並且只查看Name和Courses兩個欄位的內容

 SELECT Name,Courses FROM students Where Name=‘Willow‘;

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/80/8C/wKioL1dD9a7Cxzn3AAGHSIacGV0043.jpg" title="8.jpg" alt="wKioL1dD9a7Cxzn3AAGHSIacGV0043.jpg" />

11.建立使用者:

CREATE USER ‘使用者名稱‘@‘HOST‘ [IDENTIFIED BY ‘密碼‘];

DROP USER ‘使用者名稱‘@‘HOST‘;

 HOST:表示有IP,HOSTNAME,NETWORK,萬用字元

    _:匹配任意單個字元, 172.16.0._

    %:匹配任一字元;

[email protected]‘%‘代表使用者user1使用者在所有主機上登入

12.DCL:資料控制命令

 GRANT 許可權1,許可權2,... ON 資料庫名.表名 TO ‘使用者名稱‘@‘HOST‘ [IDENTIFIED BY ‘密碼‘];

 REVOKE pri1,pri2,... ON 資料庫名.表名 FROM ‘使用者名稱‘@‘HOST‘;

 查看使用者的授權:SHOW GRANTS FOR ‘使用者名稱‘@‘HOST‘;

          ALL PRIVILEGES:代表所有許可權的意思

例如:建立使用者willow在所有主機可登入到mysql伺服器中的mydb資料庫

CREATE USER ‘willow‘@‘%‘ IDENTIFIED BY ‘redhat‘;

SHOW GRANTS FOR ‘willow‘@‘%‘;

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/80/90/wKiom1dD_eniKfFuAAGt7V6TBN4517.jpg" title="9.jpg" alt="wKiom1dD_eniKfFuAAGt7V6TBN4517.jpg" />授權willow使用者對mydb資料中所有表擁有所有許可權

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/80/90/wKiom1dD_s3SE5nlAAHgVCZL1Qg619.jpg" title="10.jpg" alt="wKiom1dD_s3SE5nlAAHgVCZL1Qg619.jpg" />

13.為使用者設定密碼:

 13.1.mysql>SET PASSWORD FOR ‘使用者名稱‘@‘HOST‘=PASSWORD(‘密碼‘);

    mysql> FLUSH PRIVILEGES ; #重新整理讓mysql資料庫重讀授權表

  例如:為[email protected]使用者設定密碼為redhat

  SET PASSWORD FOR ‘root‘@‘localhost‘=PASSWORD(‘redhat‘);


650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/DB/wKioL1dEDZvyS-qJAAMwNuy7w7w465.jpg" title="1.jpg" alt="wKioL1dEDZvyS-qJAAMwNuy7w7w465.jpg" />

 13.2.# mysqladmin -u使用者名稱 -hHOST -p password ‘密碼‘ #bash下命令設定密碼

   

 13.3.mysql> UPDATE user SET Password=PASSWORD(‘密碼‘) WHERE USER=‘root‘ AND            Host=‘127.0.0.1‘;

  例如:為[email protected]使用者設定密碼為redhat

 UPDATE user SET Password=PASSWORD(‘redhat‘) WHERE USER=‘root‘ AND Host=‘127.0.0.1‘;

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/80/DC/wKioL1dEE0fhHB98AAIpcMJCP8Y016.jpg" title="2.jpg" alt="wKioL1dEE0fhHB98AAIpcMJCP8Y016.jpg" />    13.4.建立一個root使用者擁有所有許可權並且僅允許在1.1.1.0/24子網內串連mysql伺服器

GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘1.1.1.%‘ IDENTIFIED BY ‘redhat‘;

FLUSH PRIVILEGES;

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/80/DE/wKiom1dEFi6Skk4oAADNRGs4JKY479.jpg" title="3.jpg" alt="wKiom1dEFi6Skk4oAADNRGs4JKY479.jpg" />

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/DC/wKioL1dEF2PgkviKAAGU7QQrsOQ756.jpg" title="4.jpg" alt="wKioL1dEF2PgkviKAAGU7QQrsOQ756.jpg" />


本文出自 “夏維柳” 部落格,請務必保留此出處http://willow.blog.51cto.com/6574604/1782514

linux下關係型資料庫解釋及mysql基本命令詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.