安装与配置
- 下载地址
- 通过配置文件的修改编码方式(也可以的通过了命令修改)
[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语法规范
- 关键字与函数名称全部大写
- 数据库名称,表名称,字段名称等全部小写
- 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; #速度更快,自增索引回到原点
ALTER TABLE [tbl_name] auto_increment=[ID];
常用工具