當前位置:
首頁 > 最新 > MySQL語句大全,每天跟著操作一遍,不信你不懂!

MySQL語句大全,每天跟著操作一遍,不信你不懂!

圖書推薦

文章正文

整理了mysql語句,每天練習一遍,對你有幫助的!

MySQL服務的配置和使用

修改MySQL管理員的口令:mysqladmin –u root password密碼字元串

如:mysqldmin –u root password 111111

連接MySQL伺服器,使用命令:mysql [-h主機名或IP地址] [-u用戶名] [-p]

如:mysql –u root –p

如已有密碼需修改root密碼用命令: mysqladmin –u root –p password新密碼字元串

如:mysqladmin –u root –p password 111111

創建資料庫格式為:CREATE DATABASE 資料庫名稱;

如:mysql>create database abc;默認創建資料庫保存在/var/lib/mysql中

查看資料庫是 mysql>show abc;

選擇資料庫是 USE資料庫名稱;如:mysql>use abc;

刪除資料庫是 DROP DATABASE資料庫名稱; 如:mysql>drop database abc;

資料庫的創建和刪除

創建表是 CREATE TABLE表名稱(欄位1,欄位2,…[表級約束]) [TYPE=表類型];

其中欄位(1,2 )格式為:欄位名 欄位類型[欄位約束]

如創建一個表student,如下:

可用describe命令查看錶的結構。

默認表的類型為MYISAM,並在/var/lib/mysql/abc目錄下建立student.frm(表定義文件),student.MDY(數據文件),stedent.MYI(索引文件)。

複製表 CREATE TABLE新表名稱LIKE原表名稱;

如:mysql>create table xtable like student;

刪除表 DROP TABLE表名稱1[表名稱2…];

如:mysql> drop table xtale;

修改表 ALTER TABLE 表名稱 更改動作1[動作2];

動作有ADD(增加) DROP(刪除)CHANGE、MODIFY(更改欄位名和類型)RENAME

表中數據的插入、刪除和修改

