MySQL常用命令

  •  MySQL常用命令

create database name; 创建数据库

use databasename; 选择数据库

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

show tables; 显示表

describe tablename; 表的详细描述

select中加上distinct 去除重复字段

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

在 mysql中select top用法和 mssqlserver有所区别。若在mysql中实现select top

功能得用:select * from tablename limit M,N, 这里M 表示从(M+1)条记录开始,N 表示返回的记录条数

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

select version(),current_date;

 

  • 修改 mysql 中 root 的密码:

mysql>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表的列信息);

 

  • 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 *.*TOmonty@”%” 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;

 

  • 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 指令。

 

  • 可将查询存储在一个文件中并告诉 mysql 从文件中读取查询而不是等待键盘输入。

可利用外壳程序键入重定向实用程序来完成这项工作。例如,如果在文件 my_file.sql 中存放有查询,可如下执行这些查询:

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

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

 

  • 创建数据库 staffer

create database staffer;

 

  • 下面的语句在mysql 环境在执行

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

切换到staffer 数据库 use staffer;

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

显示表staffer 的结构 desc staffer;

 

  • 创建测试环境

1)创建数据库 staffer

mysql> create database staffer

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

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;

 

  • 修改结构alter 命令

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);

 

  • 操作数据 insert 命令

#插入表 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);

 

  • 查询及删除操作 select、delete 命令

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

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=‘财务部’;

 

  • 备份和恢复

备份数据库 staffer

c:\mysql\bin\mysqldump -u root -p root staffer>e:\staffer.sql

得到的 staffer.sql 是一个 sql 脚本

 

不包括建库的语句,所以你需要手工创建数据库才可以导入

 

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

c:\mysql\bin\mysql -uroot -proot staffer<staffer.sql

 

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

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

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

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值