学习过程中的笔记,有不全的,还望大家补充。。。。
 
 
使用mysql:
mysql -u root -p密码
create 语句
创建数据库:mysql> create database wang;
创建带有默认字符集的库:
mysql> create database bing default character set utf8;
查看当前所在的库:mysql> select database( );
创建表:
mysql> create table t1(id int(10),name char(20),QQ int(15),mail char(20));
查看表结构:
mysql> desc t1;
mysql> desc t1\G
查看创建表的过程(可以得到建表的语句):
mysql> show create table t1;
drop语句:
删除数据库:
mysql> drop database wang;
删除表:
mysql> drop table t1;
alter语句:
修改表名:
mysql>alter table t1 rename to tt1;
修改格式:
mysql> desc tt1;看表结构
mysql> alter table tt1 modify id int(20) not null;
字段名:
mysql> desc tt1;
mysql> alter table tt1 change id uid int(20) not null;
添加字段:
mysql> desc tt1;
mysql> alter table tt1 add gongzi int(9);
删除字段:
mysql> desc tt1;
mysql> alter table tt1 drop gongzi;
 
添加到制定字段后:
mysql> desc tt1;
mysql> alter table tt1 add gongzi int(9)after name;
 
添加到最前面
mysql> desc tt1;
mysql> alter table tt1 add bianhao int(9) first;
 
insert语句:
mysql> desc tt1;
mysql> insert into tt1(uid,name,gongzi,QQ) values(1,'zhang',4500,554809032);
mysql> select * from tt1;
 
delete语句:
删除一条记录:
mysql> delete from tt1 where uid=1;
 
udpate语句:
mysql> update tt1 set QQ=33333 where id=3;
mysql> update tt1 set gongzi=8000 where id=2;
 
select语句:
mysql> select distinct name from tt1;
mysql> select distinct name,QQ from tt1;
mysql> select name,QQ from tt1 where name='tang';
 
查看当前时间:
mysql> select now();
 
统计个数:
mysql> select count(id) from tt1;
 
高于:
mysql> select gongzi from tt1 where gongzi>2500;
mysql> select gongzi,uid from tt1 where gongzi>2500;
 
平均值:
mysql> select avg(gongzi) from tt1;
 
排序:
mysql> select * from tt1 order by gongzi desc;降序
mysql> select * from tt1 order by gongzi asc;升序
mysql> select * from tt1 order by gongzi;升序
降序前两个:
mysql> select * from tt1 order by gongzi desc limit 2;
 
最小值:
mysql> select min(gongzi) from tt1;
最大值:
mysql> select max(gongzi) from tt1;
查看警告:
mysql> show warnings;
 
查看引擎:
mysql> show engines \G
 
数据库备份:
法一:直接备份数据库目录:/var/local/mysql/var
法二:使用mysqldump命令完成备份
使用mysqldump命令可以将数据库信息导出为SQL脚本文件,这样的脚本文件可以在不同版本的Mysql服务器上使用。
mysqldump命令可以完成全部数据库、制定数据库、数据表的备份。命令格式为:
mysqldump -u 用户名 -p [密码] [options] [数据库名] [表名] > /备份路径/备份文件名
 
如备份lu数据库:
[root@www~]# mysqldump -u root -p lu > ~/Desktop/mysql-lu.sql
备份数据库中lu中的user表、host表
[root@www~]#mysqldump -u root -p lu user host > mysql.host-user.sql
备份mysql服务器中所有数据库的内容(添加--all-databases选项)当需要备份的信息较多时,可添加--opt选项进行优化,以加快备份速度。
[root@www~]#mysqldump -u root -p --all-databases > mysql-all.sql
实际应用是作为计划任务,并打包。
 
恢复数据库:
mysql -u root -p [数据库名] < /备份路径/备份文件名
备份文件mysql-all.sql包括所有的(或多个)数据库信息时,执行mysql导入时可以不制定数据库名
[root@www~]#mysql -u root -p < mysql-all.sql
备份文件只包含单个数据库或单个数据表时,执行mysql导入时需要制定目标数据库的名称。
 
mysql户权限设置:授予权限、查看权限、撤销权限
1、授予权限:grant语句是用来创建用户并进行授权的最常用的语句。当制定的用户名不存在时,grant语句将会创建新的用户,否则用于修改用户信息。命令格式:
grant 权限列表  on 数据库名.表名 to 用户名@来源地址 [IDENTIFIED BY '密码']
权限列表:用ALL关键字代表全部权限,同时授予多个权限时,以逗号","分隔,例如:select,insert,update,delete
表名:可使用通配符"*"表示制定数据库中的所有数据表。
用户名@来源地址:用来设置谁能连接,能从哪里连接。用户名不能使用通配符,但使用连续的两个单引号('')时表示空字符串,可用于匹配任何用户。来源地址表示连接数据库的客户机地址,可以使用%作为通配符,匹配某个域内的所有地址(%.jacinto.com),或使用带掩码标记的网络地址(如192.168.1.0/24)
IDENTIFIED BY:用于设置用户连接数据库时使用的密码字符串,密码经过加密后存储于mysql库的user表中,省略“IDENTIFIED BY”部分时,新用户的密码将为空。
root@ly-virtual-machine:~/Desktop# mysql -u root -proot
如下例:
mysql> grant select on lu.tt1 to lpf@'localhost' identified by '123456'
 
2、查看权限:
法一:可以使用select语句对表进行查询;
法二:可以使用show语句进行查看,后者相对简单,格式如下:
mysql>show grants for 用户名@域名或ip;
mysql>show grants for admin3@'%.jacinto.com';
 
3、撤销权限:
revoke 权限列表 on 数据库名.表名 from 用户名@域名或IP
mysql>revoke all on auth.* from admin3@'%.jacinto.com';