MySQL資料庫基本操作

一、登錄資料庫

 

# mysql -u root -p -P 3306 -h localhost -S /data/3306/mysql.sock

 

選項: -u root #指定登錄用戶

 

-p 123456 #用密碼登錄,不建議在命令行打密碼,如果非要這樣用,記得#history –c 清除歷史記錄

 

   -P 端口號 #在指定端口號登錄

 

   -h 主機名 #登錄的主機

 

   -S 套接字文件位置   #指定登錄的套接字文件位置

 

下面操作的資料庫為MySQL多實例

 

二、創建資料庫用戶

 

1、mysql> create user 'wdd'@'192.168.131.%' identified by '123456'; 

 

 

2、 mysql> show grants; #查看當前用戶的授權

 

 

3、mysql> show grants for 'wdd'@'192.168.131.%';#查看指定用戶的授權

 

 

三、修改用戶密碼

 

1、# mysqladmin -uwdd -p123456 -S /data/3306/mysql.sock password '123';

 

 

2、進入MySQL登錄界面

 

# mysql -uwdd -p123 -S /data/3306/mysql.sock

 

mysql> set password=password('123456');    #修改自己的密碼

 

 

mysql> set password for 'wdd'@'192.168.131.%' =password('123456');

 

#修改指定用戶的登錄密碼

 

 

3、修改user表,必須得具有root權限

 

mysql> use mysql;

 

mysql> select user,host,password from user;   #查看用戶相關信息

 

 

mysql> update user set password=password('123') where host='localhost' and user='wdd';

 

 

四、查看資料庫和數據表

 

1、mysql> show databases;

 

 

2、mysql> use mysql;

 

mysql> show tables ;

 

 

五、創建資料庫

 

mysql> create database wdd;

 

 

六、創建數據表

 

create table 表名 (字段1 值,字段2 值 ……);

 

1、創建表books,設置序號、書名、作者、價格、發佈日期、說明,第幾集

 

mysql> use wdd;

 

mysql> create table books(

 

-> id int(10) unsigned not null auto_increment,

 

-> author char(20),

 

-> bookname char(50) not null,

 

-> price int(20) not null,

 

-> time year,

 

-> description char(100),

 

-> pagenum int(10),

 

-> primary key(id));

 

mysql> describe books;

 

 

2、不指定字段名稱,插入第一集的書籍。

 

mysql> insert into books values (1,"wdd","python",50,2015,"this is a good book",20);

 

3、同時插入多條數據(不指定集數,自動分配) auto_increment

 

mysql> insert into books (author,bookname,price,time,description,pagenum) values ('name1','php',50,2015,'good book',40)

 

mysql> insert into books (author,bookname,price,time,description,pagenum) values ('name2','ui',50,2015,'good book',30);

 

mysql> insert into books (author,bookname,price,time,description,pagenum) values ('name3','java',50,2015,'good book',30);

 

mysql> insert into books (author,bookname,price,time,description,pagenum) values ('name4','linux',50,2015,'good book',30);

 

mysql> insert into books (author,bookname,price,time,description,pagenum) values ('name5','mysql',50,2015,'good book',40);

 

mysql> select * from books;

 

 

4、修改第2集到第5集的作者

 

mysql> update books set author='zhangsan' where id=2;

 

mysql> update books set author='lisi' where id=3;

 

mysql> update books set author='wangwu' where id=4;

 

mysql> update books set author='zhaoliu' where id=5;

 

mysql> select * from books;

 

 

5、將第三集的價格改為0

 

mysql> update books set price=0 where id=3;

 

mysql> select * from books;

 

 

6、刪除價格為0的書籍

 

mysql> delete from books where price=0;

 

mysql> select * from books;

 

 

七、刪除數據表

 

mysql> drop table books;

 

八、刪除資料庫

 

drop table 表名;

 

mysql> drop database wdd;

 

mysql> show databases;

 

 

九、插入數據

 

insert into 表名 (字段1,字段2……) values (數據1,數據2……);

 

CREATE TABLE person(

 

id INT UNSIGNED NOT NULL AUTO_INCREMENT,

 

name CHAR(40) NOT NULL DEFAULT '',

 

age INT NOT NULL DEFAULT 0,

 

info CHAR(50) NULL,

 

PRIMARY KEY (id));

 

mysql> desc person;

 

 

在person表中,插入一條新記錄,id值為3,name值為Green,age值為21

