mysql客户端指令_MySQL客户端命令--笔记

MySQL客户端命令

mysql

-u:指定用户

-p:指定密码

-S:指定socket文件

-P:指定端口

-h:指定主机域

-e:指定sql语句

mysql> status \s 查看状态

mysql> select * from mysql.user\G 格式化成key:value的形式

mysql> \T /tmp/a.log 记录操作日志

mysql> \c 结束操作

mysql> \. /root/world.sql source 导入sql文件

mysql> \u test 切换数据库

mysql> \q 退出

mysql> select database();

+------------+

| database() |

+------------+

| test |

+------------+

mysqladmin

#检测MySQL是否存活

[root@elk01 ~]# mysqladmin -uroot -p123 ping

-返回:mysqld is alive

#查看状态

[root@elk01 ~]# mysqladmin -uroot -p123 status

#关闭数据库

[root@elk01 ~]# mysqladmin -uroot -p123 shutdown

#查看参数

[root@elk01 ~]# mysqladmin -uroot -p123 variables

#删库

[root@elk01 ~]# mysqladmin -uroot -p123 drop test

#建库

[root@elk01 ~]# mysqladmin -uroot -p123 create oldboy

#修改密码

[root@elk01 ~]# mysqladmin -uroot -p123 password '1'

SQL语句:

DDL:数据定义语言

库操作:

#创建oldboy数据库

mysql> create database oldboy;

mysql> drop database oldboy;

mysql> alter database oldboy charset gbk;

表操作:

#创建表

mysql> create table student1(

sid INT,

sname VARCHAR(20),

sage TINYINT,

sgender ENUM('m','f'),

cometime DATETIME);

#创建表加其他属性

mysql> create table student(

sid INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',

sname VARCHAR(20) NOT NULL COMMENT '学生姓名',

sage TINYINT UNSIGNED COMMENT '学生年龄',

sgender ENUM('m','f') NOT NULL DEFAULT 'm' COMMENT '学生性别',

cometime DATETIME NOT NULL COMMENT '入学时间')charset utf8 engine innodb;

mysql> alter table student1 add renyachun varchar(10);

mysql> alter table student1 add huwentao varchar(10) first;

mysql> alter table student1 drop renyachun;

mysql> alter table student1 add renyachun varchar(10) after huwentao;

mysql> alter table student1 rename st1;

A B C D

AI bigdata cloud DBA

DCL:数据控制语言

mysql> grant all privileges on *.* to test@'%' identified by '123';

mysql> grant all on *.* to test1@'%' identified by '123';

mysql> revoke select on *.* from test1@'%';

Query OK, 0 rows affected (0.00 sec)

mysql> show grants for test1@'%';

DML:数据操作语言

insert

update

delete

update代替delete做伪删除

1)在表中添加一个状态列

mysql> alter table world.city add status enum('0','1') default '1';

2)update 伪删除数据

mysql> update world.city set status='0' where id=4079;

3)查询时加条件

mysql> select * from world.city where status='1';

添加索引:

mysql> alter table world.city add index idx_pop(Population);

#查看索引

mysql> show index from world.city;

添加前缀索引

mysql> alter table world.city add index idx_name(name(4));

删除索引

mysql> alter table world.city drop index idx_name;

MySQL的存储引擎:

查看存储引擎

show engines;

查询当前实例中innodb存储引擎的表

mysql> select table_schema,table_name,engine from information_schema.tables where engine='innodb';

mysql> select table_schema,table_name,engine from information_schema.tables where engine='myisam';

查询当前使用的存储引擎

mysql> SELECT @@default_storage_engine;

临时设置存储引擎

mysql> SET @@storage_engine=innodb;

修改共享表空间配置

innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend

在没有备份的情况下表损坏企业案例:

1)找开发拿到建表语句

CREATE TABLE `city_new` (

`ID` int(11) NOT NULL AUTO_INCREMENT,

`Name` char(35) NOT NULL DEFAULT '',

`CountryCode` char(3) NOT NULL DEFAULT '',

`District` char(20) NOT NULL DEFAULT '',

`Population` int(11) NOT NULL DEFAULT '0',

`status` enum('0','1') DEFAULT '1',

PRIMARY KEY (`ID`),

KEY `CountryCode` (`CountryCode`),

KEY `idx_pop` (`Population`)

) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=latin1

2)创建一个新的MySQL实例,创建表

3)删除独立表空间

mysql> alter table city_new discard tablespace;

4)拷贝旧表的表空间文件到新表下

5)导入独立表空间

mysql> alter table city_new import tablespace;

MySQL-事务

mysql> create table jiaoyi(name varchar(10),money int);

mysql> insert jiaoyi value('zls',2000);

mysql> insert jiaoyi value('renyachun',20);

5.事务的控制语句

如下:

START TRANSACTION(或 BEGIN):显式开始一个新事务

SAVEPOINT:分配事务过程中的一个位置,以供将来引用

COMMIT:永久记录当前事务所做的更改

ROLLBACK:取消当前事务所做的更改

ROLLBACK TO SAVEPOINT:取消在 savepoint 之后执行的更改

RELEASE SAVEPOINT:删除 savepoint 标识符

SET AUTOCOMMIT:为当前连接禁用或启用默认 autocommit 模式

6.事务隐式提交情况

1)现在版本在开启事务时,不需要手工begin,只要你输入的是DML语句,就会自动开启事务。

2)有些情况下事务会被隐式提交

例如:

在事务运行期间,手工执行begin的时候会自动提交上个事务

在事务运行期间,加入DDL、DCL操作会自动提交上个事务

在事务运行期间,执行锁定语句(lock tables、unlock tables)

load data infile

select for update

在autocommit=1的时候

隔离级别

READ UNCOMMITTED(独立提交)

允许事务查看其他事务所进行的未提交更改

READ COMMITTED

允许事务查看其他事务所进行的已提交更改

REPEATABLE READ******

确保每个事务的 SELECT 输出一致

InnoDB 的默认级别

SERIALIZABLE

将一个事务的结果与其他事务完全隔离

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值