插入記錄:INSERT INTO表名稱(欄位名1,欄位名2…

VALUES(欄位1的值,欄位2的值

如:mysql>insert into student (sno,sname,ssex,sbirthday,sdepa)

values(『0321001』,』Liu Tao』,dagault,19870201,』math』);

查看錶mysql>select * from student;

插入與前面相同的記錄,可用insert命令的縮寫格式,

如: mysql>insert into student values (『0321001』, 『Liu Tao』, default, 19870201, 『mth』);

如果欄位名列表中沒有給出表中的某些欄位,那麼這些欄位設置為默認值,

如:mysql>insert into student (sno,sname,sbirthday)

values(『0321002』,』Wang Jun』,1870112);

一個單獨的insert語句中可使用多個valuse字句,插入多條記錄,

如:mysql>insert into student values

(『0322001』, 『Zhang Liaoyun』, 『f』 1971102,』computer』),

(『0322002』, 『Li Ming』, 『t』 1971105,』computer』);

刪除記錄:DELETE FROM表名稱WHERE條件表達式;

如:mysql>delete from student where sno=』0321002』;

刪除student表中sno欄位值前4位為『0322』的記錄

如:mysql>delete from student where left (sno,4)=』0322』;

刪除所以記錄,可以不帶where字句

如:mysql>delete from student;

刪除所以記錄可以用命令truncate刪除表,然後重建表,所以比delete命令快

如:mysql>truncate table student;

修改記錄UPDATE表名稱SET欄位名1=欄位值1

WHERE條件表達式

如:mysql>update student set sbirthday=1920113, sdepa=』math』 where sno=』0321002』;

索引的創建與刪除

在創建表的同時創建索引

創建表時,可用INDEX字句或UNIQUE(欄位值必須惟一)字句創建索引

如:創建課程表course, 課程編號cno欄位為主鍵,課程名稱cname欄位創建一個名為can的索引

mysql>create table course(

cno varchar(5) not null,

cname varchar(30) not null,

teacher varchar(20),

primary key (cno),

index can (cname)

);

向已存在的表添加索引 CREATE [UNIQUE ] INDEX 索引名ON表名稱 (欄位名1[(長度)]);

如:mysql>create index sna on student (sname);

對於類型為CHAR和VARCHAR的欄位建立索引時還可指定長度值,類型為BLOB和TEXT的欄位索引時必須指定長度值。

如 mysql>create index sna on student (sname(10));

刪除索引 DROP INDEX 索引 ON表名稱;

如:mysql>drop index sna on student;

用戶的創建和刪除

初始化時有5個MySQL授權表,其中host、tables_priv和columnts_priv是空的,表user和db決定了MySQL默認的訪問規則。默認有mysql和test兩個資料庫。

授權表:user用戶從哪些主機可以連接到資料庫伺服器,以及對所以資料庫的訪問許可權(全局許可權)

db用戶可以使用哪些許可權,以及對資料庫執行哪些操作(資料庫級許可權)

host當表db中的host欄位值為空時,用戶從哪些主機可以連接到資料庫伺服器。

tables_priv連接的用戶可以訪問哪些表(表級許可權)

columnts_priv連接的用戶可以訪問哪些欄位 (欄位級許可權)

創建新用戶

以MySQL管理員連接到資料庫伺服器:#mysql –u root –p

創建新用戶guess並設置密碼,同時可以從任何主機連接資料庫伺服器:

mysql>insert into mysql.user (host,user,password)

values (『%』,』gusee』,password(『guest』));使用password()函數,密碼是加密的

重載MySQL授權表:mysql>flush privileges;

遠程客戶端連接資料庫伺服器 :#mysql –h 192.168.0.50 –u guess –p開放伺服器的TCP斷口3306

查看當前用戶可用資料庫:show database

刪除用戶

mysql>delete from mysql.user where user=』guest』;

mysql>flush privileges;重載MySQL授權表

更改用戶密碼

如:更改guset密碼為123456

mysql>update mysql.user set password=password(『123456』)

where user =』guset』;

mysql>flush privileges;

或者是 mysql>set password for guset@』%』=password(『123456』);

用戶許可權的設置

在表user、db和host中,所有欄位聲明為ENUM(『N』,』Y』),默認是『N』;

在表tables_priv和columns_priv中,許可權欄位聲明為SET類型

修改授權表中的訪問許可權有兩中方法,一是使用INSERT、UPDATE和DELETE等DML語句,

另一中是GRANT和GRVOKE語句

使用GRANT語句授權:

格式如下:

GRANT許可權列表[(欄位列表)] on資料庫名稱.表名稱

TO用戶名@域名或IP地址

[INDETIFIED BY 『密碼值』] [WITH CRANT OPTION];

授權哪個用戶能連接,從哪連接

如:授權用戶guest從任意主機連接資料庫伺服器,並具有完全訪問資料庫abc的許可權。

Mysql>grant all on abc.* to guset@』%』 identified by 『guest』

注意幾點:如指定用戶不存在,則創建該新用戶;

『許可權列表』處ALL表示授予全部許可權,USAGE表不授予任何許可權。

『資料庫名稱.表名稱』處可以使用通配符「*」。如「abc.*」表資料庫abc中所有表

『用戶名@域名或IP地址』設置誰能連,從哪連。用戶名 不能用通配符,但可以用『 』空字元串,表任何用戶;域名或IP地址可以用通配符「%」,使用是用單引號括起來。

授權用戶不同級別的訪問許可權

如:新建用戶tom,能從子網192.168.16.0訪問資料庫伺服器,可以讀取資料庫xsxk,並能修改表course中欄位teacher的值

mysql>grant select on xsxd.* to tom@』192.168.16.%』 indentifiend by 『123456』;

mysql>grant update(teacher) on xsxd.course to tom@』192.168.16.%』』

注意幾點:資料庫名稱.表名稱 用來設置許可權運用的級別,有全局的(*.*),指定資料庫的(xsxd.*)

和指定表的(xsxd.student);

欄位列表 設置許可權運用中指定的表中的哪些欄位,如update(cname,teacher)

許可權列表 指定的許可權與許可權運行的級別有關,如有寫許可權(FILE、PROCESS、RELOAD、SHUTDOWN)作為管理許可權用於全局級別;對於欄位級別只能指定SELECT、INSERT、UPDATE、REFERENCES

授予用戶管理許可權的權利

如:管理員授予擁護admin可以從本地連接資料庫伺服器,對資料庫xsxk具有完全訪問許可權,並可以

將擁有的許可權賦予其他用戶

mysql>grant all on xsxd.* to admin@localhost indentified by 『123456』 with grant option;

其中with grant option子句表示擁護擁有的許可權可以賦予其他用戶。

mysql>qrant select on xsxd.student to bill@localhost;授予bill用戶許可權

mysql>show grants for admin@localhost;查看用戶許可權

使用REVOKE語句撤權

格式如下:

REVOKE許可權列表[(欄位列表)] on資料庫名稱.表名稱

FROM用戶名@域名或IP地址

如:撤消用戶admin@localhost對資料庫xsxd的創建、刪除資料庫及表的許可權,不撤消用戶賦予其它用戶的許可權

mysql>revoke create,drop on xsxd.* from admin@localhost;

mysql>revoke grant option on xsxd.* from admin@localhost;

你花了·來閱讀,閱讀增長見識,

希望對你有幫助,點個再走吧~

以上是文章全部內容,有學習與經驗交流的可以加以下二維碼為好友,記得備註「碼農」。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 PHP自學中心 的精彩文章:

Nginx作為靜態資源web服務-控制瀏覽器緩存、防盜鏈

TAG:PHP自學中心 |