mysql常用基础命令

mysql基础实用命令
登录mysql,如果没有密码直接mysql就行了,如果有密码 mysql -u root -p
创建密码

mysqladmin -u root password '123456'


登录后创建或修改密码 localhost可以写为127.0.0.1或主机名'test.centos.com'   

mysql> set password for 'root'@ 'localhost'= password ( '112233');    或
mysql> update mysql. user set password=password( '654321') where user= 'root' and host= 'localhost';

#注意,如果不加where和后面的参数,所有的用户密码都被改了;password=后面不加password的话密码将以明文显示.

如果在家目录中建立一个隐藏文件叫.my.cnf

vim .my.cnf
[client]
user=root
password=654321

之后你再登录就直接使用mysql就可以登录服务器了。

刷新
mysql> flush privileges;


查看默认的用户

mysql> select host, user,password from mysql. user;
默认有3个root账户,和2个匿名账户

将这两个匿名用户删除

mysql> delete from mysql. user where user= '';
mysql> drop user ''@localhost;


授权访问.建立一个用户root,host为%表示来自任何主机,都可以使用密码654321连接.这样做很危险.

mysql> grant all privileges on *.* to root@ '%' identified by '654321';
mysql> grant all privileges on *.* to maoxian@ '192.168.81.129' identified by '654321';
在192.168.81.129机器上可以登录
[root@test1 ~]# mysql -u maoxian -h 192.168.81.128 -p


创建数据库,悲剧的是我老是将database错打成datebase.

mysql> create database maoxiandb;        //创建数据库.
mysql> show databases;                       //查看所有数据库.
mysql> drop database maoxiandb;          //删除数据库.
mysql> use maoxiandb;                         //使用(进入)数据库
mysql> show tables;                             //查看该数据库中的所有表.


创建表.
下面创建一个具有三列的表。id 列为PRIMARY KEY,其余两列组成一个索引:

create table name(
id int not null auto_increment,
first_name varchar(30) not null,
last_name     varchar(30) not null,
primary key (id),
index (last_name,first_name)
);


查看表信息.

mysql> desc name;

向表中插入信息.

mysql> insert into name (first_name,last_name) values ( 'mao', 'xian') ;


查看表中数据.

mysql> select * from name;
mysql> select * from name where first_name= 'xian';
mysql> select * from name where first_name= 'xian' and last_name= 'mao';

排序 ORDER BY clause
ASC  升序(默认)  
DESC  降序

mysql> select * from name order by id desc;


限定显示前多少行
LIMIT n 表示显示前n行

mysql> select * from name limit 1;
mysql> select * from name limit 2,10; 表示跳过前2行,显示后面10行信息


消除重复行
DISTINCTF放在SELECT后面,就不显示重复的行了.

mysql> select distinct * from name;


统计,分组 GROUP BY.

mysql> select first_name, count(*) from name;     // count(*)表示统计多少行.
mysql> select first_name, count(*) from name group by first_name;


修改显示出来的字段名.

mysql> select first_name from name;
mysql> select first_name as first from name;


设置使用变量

mysql> set @first= 'mao';
mysql> select first_name from name where first_name=@first;


修改表中的信息

mysql> update name set first_name= 'xian';    //修改所有first_name为xian.
mysql> update name set first_name= 'mao' limit 2;    //修改前两行first_name为mao.
mysql> update name set first_name= 'mao' where last_name= 'xian';    //修改last_name为xian的行中的first_name为mao.


删除表中的数据

mysql> delete from name where id=1;    //删除id为1的行
mysql> delete from name where first_name= 'xian';    //删除first_name为xian的所有行


删除表

mysql> drop table name ;        //删除表,删除了就找不回来了.切忌!
mysql> drop table if exists name;


创建用户

mysql> create user maoxian@ 'localhost' identified by '654321';
localhost可以用%表示任意主机,此时用户具有的权限非常低

 

对用户做访问控制
mysql> grant create on maoxiandb.* to 'maoxian'@ 'loaclhost' ;
给maoxian删除的权限
mysql> grant drop on maoxiandb.* to 'maoxian'@ 'localhost';
maoxian的权限是叠加的,如果你给他创建的权限,再给他删除的权限,此时他就具有这俩个权限了。
给maoxian查询的权限
mysql> grant select on maoxiandb.* to 'maoxian'@ 'localhost';
收回 SELECT权限
mysql> revoke select on maoxiandb.* from 'maoxian'@ 'localhost';

 

你可能感兴趣的:(mysql,数据库,常用命令,基本操作,实用命令)