/ 中存储网

MySQL 常用命令收集

2014-07-13 16:37:53 来源:中存储网
   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
  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:mysqlbinmysqldump -uroot -proot staffer>e:staffer.sql
  得到的staffer.sql是一个sql脚本,不包括建库的语句,所以你需要手工
  创建数据库才可以导入
  恢复数据库staffer,需要创建一个空库staffer
  c:mysqlbinmysql -uroot -proot staffer<staffer.sql
  如果不希望后来手工创建staffer,可以
  c:mysqlbinmysqldump -uroot -proot --databases staffer>e:staffer.sql
  mysql -uroot -proot >e:staffer.sql
  但这样的话系统种就不能存在staffer库,且无法导入其他名字的数据库,
  当然你可以手工修改staffer.sql文件
  13、从文本向数据库导入数据
  1)使用工具c:mysqlbinmysqlimport
  这个工具的作用是将文件导入到和去掉文件扩展名名字相同的表里,如
  staffer.txt,staffer都是导入到staffer表中