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.%';