mysql> insert into person (id,name,age) values (3,'Green',21);

 

在person表中,插入一條新記錄,id值為4,name值為Suse,age值為22,info值為dancer

 mysql> insert into person (id,name,age,info) values (4,'Suse',22,'dancer');

 

在person表中,插入一條新記錄,name值為Mary,age值為24

mysql> insert into person (name,age) values ('Mary',24);

 

在person表中,插入一條新記錄,name值為Willam,age值為20,info值為sports man:

mysql> insert into person (name,age,info) values ('Willam',20,'sports man');

 

在person表中,插入一條新記錄,name值為laura,age值為25

mysql> insert into person (name,age) values ('laura',25);    

 

在person表中,不指定插入列表,同時插入2條新記錄

mysql> insert into person values (8,'zhangsan',23,'handsome boy'), (9,'lisi',23,'student');

 

在person表中,在name、age和info字段指定插入值,同時插入3條新記錄

mysql> insert into person values (10,'jack',27,'teacher'),(11,'lusi',20,'boss'),(12,'zhaoliu',29,'super man');

 

mysql> select * from person;

 

 

十、查看數據

 

select 字段 from 表名;

 

mysql> select name,age,info from person;

 

 

十一、修改數據

 

update 表名 set 字段1 where 字段2

 

在person表中,更新id值為10的記錄,將age字段值改為15,將name字段值改為LiMing,

mysql> update person set name='LiMing'and age=15 where id=10;

 

在person表中,更新age值為10到12的記錄,將info字段值都改為student

mysql> update person set info='student' where id=10 or id=11 or id=12;

 

mysql> select * from person;

 

 

十二、刪除數據

 

delete from 表名 where 字段

 

在person表中,刪除id等於10的記錄

mysql> delete from person where id=10;

 

在person表中,使用DELETE語句同時刪除多條記錄,在前面UPDATE語句中將age字段值在11到12之間的記錄的info字段值修改為student,在這裡刪除這些記錄

mysql> delete from person where id=11 or id=12;

 

mysql> select * from person;

 

 

十三、修改字段

 

CREATE TABLE person(

 

id INT UNSIGNED NOT NULL AUTO_INCREMENT,

 

name CHAR(40) NOT NULL DEFAULT '',

 

age INT NOT NULL DEFAULT 0,

 

info CHAR(50) NULL,

 

PRIMARY KEY (id));

 

將數據表person改名為ps

mysql> alter table person rename ps;

 

將數據表ps中name字段的數據類型由CHAR(40)的修改成CHAR(50)

mysql> alter table ps modify name CHAR(50) NOT NULL DEFAULT '';

 

將數據表ps中的info字段名稱改為information,數據類型保持不變

mysql> alter table ps change info infomation CHAR(50) NULL;

 

將數據表ps中的information字段名稱改為info,同時將數據類型保持變為char(60)

mysql> alter table ps change infomation info CHAR(60) NULL;

 

數據表ps中添加一個字段time,輸入SQL語句如下:

mysql> alter table ps add time year;

 

在數據表ps中添加一個字段nian。輸入如下SQL語句:

mysql> alter table ps add nian year;

 

在數據表ps中name列後添加一個字段sex

mysql> alter table ps add sex char(10) after name;

 

刪除數據表ps表中的nian字段

mysql> alter table ps drop nian;

 

將age字段插入到sex字段後

 mysql> alter table ps modify age int(11) not null default 0 after sex;

 

註:如果希望插入的字段位於行首,可以用first,比如:

 

mysql> alter table ps modify age int(11) not null default 0 first;

 

十四、授權

 

grant 權限 on 資料庫.數據表 to '用戶'@'地址';

 

1使用GRANT語句創建一個新的用戶zhangsan,密碼為'grantpwd'。用戶zhangsan對所有的數據有查詢、插入權限。並授於GRANT權限

 

 mysql> grant select,insert on *.* to 'zhangsan'@'192.168.131.%' identified by 'grantpwd';

 

 mysql> show grants for 'zhangsan'@'192.168.131.%';

 

 

十五、取消權限

 

revoke 權限1,權限2 on 資料庫.數據表 from '用戶'@'地址';

 

1.取消zhangsan的create、drop、delete權限。

 

mysql> revoke create,drop,delete on *.* from 'zhangsan'@'192.168.131.%';

 

十六、查看權限

 

mysql> SHOW GRANTS FOR 'zhangsan'@'192.168.131.%';

You May Also Like