mysql 基础(转)1

MYSQL命令大全

常见的MySQL命令大全


一、连接MySQL


        格式: mysql -h主机地址 -u用户名 -p用户密码


        1、例1:连接到本机上的MYSQL。


        首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>。


        2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:


        mysql -h110.110.110.110 -uroot -pabcd123


        (注:u与root可以不用加空格,其它也一样)


        3、退出MYSQL命令: exit (回车)。


        二、修改密码


        格式:mysqladmin -u用户名 -p旧密码 password 新密码


        1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令:


        mysqladmin -uroot -password ab12


        注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。


        2、例2:再将root的密码改为djg345。


        mysqladmin -uroot -pab12 password djg345


        三、增加新用户。(注意:和上面不同,下面的因为是MySQL环境中的命令,所以后面都带一个分号作为命令结束符)


        格式:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"


        例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:


        grant select,insert,update,


        delete on *.* to test2@localhost identified by \"abc\";


        如果你不想test2有密码,可以再打一个命令将密码消掉。


        grant select,insert,update,delete on mydb


        .* to test2@localhost identified by \"\";


        在上面讲了登录、增加用户、密码更改等问题。下面我们来看看MySQL中有关数据库方面的操作。注意:你必须首先登录到MySQL中,以下操作都是在MySQL的提示符下进行的,而且每个命令以分号结束。


1、MySQL常用命令


create database name; 创建数据库


use databasename; 选择数据库


drop database name 直接删除数据库,不提醒


show tables; 显示表


describe tablename; 表的详细描述


select 中加上distinct去除重复字段


mysqladmin drop database name 删除数据库前,有提示。


显示当前mysql版本和当前日期


select version(),current_date;


2、修改mysql中root的密码:


shell>mysql -u root -p


mysql> update user set password=password(”xueok654123″) where user=’root’;


mysql> flush privileges //刷新数据库


mysql>use dbname; 打开数据库:


mysql>show databases; 显示所有数据库


mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后


mysql>describe user; 显示表mysql数据库中user表的列信息);


3、grant


创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个


mysql> grant all privileges on *.* to user@localhost identified by ’something’ with


增加新用户


格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”


GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION;


GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;


删除授权:


mysql> revoke all privileges on *.* from root@”%”;


mysql> delete from user where user=”root” and host=”%”;


mysql> flush privileges;


创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb


mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@ it363.com identified by ‘ passwd’


重命名表:


mysql > alter table t1 rename t2;


4、mysqldump


备份数据库


shell> mysqldump -h host -u root -p dbname >dbname_backup.sql


恢复数据库


shell> mysqladmin -h myhost -u root -p create dbname


shell> mysqldump -h host -u root -p dbname < dbname_backup.sql


如果只想卸出建表指令,则命令如下:


shell> mysqladmin -u root -p -d databasename > a.sql


如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:


shell> mysqladmin -u root -p -t databasename > a.sql


那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?


   mysqldump -T./ phptest driver


其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver 表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。


5、可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。例如,如果在文件my_file.sql 中存放有查


询,可如下执行这些查询:


例如,如果您想将建表语句提前写在sql.txt中:


mysql > mysql -h myhost -u root -p database < sql.txt


1、安装环境:


      Windows XP


      Mysql 4.0.17 从     下次就需要用mysql -uroot -proot才可以登陆


    在远程或本机可以使用 mysql -h 172.5.1.183 -uroot 登陆,这个根据第二行的策略确定


    权限修改生效:


       1)net stop mysql


         net start mysql


       2)c:\mysql\bin\mysqladmin flush-privileges


       3)登陆mysql后,用flush privileges语句


6、创建数据库staffer


    create database staffer;


7、下面的语句在mysql环境在执行


    显示用户拥有权限的数据库        show databases;


    切换到staffer数据库        use staffer;


    显示当前数据库中有权限的表 show tables;


    显示表staffer的结构    desc staffer;


