启动与退出
指定 IP 地址和端口号登录 MySQL 数据库
命令格式为:
mysql -h ip -u root -p -P 3306
例如:
mysql -h 127.0.0.1 -u root -p -P 3306
退出 MySQL
使用 quit 或 exit 退出 MySQL
查看数据库
SHOW DATABASES
;
创建数据库
CREATE DATABASE IF NOT EXISTS dbname
;
选择数据库
USE 数据库名
;
查看数据库中的数据表
SHOW TABLES
;
删除数据库
DROP DATABASE IF EXISTS dbname;
创建一个简单的数据库表
字段 类型(长度) 属性 索引
CREATE TABLE IF NOT EXISTS 表名( id INT UNSTGND AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL )ENGINE = InnoDB DEFAULT CHARSET=utf8;
添加数据
INSERT INTO table_name ( field1, field2,...fieldN )VALUES ( value1, value2,...valueN )
;
查询数据
SELECT * FROM table
;
修改数据
UPDATE table SET 字段1 = '值1', 字段1='值2' WHERE 条件
;
删除数据
DELETE FROM table WHERE 条件
;
创建新普通用户
GRANT 权限 ON 库名.表名 TO '用户名'@'主机名' IDENTIFIED BY '密码'
查询所有用户
SELECT user,host FROM mysql.user;
删除普通用户
DROP USER '用户名'@'主机名';
修改 root 用户密码
SET PASSWORD = PASSWORD('新密码');
root 用户修改普通用户密码
SET PASSWORD FOR '用户名'@'主机名'=PASSWORD('新密码');
授权
GRANT 权限 ON 库名.表名 TO '用户名'@'主机名' IDENTIFIED BY '密码'; GRANT SELECT,INSERT,UPDATE,DELETE ON cendxia.user TO '用户名'@'主机名' IDENTIFIED BY '密码';
查看权限
SHOW GRANTS FOR '用户名'@'主机名';
收回权限
REVOKE 权限 ON 库名.表名 FROM '用户名'@'主机名';
备份
mysqldump -u root -p 数据库名 > 要保存的位置
还原数据
mysql -u yser -p dbname < filename.sql;
建表引擎
MyISAM -- 读取速度快,不支持事务
InnoDB -- 读取速度稍慢 支持事务 事务回滚
一些常用属性
UNSTGND 无符号属性
AUTO_INCREMENT 自增属性(一般用在id字段上)
ZEROFILL 零填充
字符串类型
CHAR 定长的字符串类型 (0-255)个字符
VARCHAR 变长的字符串类型,5.0以前(0-255)个字符,5.0版本以后(0-65535)个字符
查看表结构
DESC 表名; (缩写版)
DESCRIBE 表名
;
查看建表语句
SHOW CREATE TABLE 表名;
修改表名
ALTER TABLE 原表名 RENAME TO 新表名;
修改字段的数据类型
ALTER TABLE 表名 MODIFY 字段名 数据类型 属性 索引;
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
修改字段名
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 属性 索引;
增加字段
ALTER TABLE 表名 ADD 字段名 数据类型 属性 索引; -- [FIRST|AFIER 字段名] -- (FIRST 在最前面添加字段。AFIER 字段名 在某字段后面添加)
删除字段
ALTER TABLE 表名 DROP 字段名;
修改字段的排列位置
ALTER TABLE 表名 MODIFY 字段名 数据类型 属性 索引 AFIER 字段名;
修改表引擎
ALTER TABLE 表名 ENGINE=引擎名; --MyISAM 或 InnoDB
高级用法
explain sql;
explain 命令我们可以学习到该条 SQL 是如何执行的,随后解析 explain 的结果可以帮助我们使用更好的索引,最终来优化它!
通过 explain 命令我们可以知道以下信息:
表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。
格式化输出
sql \G
在命令最后面加上 \G 即可。
查看帮助
在 MySQL 提示符中输入 help;或者 \h 获取使用帮助。