复习整合Mysql指令操作

Mysql常用指令

进入

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

  • 连接到本机上的MYSQL。
mysql -u root -p

注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。

  • 连接到远程主机上的MYSQL。
    假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -p 123;

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

退出

退出数据库

exit;

用户的操作

MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。

增加用户

格式:
grant select on 数据库.* to 用户名@登录主机 identified by “密码”
实例:
增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
操作如下:
1.首先用root用户连入MYSQL,

mysql -u root -p

2.然后键入以下命令:

grant select,insert,update,delete on *.* to test1@”%” Identified by “abc”;

注意: 这样增加的用户是十分危险的,如过某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了。

解决方法可参考如下方法:
增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问。

grant select,insert,update,delete on mydb.* to test2@localhost identified by “abc”;

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

grant select,insert,update,delete on mydb.* to test2@localhost identified by “”;

赋予新权限

具体权限问题请参考
[https://www.cnblogs.com/kevingrace/p/5719536.html]

grant all privileges on test.* to hello @localhost identified by 'Test'; 
flush privileges; 

刷新权限

flush privileges; 

修改用户密码

update mysql.user set password=password('新密码') where User="hello" and Host="localhost"; 
flush privileges;

实例:
将root用户(密码为root)密码改为 abc123

mysqladmin -uroot -proot password abc123; 

删除用户

通过执行drop user命令删除MySQL用户

DROP USER '用户名'@'localhost';

或者

delete from user whrer User="用户名" and Host="localhost(主机地址)"; 

库的操作

MySQL中,数据库的操作基本有:创建查看选择,以及删除4种。

创建数据库

CREATE DATABASE database_name;

后面的database_name是你要创建的数据库的名称;

查看数据库

SHOW DATABASES; 

查看已经创建的所有数据库

选择数据库

USE database_name;

选择名为database_name的数据库,很多数据库的操作都需要先选中一个数据库,再执行进一步的操作;

删除数据库

DROP DATABASE database_name;

删除名为database_name的数据库;

库名的修改

目前最安全的方法就是重新建立一个新的数据库,把当前的数据表导入到新的数据库中。

1.创建需要改成新名的数据库。
2.mysqldum 导出要改名的数据库
3.删除原来的旧库(确定是否真的需要)

缺点:耗时
优点:安全

表的操作

表是数据在数据库中一种逻辑上的存储形式,和常见的电子表格类似,其中每一行代表一个记录(可以理解成一个数据对象),而记录的每一列代表一个字段(其实你可以理解成数据对象的属性)。

表的基本操作有创建查看删除修改4种基本操作。

创建

格式

create table 表名(
字段名 数据类型 约束,
字段名 数据类型 约束,
字段名 数据类型 约束
);

查看

查看所有表
命令:

show tables;

删除

删除表

drop table 表名;

修改

修改表名

rename table 表名 to 新表名;

字段的操作

增加

添加新的字段

ALTER TABLE 表名 ADD 字段名 字段类型;

在指定的字段后面增加一个字段

ALTER table 表名 ADD 新字段名 字段类型 是否为空 注释 after 已存在的字段名;

删除

删除表的字段

alter table 表名 drop 列名;

修改

修改字段名

ALTER TABLE 表名 change 原字段名 新字段名 字段类型; 

修改字段类型

alter table 表名 modify column 字段名 类型;

查看

查看表结构

desc 表名;
或者
show columns from 表名;

注释的操作

给表添加注释(修改也用此方法)

ALTER TABLE 表名 COMMENT='表注释';

表内数据的操作

查看

条件查找

 select 字段 from 表名 where 条件;

查看表中所有数据

 select * from 表名

增加

insert into 表名 values(); # 顺序要一一对应,所有列的值都需要写
insert into 表名(字段1,字段2...) values (1,2...);

修改

修改表内数据

update 表名 set 字段=新值,where 条件;

删除

指定删除

delete from 表名 where 条件;

清空数据

delete from 表名;	# 删除所有数据
truncate 表名; # 删除所有数据

delete:
属于DML语句,删除所有数据
执行时会被记录事务,可以执行rollback回滚操作
删除大量数据时速度慢,并且不会回收高水位线
可以带条件删除

truncate:
属于DDL语句,删除所有数据,实际上是重新创建表结构
执行时不会记录事务,不能执行rollback回滚操作
删除大量数据时速度快,可以回收高水位线
不能带条件删除

索引的操作

加索引

mysql> alter table 表名 add index 索引名 (字段名1[,字段名2]);
例子: 
mysql> alter table employee add index emp_name (name);

加主关键字的索引

mysql> alter table 表名 add primary key (字段名);
例子: 
mysql> alter table employee add primary key(id);

加唯一限制条件的索引

mysql> alter table 表名 add unique 索引名 (字段名);
例子: 
mysql> alter table employee add unique emp_name2(cardnumber);

删除某个索引

mysql> alter table 表名 drop index 索引名;
例子:
mysql>alter table employee drop index emp_name;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值