8、创建测试环境


    1)创建数据库staffer


      mysql> create database staffer


    2)创建表staffer,department,position,depart_pos


      create table s_position


      (


          id int not null auto_increment,


          name varchar(20) not null default '经理', #设定默认值


          description varchar(100),


          primary key PK_positon (id)   #设定主键


      );    


      create table department


      (


          id int not null auto_increment,


          name varchar(20) not null default '系统部', #设定默认值


          description varchar(100),


          primary key PK_department (id)   #设定主键


      );


      create table depart_pos


      (


          department_id int not null,


          position_id int not null,


          primary key PK_depart_pos (department_id,position_id)   #设定复和主键


      );


      create table staffer


      (


          id int not null auto_increment primary key,   #设定主键


          name varchar(20) not null default '无名氏',   #设定默认值


          department_id int not null,


          position_id int not null,


          unique (department_id,position_id)   #设定唯一值


      );


    3)删除


      mysql>


         drop table depart_pos;


         drop table department;


         drop table s_position;


         drop table staffer;


         drop database staffer;


9、修改结构


    mysql>


    #表position增加列test


    alter table position add(test char(10));


    #表position修改列test


    alter table position modify test char(20) not null;


    #表position修改列test默认值


    alter table position alter test set default 'system';


    #表position去掉test默认值


    alter table position alter test drop default;


    #表position去掉列test


    alter table position drop column test;


    #表depart_pos删除主键


    alter table depart_pos drop primary key;


    #表depart_pos增加主键


    alter table depart_pos add primary key PK_depart_pos (department_id,position_id);


10、操作数据


    #插入表department


    insert into department(name,description) values('系统部','系统部');


    insert into department(name,description) values('公关部','公关部');


    insert into department(name,description) values('客服部','客服部');


    insert into department(name,description) values('财务部','财务部');


    insert into department(name,description) values('测试部','测试部');


    #插入表s_position


    insert into s_position(name,description) values('总监','总监');


    insert into s_position(name,description) values('经理','经理');


    insert into s_position(name,description) values('普通员工','普通员工');


    #插入表depart_pos


    insert into depart_pos(department_id,position_id)


    select a.id department_id,b.id postion_id


    from department a,s_position b;


    #插入表staffer


    insert into staffer(name,department_id,position_id) values('陈达治',1,1);


    insert into staffer(name,department_id,position_id) values('李文宾',1,2);


    insert into staffer(name,department_id,position_id) values('马佳',1,3);


    insert into staffer(name,department_id,position_id) values('亢志强',5,1);


    insert into staffer(name,department_id,position_id) values('杨玉茹',4,1);


11、查询及删除操作


    #显示系统部的人员和职位


    select a.name,b.name department_name,c.name position_name


    from staffer a,department b,s_position c


    where a.department_id=b.id and a.position_id=c.id and b.name='系统部';


    #显示系统部的人数


    select count(*) from staffer a,department b


    where a.department_id=b.id and b.name='系统部'


    #显示各部门的人数


    select count(*) cou,b.name


    from staffer a,department b


    where a.department_id=b.id


    group by b.name;


    #删除客服部


    delete from department where name='客服部';


    #将财务部修改为财务一部


    update department set name='财务一部' where name='财务部';


12、备份和恢复


     备份数据库staffer


      c:\mysql\bin\mysqldump -uroot -proot staffer>e:\staffer.sql


      得到的staffer.sql是一个sql脚本,不包括建库的语句,所以你需要手工


      创建数据库才可以导入


     恢复数据库staffer,需要创建一个空库staffer


      c:\mysql\bin\mysql -uroot -proot staffer


      如果不希望后来手工创建staffer,可以


      c:\mysql\bin\mysqldump -uroot -proot --databases staffer>e:\staffer.sql


      mysql -uroot -proot >e:\staffer.sql


      但这样的话系统种就不能存在staffer库,且无法导入其他名字的数据库,


      当然你可以手工修改staffer.sql文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值