您好,登錄后才能下訂單哦!
linux下關(guān)系型數(shù)據(jù)庫(kù)解釋及mysql基本命令詳解
1.RDBMS:關(guān)系型數(shù)據(jù)庫(kù),如下功能:
數(shù)據(jù)庫(kù)創(chuàng)建、刪除、修改
創(chuàng)建表、刪除表、修改表
索引的創(chuàng)建、刪除
用戶和權(quán)限創(chuàng)建、修改、刪除
數(shù)據(jù)新增、刪除、修改
查詢
2.myslq屬于關(guān)系型數(shù)據(jù)庫(kù),數(shù)據(jù)引擎命令如下:命令不區(qū)分大小寫
DML:Data Manapulate Language: 數(shù)據(jù)操作語言
INSERT, REPLACE, UPDATE, DELETE
DDL:Data Defination Lanuage: 數(shù)據(jù)定義語言
CREATE, ALTER, DROP
DCL:Data Control Language: 數(shù)據(jù)控制語言
GRANT, REVOKE
SELECT:查詢命令
3.mysql客戶端登入命令:
選項(xiàng): -u: 用戶名,默認(rèn)為root@localhost或root@127.0.0.1
用戶名格式:USERNAME@HOST
-p:用戶的密碼,默認(rèn)為空
-h:mysql服務(wù)器
例如:在mysql服務(wù)器中,本地登入服務(wù)器命令,以下兩種命令功能一樣:
3.1.mysql
3.2.mysql -u root -p -h localhost
mysql客戶端分為交互式和批處理模式
交互式模式又分為客戶端和服務(wù)器端命令類別
客戶端命令如:quit(或\q),可輸入help或\h查詢客戶端命令
服務(wù)器端命令:必須使用語句結(jié)束符,默認(rèn)為分號(hào);如SHOW DATABASES;
4.mysql名稱解釋;
4.1.mysqld服務(wù)偵聽在3306/tcp端口,屬主屬組均為mysql,數(shù)據(jù)存放在/var/lib/mysql/
4.2.關(guān)系數(shù)據(jù)庫(kù)對(duì)象:庫(kù),表,索引,視圖,約束,存儲(chǔ)過程,存儲(chǔ)函數(shù),觸發(fā)器,游標(biāo),用戶,權(quán)限,事務(wù)
4.3.表:由多個(gè)字段field或列column和多個(gè)行row組成
4.4.字段:由字段名稱,數(shù)據(jù)類型和類型修飾(限制)組成
4.5.數(shù)據(jù)類型分為字符,數(shù)值,日期時(shí)間,內(nèi)置等組成
字符:CHAR(n),VARCHAR(n),BINARY(n),VARBINARY(n),TEXT(n),BLOB(n)
CHAR(n): 字符 ,不區(qū)分大小寫
VARCHAR(n): 可變化字符 ,不區(qū)分大小寫
BINARY(n): 二進(jìn)制字符 ,區(qū)分大小寫
VARBINARY(n): 可變化二進(jìn)制字符,區(qū)分大小寫
TEXT(n):大對(duì)象數(shù)據(jù),不區(qū)分大小寫
BLOB(n):大對(duì)象二進(jìn)制數(shù)據(jù),區(qū)分大小寫
注意:n代表字符長(zhǎng)度
數(shù)值:精確數(shù)值和近似數(shù)值
精確數(shù)值:代表有×××和十進(jìn)制
整型:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT
TINYINT:1個(gè)字節(jié)
SMALLINT:2個(gè)字節(jié)
MEDIUMINT:3個(gè)字節(jié)
INT:4個(gè)字節(jié)
BIGINT:8個(gè)字節(jié)
修飾符:UNSIGNED,無符號(hào),只有0或正整數(shù)
不為空:NOT NULL
十進(jìn)制:DECIMAL
近似數(shù)值:代表有浮點(diǎn)型,FLOAT和DOUBLE
日期時(shí)間:DATE,TIME,DATETIME,STAMP
內(nèi)置: ENUM,SET
5.創(chuàng)建數(shù)據(jù)庫(kù)
格式:
CREATE DATABASE 數(shù)據(jù)庫(kù)名稱;
CREATE DATABASE [IF NOT EXISTS] 數(shù)據(jù)庫(kù)名稱;
例如:創(chuàng)建數(shù)據(jù)庫(kù)mydb
CREATE DATABASE mydb; #如果數(shù)據(jù)庫(kù)存在,將會(huì)報(bào)錯(cuò),可用下條語句
CREATE DATABASE IF NOT EXISTS mydb; #如果數(shù)據(jù)庫(kù)存在,將不會(huì)報(bào)錯(cuò)
查看剛創(chuàng)建的數(shù)據(jù)庫(kù)
SHOW DATABASES;
6.刪除數(shù)據(jù)庫(kù)
格式:DROP DATABASE [IF EXISTS] 數(shù)據(jù)庫(kù)名稱;
例如:刪除數(shù)據(jù)庫(kù)mydb
DROP DATABASE mydb;
7.創(chuàng)建表
格式:CREATE TABLE 表名(字段1,字段2,...); 需用USE 數(shù)據(jù)庫(kù)名 #切換默認(rèn)數(shù)據(jù)庫(kù)
CREATE TABLE 數(shù)據(jù)庫(kù)存.表名(字段1,字段2,...);
例如:創(chuàng)建表students
USE mydb; #切換數(shù)據(jù)庫(kù)mydb為當(dāng)前默認(rèn)數(shù)據(jù)庫(kù)
CREATE TABLE students(Name CHAR(15) NOT NULL,Age TINYINT UNSIGNED,Gender CHAR(1) NOT NULL); 查看庫(kù)中的表:SHOW TABLES [FROM 數(shù)據(jù)庫(kù)名稱];默認(rèn)顯示當(dāng)前數(shù)據(jù)
查看表的結(jié)構(gòu):DESC 表名;
DESC students;
8.刪除表:DROP TABLE 表名;
9.修改表:ALTER TABLE 表名
MODIFY:保留字段名稱,修改其他屬性
CHANGE:連字段都修改
ADD:添加字段
DROP:刪除字段
例如:對(duì)數(shù)據(jù)庫(kù)mydb中表students添加course字段
ALTER TABLE mydb.students ADD course VARCHAR(100);
將course字段名稱修改成Courses
ALTER TABLE students CHANGE course Courses VARCHAR(100) AFTER Name;
DESC studens;
10.DML:數(shù)據(jù)操作命令:
INSERT INTO 表名 (字段1,字段2,...) VALUES|VALUE ('字符串值', 數(shù)值,...);
INSERT INTO 表名 (字段1,字段2,...) VALUES|VALUE ('字符串1', 數(shù)值1,...),('字符串2',數(shù)值 2,...);
例如:插入Name字段為Willow和Amy及其Gender字段相關(guān)屬性內(nèi)容
INSERT INTO students (Name,Gender) VALUE ('Willow','M'),('Amy','F');
SELECT * FROM students;
如果不指定字段,將對(duì)所有字段賦值,如增加名字為Rob及其所有屬性
INSERT INTO students VALUE ('Rob','CCNP',26,'M');
SELECT * FROM students;
UPDATE 表名 SET 字段=值 [WHERE 條件];
例如:修改Name為willow用戶的Courses字段為RHCA;
update students SET Courses='RHCA' WHERE Name='Willow';
DELETE FROM 表名 WHERE 條件;
例如:刪除名字為Amy的用戶所有數(shù)據(jù)
DELETE FROM students WHERE Name='Amy';
SELECT * FROM students;
選擇:SELECT 字段 FROM 表名 WHERE 條件;
*: 所有字段
WHERE:沒有條件表示顯示所有行;
例如:選擇查看名字為Willow,并且只查看Name和Courses兩個(gè)字段的內(nèi)容
SELECT Name,Courses FROM students Where Name='Willow';
11.創(chuàng)建用戶:
CREATE USER '用戶名'@'HOST' [IDENTIFIED BY '密碼'];
DROP USER '用戶名'@'HOST';
HOST:表示有IP,HOSTNAME,NETWORK,通配符
_:匹配任意單個(gè)字符, 172.16.0._
%:匹配任意字符;
user1@'%'代表用戶user1用戶在所有主機(jī)上登入
12.DCL:數(shù)據(jù)控制命令
GRANT 權(quán)限1,權(quán)限2,... ON 數(shù)據(jù)庫(kù)名.表名 TO '用戶名'@'HOST' [IDENTIFIED BY '密碼'];
REVOKE pri1,pri2,... ON 數(shù)據(jù)庫(kù)名.表名 FROM '用戶名'@'HOST';
查看用戶的授權(quán):SHOW GRANTS FOR '用戶名'@'HOST';
ALL PRIVILEGES:代表所有權(quán)限的意思
例如:創(chuàng)建用戶willow在所有主機(jī)可登入到mysql服務(wù)器中的mydb數(shù)據(jù)庫(kù)
CREATE USER 'willow'@'%' IDENTIFIED BY 'redhat';
SHOW GRANTS FOR 'willow'@'%';
授權(quán)willow用戶對(duì)mydb數(shù)據(jù)中所有表?yè)碛兴袡?quán)限
13.為用戶設(shè)定密碼:
13.1.mysql>SET PASSWORD FOR '用戶名'@'HOST'=PASSWORD('密碼');
mysql> FLUSH PRIVILEGES ; #刷新讓mysql數(shù)據(jù)庫(kù)重讀授權(quán)表
例如:為root@localhost用戶設(shè)定密碼為redhat
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('redhat');
13.2.# mysqladmin -u用戶名 -hHOST -p password '密碼' #bash下命令設(shè)定密碼
13.3.mysql> UPDATE user SET Password=PASSWORD('密碼') WHERE USER='root' AND Host='127.0.0.1';
例如:為root@127.0.0.1用戶設(shè)定密碼為redhat
UPDATE user SET Password=PASSWORD('redhat') WHERE USER='root' AND Host='127.0.0.1';
13.4.建立一個(gè)root用戶擁有所有權(quán)限并且僅允許在1.1.1.0/24子網(wǎng)內(nèi)連接mysql服務(wù)器
GRANT ALL PRIVILEGES ON *.* TO 'root'@'1.1.1.%' IDENTIFIED BY 'redhat';
FLUSH PRIVILEGES;
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。