Windows下使用命令行操作MySQL数据库

一、运行数据库

1、启动服务:net start mysql

2、连接数据库:

mysql -h[IP地址] -u [数据库] -p;
mysql -u [数据库] -p;--如:mysql -u root -p;
--   mysql -h127.0.0.1 -u root -p;

二、查看

1、查看数据库:show databases

2、查看表:show tables

--先选择数据库
USE [数据库]
USE root--查看表SHOW TABLES;

3、查看表中的列:

SHOW columns from [表名];
SHOW columns from db;describe [表名];
describe db;--我感觉两种方式是一样的


4、查看数据库的状态:

SELECT host,user FROM MYSQL.USER

5、查看用户:

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

三、新建

1、创建数据库:

--创建数据库
CREATE DATABASE [数据库名];
CREATE SCHEMA [数据库名] default character set utf8 collate utf8_general_ci;--采用create schema和create database创建数据库的效果一样,具体区别还没研究。

2、创建用户:

CREATE USER 'userName'@'%' IDENTIFIED BY 'password';
CREATE USER 'userName'@'localhost' IDENTIFIED BY 'password'; --本地连接CREATE USER 'userName'@'host' IDENTIFIED BY 'password';
/*host - 指定该用户在哪个主机上可以登陆,此处的"localhost",是指该用户只能在本地登录,
不能在另外一台机器上远程登录,如果想远程登录的话,将"localhost"改为"%",
表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;*/

3、创建表:

DROP TABLE IF EXISTS `表名`;//有则删表
CREATE TABLE `表名` (`字段1` varchar(10) PRIMARY KEY NOT NULL COMMENT '字段描述',`字段2` varchar(10) DEFAULT NULL COMMENT '字段描述',`字段3` varchar(10) DEFAULT NULL COMMENT '字段描述'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='表描述';

四、添加

1、导入.sql文件

--导入SQL文件
SOURCE d:/mysql.sql;
--应该也可以
mysql -uroot -p密码 < c:\sudu.sql

2、插入数据

--插入数据
INSERT INTO [表名] VALUES("字段1","字段2"······);--以文本方式将数据插入表
LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE 表名;

3、导入.txt文件

1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\n来代替.例:3 rose 飞数科技1 1976-10-104 mike 飞数科技2 1975-12-23假设你把这两组数据存为速度sudu.txt文件,放在c盘根目录下。2、数据传入命令 load data local infile "c:\sudu.txt" into table 表名;注意:你最好将文件复制到\mysql\bin目录下,并且要先用use命令打表所在的库。

五、删除

1、删除用户

--删除用户
DELETE FROM mysql.user WHERE user='tester'; 
DROP USER 'userName'@'host';

2、删除数据库

--删除数据库
DROP DATABASE db;

3、删除表

--删除表
DROP TABLE [表名];

4、清空表数据

--清空表数据
DELECT FROM [表名];

六、修改

1、修改密码

--格式;
MYSQLADMIN -u [用户名] -p [旧密码] password [新密码];UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root';--记得刷新--例如:
MYSQLADMIN -u root -password 1234;  --给root加个密码
MYSQLADMIN -u root -p 1234 password abcd;

2、修改表

--增加列
alter table [表名] add [列名] char(100) null;--删除列
alter table [表名] drop column [列明];--修改列数据类型
ALTER TABLE [表名] ALTER COLUMN [列名] [类型];--改表名
rename table [旧表名] to [新表名];ALTER TABLE table_name ADD column_name datatype   增加表中的列
ALTER TABLE table_name  DROP COLUMN column_name   删除表中的列
ALTER TABLE table_name ALTER COLUMN column_name datatype   改变表中的列的数据类型

3、修改表中数据

UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';

七、授权

--授权test用户有testDB数据库的某一部分权限:
GRANT select,update ON testDB.* TO test@'%' IDENTIFIED BY 'password';
--授权test用户有testDB数据库的所有操作权限:
GRANT all PRIVILEGES ON testDB.* TO 'test'@'%' IDENTIFIED BY 'password';
--授权test用户拥有所有数据库的某些权限:
GRANT select,delete,update,create,drop ON *.* TO 'test'@'%' IDENTIFIED BY 'password'

八、备份数据

1、备份数据库

--备份数据库
MYSQLDUMP -u [用户名] -p [密码] [数据库] > [路径/文件名.sql];
MYSQLDUMP -u [用户名] -p -d --add-drop-table [数据库] > [路径/文件名.sql];--/   -d 没有数据 --add-drop-table 在每个语句前加上drop table **mysqldump -up[用户名] -p --default-character-set=latin1 --set-charset=gbk --skip-opt [数据库]> [路径/文件名.sql];

2、备份表

--备份表
MYSQLDUMP -u [用户名] -p [密码] [数据库] > [路径/文件名.sql];

九、其他

flush  privileges;--立即启用修改,刷新revoke all on *.* from tester;--取消用户所有数据库(表)的所有权限