mysql使用笔记

原文链接:mysql使用笔记
发布时间:2018-12-16 16:24:10

常用界面工具

有时候为了方面,可以使用界面工具查看修改mysql,推荐两个工具:

Navicat 需要破解

HeidiSQL 开源免费

shell操作

远程登录

1
2
```sql
mysql -u username -p123456 -h 192.168.97.200 -P 3300 -D dbname ## 注意 -p后面无空格,紧跟密码

查看数据库和表

1
2
3
4
5
6
7
8
9
10
11
12
13
```sql
show databases;

show tables;

use database_name; # 进入这个数据库

desc table_name; # 查看表结构

status; # 查看当前数据库的名称、ip、端口等等信息

select database(); #查看当前的数据库名称 这是调用函数

查看存储过程或者函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
```sql
SHOW CREATE { PROCEDURE | FUNCTION } sp_name ;

//例子
SHOW CREATE PROCEDURE GetTableReset\G;
*************************** 1. row ***************************
Procedure: GetTableReset
sql_mode:
Create Procedure: NULL
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: utf8_general_ci
1 row in set (0.00 sec)

因为没有root权限,所以 Create ProcedureNULL,看不到具体的定义。

常用函数

1
2
3
4
5
6
7
8
9
10
11
```sql
-- unix时间戳转为日期
select FROM_UNIX(timestamp) ;
-- 获取unix时间戳
select UNIX_TIMESTAMP();

-- 字符串IP转为整数
select INET_ATON("192.168.1.1")
-- 整数IP转为字符串IP
select INET_NTOA(12343445)

补充–函数和存储过程的区别

存储过程,包括的多条SQL,可以返回结果集,调用存储过程,就像调用sql一样。

而函数则不同,函数强调的是计算获得一个结果,和内置的函数类似,比如sum count等等。

1:限制

存储函数和存储过程统称为存储例程(store routine),存储函数的限制比较多,例如不能用临时表,只能用表变量,而存储过程的限制较少,存储过程的实现功能要复杂些,而函数的实现功能针对性比较强

2:返回值不同

存储函数必须有返回值,且仅返回一个结果值

存储过程可以没有返回值,但是能返回结果集(out,inout)

3:调用时的不同

存储函数嵌入在SQL中使用,可以在select 存储函数名(变量值);

存储过程通过call语句调用 call 存储过程名

4:参数的不同

存储函数的参数类型类似于IN参数

存储过程的参数类型有三种

1: in 数据只是从外部传入内部使用(值传递),可以是数值也可以是变量

2: out 只允许过程内部使用(不用外部数据),给外部使用的(引用传递:外部的数据会被先清空才会进入到内部),只能是变量

3: inout 外部可以在内部使用,内部修改的也可以给外部使用,典型的引用 传递,只能传递变量