程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql常用命令小結

mysql常用命令小結

編輯:MySQL綜合教程

mysql常用命令小結


一、數據庫級操作

1、登陸mysql

常用的格式是 mysql -u user_name -p 按下回車後輸入密碼再次回車即可進入。

2、查看當前已經存在的所有數據庫

show databases; (注意,分號不可省略。少數命令可以忽略分號,但大部分的mysql命令都必須以分號結尾)

3、選擇數據庫

知道所有數據庫名稱後,需要選擇某個具體的數據庫進行操作,其命令為:

use database_name; (注意,這個命令是少數可以忽略分號的命令之一)

e.g. use students;

4、創建數據庫

create database database_name; (這裡可能需要root權限)

e.g. create database one; 這將創建名為one的數據庫。

5、刪除數據庫

drop database database_name;

二、表級操作

1、查看當前數據庫的所有表名

show tables;

2、查看某個表中的所有列名(屬性信息)

describe table_name;(也可以簡寫為:desc table_name;)

show columns from table_name;

show create table table_name;

3、查看表中的某一列

select column_1 from table_name;

若想查看某幾列則需要用逗號隔開列名,如:select column_1, column_2 from table_name;

也可以使用通配符* 查看所有列,如:select * from table_name;

4、創建表

create table table_name (column_name1 type constraint, column_name2 type constraint, ..., column_nameX type constraint, primary key (column_name));

這裡的constraint包括not null(非空)、unique(不能重復)等,是選填的,即可以沒有;

type包括char(n) varchar(n) int numeric float real double precision;(注意,mysql的字符串要用單引號括起來)

最後面的主鍵約束是必須要有的,primary key()括號裡面的屬性可以是一個,也可以是逗號隔開的幾個。

5、刪除表

drop table table_name; (這將徹底刪除此表,即show tables;命令不會再顯示它)

(注意與之相近的一個命令:delete from table_name; 這個命令只是清空該表,但是表模式仍然存在,即show tables;命令仍然顯示它)

6、向表中添加/刪除列名(屬性名)

alter table table_name add column_name type;

alter table table_name drop column_name;

7、修改表中的某個列

alter table table_name change old_col new_col type;

三、行級操作

1、向表中添加行(記錄,record)

insert into table_name values(....); (注意,括號裡面的值必須要對應創建表時列的前後順序,且用逗號隔開)

如果忘了列名的順序且嫌查看順序麻煩,可以用這種形式:

insert into table table_name(col_1, col_2, ... col_n) values (val_1, val_2, ... val_n);

這時只要val_n對應col_n就行了,而不用去管列名的真正順序。

2、刪除表中特定的行

delete from table_name where P;

P是一個條件,一般格式是:col_name = value,即屬性等於某個值的一行。

3、修改/更新行

update table_name set col_name = new_val where P;

四、用戶權限操作(一般需要root權限)

1、查看所有存在用戶

select user from mysql.user;

2、查看當前用戶

select user();

3、創建一個用戶

create user user_name identified by 'passwd';

這就創建了一個名為user_name的用戶,其可以使用密碼passwd登陸mysql,但是其權限僅限於登陸而已,登陸之後什麼也做不了。這就需要在賦予其相關權限之後才能進行某些操作。

如果沒有後面的 identified by 'passwd',將會創建一個無密碼的用戶,登陸是只需輸入 mysql -u user_name回車即可,不必再輸入密碼。

上面這條命令的效果和下面這條是一樣的(前提是用root登陸):

insert into mysql.user(Host,User,Password) values('localhost','user_name',password('passwd'));

他們本質上都是修改了mysql的元數據庫mysql中的表user,這個表記錄著mysql的所有用戶信息。注意到,第二條命令多了一個參數Host,這在第一條命令中是被默認的,但是在第二條中是必不可少的,否則將無法登陸本機的mysql。

當然Host的值是可以改動的,對於第二條命令,其改動是顯然的;對於第一條命令,如果不想選擇默認值'localhost',可以這樣:

create user_name@other_host identified by 'passwd';

4、賦予用戶相關權限

權限的范圍包括經典的“增刪改除”,以及代表所有的all等。整體格式如下:

grant privilege_list on database_name.table_name to user_name@'host_name';

privilege_list可以是select/update/delete/insert中的一個或幾個(逗號隔開),或者直接用all代替,代表所有權限;

on則將權限限定在某個數據庫的某個表上,這裡可以使用通配符*代表所有,如database_one.* 就意味著在database_one的所有表上都有權限,當然database_name也可以用*替代 ;

to後面跟的是user_name, 後面的@'host_name'可以省略,默認值為localhost,也可以使用通配符%來代表所有主機。需要注意的是,如果user_name本來不存在的話,這個命令將創建一個新的用戶,其名稱就是user_name, 這就是另一種創建用戶的方法,而且同時賦予了相關權限,我本人一般使用這種方法。需要密碼的話,可以在後面添上 identified by 'passwd',否則就是無密碼用戶。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved