Mysql学习笔记

安装与配置

  • 下载地址
  • 通过配置文件的修改编码方式(也可以的通过了命令修改)
    [mysql]
    default-character-set=utf8
    [mysqld]
    character-set-server=utf8
  • 启动与停止
    service mysqld start|stop|restart
  • 通过命令行修改
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_server=utf8;
set character_set_results=utf8;
  • 查看数据库编码
    show variables like 'character%';

登录与退出

  • 登录:mysql -u用户名 -p[密码]
    参数说明:
    -u 用户名;
    -p 密码;
    -h 指定主机;
    -v 示版本;
    -- prompt 改命令提示符(\h主机名,\u用户名,\D完整的日期,\d数据库名称);
    -- delimiter 命令分隔符;
    eg:mysql -u用户名 -p[密码] --prompt '\u@\h_\D_\d>'
  • 退出
    exit,quit,ctrl+d,\q

Mysql语法规范

  1. 关键字与函数名称全部大写
  2. 数据库名称,表名称,字段名称等全部小写
  3. SQL语句必须以分隔符结尾

Mysql常用命令

  • SELECT VERSION();显示当前版本
  • SELECT NOW();显示当前时间
  • SELECT USER();显示当前用户
  • SHOW ENGINES;查看存储引擎
  • PROMPT 提示符;修改命令行提示符
  • DELIMITER 分隔符;修改命令分隔符
  • help[\h,?] 命令;查看帮助手册 (eg: HELP CREATE DATABASE;)
  • \s,status 查看状态
  • \T 日志文件路径; 开启日志
  • \t 关闭日志

用户管理

  • 创建用户
    create user '用户名'@'主机地址' identified by '密码';
  • 修改用户
    rename user '用户名'@'主机地址' to '新用户名'@'新主机地址';
  • 删除用户
    drop user '用户名'@'主机地址';
  • 修改密码
    set password for '用户名'@'主机地址' = Password('新密码');

权限管理

  • 查看权限
    show grants for '用户'@'IP地址'
  • 授权
    grant {权限列表} on 数据库.表 to '用户'@'IP地址'
  • 取消权限
    revoke {权限列表} on 数据库.表 from '用户'@'IP地址'
  • 常用的权限
all privileges          除grant外的所有权限
select                  仅查权限
select,insert           查和插入权限
usage                   无访问权限
create                  使用create table
create routine          使用create procedure
create temporary tables 使用create temporary tables
create user             使用用户管理权限
create view             使用create view
delete                  使用delete
drop                    使用drop table
execute                 使用call和存储过程
file                    使用select into outfile 和 load data infile
grant option            使用grant 和 revoke
index                   使用index
insert                  使用insert
lock tables             使用lock table
process                 使用show full processlist
select                  使用select
show databases          使用show databases

数据库基本操作

  • 创建数据库
    CREATE {DATABASE|SCHEMA} [IF NOT EXITS] db_name [DEFAULT] CHARACTER SET [=] charset_name;
  • 查看数据库
    SHOW {DATABASES|SCHEMAS};
  • 查看指定数据库定义
    SHOW CREATE {DATABASE|SCHEMA} db_name;
  • 修改数据的编码方式
    ALTER DATABASE db_name [DEFAULT] CHARACTER SET utf8;
  • 使用指定的数据库
    USE db_name;
  • 删除指定的数据库
    DROP DATABASE db_name;
  • 查看警告信息
    SHOW WARNINGS;

数据表操作

  • 创建表
CREATE TABLE [IF NOT EXISTS] tbl_name(
  column_name  data_type [DEFAULT default_value]
                         [NOT NULL | NULL] [AUTO_INCREMENT] 
                         [UNIQUE [KEY] | [PRIMARY] KEY]
  ...
)ENGINE=InnoDB [DEFAULT] CHARACTER SET charset_name

data_type(数据类型):
    BIT[(length)]
  | TINYINT[(length)] [UNSIGNED] [ZEROFILL]
  | SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
  | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
  | INT[(length)] [UNSIGNED] [ZEROFILL]
  | INTEGER[(length)] [UNSIGNED] [ZEROFILL]
  | BIGINT[(length)] [UNSIGNED] [ZEROFILL]
  | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]
  | NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]
  | DATE
  | TIME[(fsp)]
  | TIMESTAMP[(fsp)]
  | DATETIME[(fsp)]
  | YEAR
  | CHAR[(length)] [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | VARCHAR(length) [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | BINARY[(length)]
  | VARBINARY(length)
  | TINYBLOB
  | BLOB
  | MEDIUMBLOB
  | LONGBLOB
  | TINYTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | TEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | MEDIUMTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | LONGTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | ENUM(value1,value2,value3,...)
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | SET(value1,value2,value3,...)
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | JSON
  | spatial_type
  • 查看所有的表
    SHOW tables;
  • 查看表结构
    DESC tbl_name;
  • 删除表
    DROP TABLE tbl_name;
  • 清空表(删除表数据)
DELETE FROM tbl_name;
TRUNCATE TABLE tbl_name; #速度更快,自增索引回到原点
  • 修改自增ID
ALTER TABLE [tbl_name] auto_increment=[ID];

常用工具