您好,登錄后才能下訂單哦!
1.RDBMS:關系型數據庫,如下功能:
數據庫創建、刪除、修改
創建表、刪除表、修改表
索引的創建、刪除
用戶和權限創建、修改、刪除
數據新增、刪除、修改
查詢
2.myslq屬于關系型數據庫,數據引擎命令如下:命令不區分大小寫
DML:Data Manapulate Language: 數據操作語言
INSERT, REPLACE, UPDATE, DELETE
DDL:Data Defination Lanuage: 數據定義語言
CREATE, ALTER, DROP
DCL:Data Control Language: 數據控制語言
GRANT, REVOKE
SELECT:查詢命令
3.mysql客戶端登入命令:
選項: -u: 用戶名,默認為root@localhost或root@127.0.0.1
用戶名格式:USERNAME@HOST
-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;
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 數據庫名稱];默認顯示當前數據
查看表的結構:DESC 表名;
DESC students;
8.刪除表:DROP TABLE 表名;
9.修改表:ALTER TABLE 表名
MODIFY:保留字段名稱,修改其他屬性
CHANGE:連字段都修改
ADD:添加字段
DROP:刪除字段
例如:對數據庫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:數據操作命令:
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;
如果不指定字段,將對所有字段賦值,如增加名字為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的用戶所有數據
DELETE FROM students WHERE Name='Amy';
SELECT * FROM students;
選擇:SELECT 字段 FROM 表名 WHERE 條件;
*: 所有字段
WHERE:沒有條件表示顯示所有行;
例如:選擇查看名字為Willow,并且只查看Name和Courses兩個字段的內容
SELECT Name,Courses FROM students Where Name='Willow';
11.創建用戶:
CREATE USER '用戶名'@'HOST' [IDENTIFIED BY '密碼'];
DROP USER '用戶名'@'HOST';
HOST:表示有IP,HOSTNAME,NETWORK,通配符
_:匹配任意單個字符, 172.16.0._
%:匹配任意字符;
user1@'%'代表用戶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'@'%';
授權willow用戶對mydb數據中所有表擁有所有權限
13.為用戶設定密碼:
13.1.mysql>SET PASSWORD FOR '用戶名'@'HOST'=PASSWORD('密碼');
mysql> FLUSH PRIVILEGES ; #刷新讓mysql數據庫重讀授權表
例如:為root@localhost用戶設定密碼為redhat
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('redhat');
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';
例如:為root@127.0.0.1用戶設定密碼為redhat
UPDATE user SET Password=PASSWORD('redhat') WHERE USER='root' AND Host='127.0.0.1';
13.4.建立一個root用戶擁有所有權限并且僅允許在1.1.1.0/24子網內連接mysql服務器
GRANT ALL PRIVILEGES ON *.* TO 'root'@'1.1.1.%' IDENTIFIED BY 'redhat';
FLUSH PRIVILEGES;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。