插入更新刪除數據,索引,視圖,創建用戶,修改當前用戶密碼

插入:

INSERT INTO 表(字段1,字段2,字段3...)VALUES(值1,值2,值3...);

同時插入多條數據:

INSERT INTO 表(字段1,字段2,字段3...)VALUES(值1,值2,值3...),(值1,值2,值3...)...;

或者在命令行中 :

INSERT INTO 表(字段1,字段2,字段3...)

VALUES(值1,值2,值3...),

(值1,值2,值3...),

...

(值1,值2,值3...);

將查詢的結果插入表中:

INSERT INTO 表1(字段1,字段2)  SELECT (字段1,字段2..)FROM 表2;

更新:

UPDATE 表 SET 字段1=值1,字段2=值2... WHERE 條件;

刪除:

DELETE FROM 表 WHERE 條件;

刪除所有記錄:

DELETE FROM 表;

索引的優點:

1.創建唯一索引,可保證數據庫表中每一行數據的唯一性

2.可大大加快數據的查詢速度

3.在實現數據的參考完整性方面,可加速表和表之間的連接

4.在使用分組和排序字句進行數據查詢時,也可以顯著減少查詢中分組和排序的時間

索引的缺點:

1.創建和維護索引要耗費時間,並且隨着數據量的增加所耗費的時間也會增加

2.索引需要佔磁盤空間,除了數據表佔數據空間之外,每一個索引還要佔一定的物理空間,如果有大量索引,索引文件可能比數據文件更快達到最大尺寸文件

3.當對錶中數據進行增刪改的時候,索引也要動態的維護,這樣就降低了數據的維護速度

索引的分類:

1.普通索引和唯一索引

普通索引是MYSQL中的基本索引類型,允許在定義索引的列中插入重複值和空值

唯一索引,索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。主鍵索引是一種特殊的唯一索引,不允許有空值。

2.單列索引和組合索引

單列索引即一個索引只包含單個列,一個表可以有多個單列索引。

組合索引指在表的多個字段組合上創建的索引,只有在查詢條件中使用了這些字段的左邊字段時,索引纔會被使用。

3.全文索引

全文索引可以在 CHAR VARCHAR 或者TEXT類型的列上創建。MYSQL中只有MYISAM存儲引擎支持全文索引。

創建索引語法結構:
CREATE TABLE 表名(字段1.字段2.。。。UNIQUE|INDEX|FULLTEXT  INDEX 索引名稱(對應字段))
在已有表添加索引:
ALTER TABLE 表名 ADD 索引類型 索引名(字段);
創建索引:
CREATE 索引類型 索引名 ON 表名(字段);

刪除索引:

ALTER TABLE 表名 DROP 索引類型 索引名;

DROP 索引類型 索引名 ON 表名;

單表創建視圖:
CREATE VIEW 視圖名稱(視圖中的字段名1,字段2..) AS SELECT 字段1,字段2...FROM 表名 WHERE 條件;
多表創建視圖:
CREATE VIEW 視圖名稱(視圖中的字段名1,字段2..) AS SELECT 字段1,字段2...FROM 表1,表2 WHERE 條件(也可以使用連接查詢);

查看視圖基本信息:

DESCRIBE view_t;

SHOW TABLE STATS LIKE '視圖名'\G;

修改視圖:
視圖存在時修改,不存在時創建
CREATE OR REPLACE VIEW 視圖名(字段...) AS SELECT 字段1,字段2...FROM 表1,表2 WHERE 條件(也可以使用連接查詢);
ALTER 修改視圖:
ALTER VIEW 視圖名(字段名...) AS 查詢語句;

更新視圖:

UPDATE 視圖名 SET 字段=值

刪除某些數據:

DELETE FROM 視圖名 WHERE 條件;

刪除視圖:
DROP VIEW IF EXISTS 視圖名;

MYSQL中視圖和表的區別以及聯繫是什麼?

區別:

1.視圖是已經編譯好的SQL語句,是基於SQL語句的結果集的可視化的表,而表不是。

2.視圖沒有實際的物理記錄,而基本表有。

3.表是內容,視圖是窗口

4.表佔用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時對它進行修改,但視圖只能用創建的語句來修改

5.視圖是查看數據表的一種方法,可以查詢數據表中某些字段構成的數據,只是一些SQL語句的集合。從安全的角度來說,視圖可以防止用戶接觸數據表,因而用戶不知道表結構。

聯繫:

視圖是在基本表之上建立的表,它的結構和內容都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關係。

創建用戶語法:

1. CREATE USER '用戶名'@'host' IDENTIFIED BY '密碼'  創建的用戶無權限

2.GRANT 權限(all是所有權限) ON db.table(*.*表示所有) TO '用戶名'@'host' IDETIFIED BY '密碼'  WITH GRANT OPTION(賦予創建用戶權限);

刪除用戶:
DROP USER '用戶名'@'host';

修改當前用戶密碼 :

SET PASSWORD =password('新密碼');

修改其他用戶密碼:

SET PASSWORD FOR '用戶名'@'host' = password('新密碼');

MySQL忘記root密碼後的重置:

確保環境變量下mysql的path路徑爲C:\Program Files\MySQL\MySQL Server 5.7\bin 或自己安裝的mysql路徑下的\MySQL Server 5.7\bin

1.關閉MYSQL服務

net stop mysql57

2.找到C:/ProgramData/Mysql Server 5.7/my.ini文件

在[mysqld]這一行代碼下加入以下代碼

skip-grant-tables

3.啓動MYSQL服務:

net start mysql57

4.不通過密碼直接登錄MySQL

mysql -uroot -p回車 再回車

5.設置新密碼

update mysql.user set authentication_string=PASSWORD('新的密碼') where user='root';

6.再次將my.ini文件中添加的skip-grant-tables 代碼刪除,然後重啓MySQL服務,然後使用新密碼登錄。

聯機訪問:

GRANT 權限 ON 數據庫.表 TO '用戶名'@'%' IDENTIFIED BY '密碼' WITH MAX_CONNECTIONS_PER_HOUR 30;

遠程連接數據庫,用戶的host地址設置爲%, 遠程連接命令: mysql -u用戶名 -p密碼 -h 主機地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章