標籤: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基本命令詳解