mysql常用命令小結,mysql常用命令

來源:互聯網
上載者:User

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_nameset 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',否則就是無密碼使用者。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.