基本操作
- 启动MySQL:
net start mysql - 创建Windows服务:
sc create mysql binPath = mysqld_bin_path - 连接服务器 :
mysql -h 地址 -P 端口 -u 用户名 -p 密码 - 显示哪些线程正在运行:
SHOW PROCESSLIST - 显示系统变量信息:
SHOW VARIABLES
数据库操作
- 查看当前数据库:
SELECT DATABASE(); - 显示当前时间、用户名、数据库版本:
SELECT now(); SELECT user(); SELECT version(); - 创建库:
CREATE DATABASE [IF NOT EXISTS] 数据库名 [CHARACTER SET charset_name] [COLLATE collation_name]; - 查看已有库:
SHOW DATABASES LIKE 'xxx' - 查看当前库信息:
SHOW CREATE DATABASE 数据库名 - 修改库的选项信息:
ALTER DATABASE 库名 选项信息 - 删除库:
DROP DATABASE [IF EXISTS] 数据库名
表操作
- 创建表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [库名.]表名 (表的结构定义)[表选项] - 表选项
- 字符集
CHARSET = charset_name如果表没有设定,则使用数据库字符集 - 存储引擎
ENGINE = engine_name表在管理数据时采用的不同的数据结构,结构不同会导致处理方式、提供的特性操作等不同 常见的引擎:InnoDB MyISAM Memory/Heap BDB Merge Example CSV MaxDB Archive 不同的引擎在保存表的结构和数据时采用不同的方式 MyISAM表文件含义:.frm表定义,.MYD表数据,.MYI表索引 InnoDB表文件含义:.frm表定义,表空间数据和日志文件 SHOW ENGINES -- 显示存储引擎的状态信息 SHOW ENGINE 引擎名 {LOGS|STATUS} -- 显示存储引擎的日志或状态信息 - 自增起始数
AUTO_INCREMENT= 行数 - 数据文件目录
DATA DIRECTORY= 目录 - 索引文件目录
INDEX DIRECTORY= 目录 - 表注释
COMMENT = 'string' - 分区选项
PARTITION BY ...
- 字符集
- 查看所有表
SHOW TABLES [LIKE 'xx']SHOW TABLES FROM 库名 - 查看表机构
SHOW CREATE TABLE 表名(信息更详细)DESC 表名 / DESCRIBE 表名 / EXPLAIN 表名 / SHOW COLUMNS FROM 表名 [LIKE 'PATTERN']SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern'] - 修改表
- 修改表本身的选项
ALTER TABLE 表名 表的选项ALTER TABLE 表名 ENGINE=MYISAM; - 对表进行重命名
RENAME TABLE 原表名 TO 新表名RENAME TABLE 原表名 TO 库名.表名 (可将表移动到另一个数据库) - 修改表的字段机构(13.1.2. ALTER TABLE语法)
ALTER TABLE 表名 操作名- 操作名 ADD[ COLUMN] 字段定义 -- 增加字段 AFTER 字段名 -- 表示增加在该字段名后面 FIRST -- 表示增加在第一个 ADD PRIMARY KEY(字段名) -- 创建主键 ADD UNIQUE [索引名] (字段名)-- 创建唯一索引 ADD INDEX [索引名] (字段名) -- 创建普通索引 DROP[ COLUMN] 字段名 -- 删除字段 MODIFY[ COLUMN] 字段名 字段属性 -- 支持对字段属性进行修改,不能修改字段名(所有原有属性也需写上) CHANGE[ COLUMN] 原字段名 新字段名 字段属性 -- 支持对字段名修改 DROP PRIMARY KEY -- 删除主键(删除主键前需删除其AUTO_INCREMENT属性) DROP INDEX 索引名 -- 删除索引 DROP FOREIGN KEY 外键 -- 删除外键
- 修改表本身的选项
- 删除表:
DROP TABLE[ IF EXISTS] 表名 ... - 清空表数据:
TRUNCATE [TABLE] 表名 - 复制表结构:
CREATE TABLE 表名 LIKE 要复制的表名 - 复制表结构和数据:
CREATE TABLE 表名 [AS] SELECT * FROM 要复制的表名 - 检查表是否有错误:
CHECK TABLE tbl_name [, tbl_name] ... [option] ... - 优化表:OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...`
- 修复表:
REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM] - 分析表:
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...


