mysql使用笔记

常用界面工具

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

  • Navicat 需要破解

  • HeidiSQL 开源免费

shell操作

远程登录

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

查看数据库和表

show databases;

show tables;

use database_name; # 进入这个数据库

desc table_name;   # 查看表结构

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

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

查看存储过程或者函数

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,看不到具体的定义。

常用函数

-- 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 外部可以在内部使用,内部修改的也可以给外部使用,典型的引用 传递,只能传递变量

你可能感兴趣的:(数据库)