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;
你花了·來閱讀,閱讀增長見識,
希望對你有幫助,點個再走吧~
以上是文章全部內容,有學習與經驗交流的可以加以下二維碼為好友,記得備註「碼農」。


TAG:PHP自學中心 |