先从最最最基础的开始【绝笔入门命令】
一、登录/退出
登录:mysql -h hostname -u username -p
退出:exit/quit;
二、导入/导出[注意:这是在shell下直接敲命令,不用也不能登录mysql]
导入:mysql -hostname -u username -p < filepath/filename.sql
导出:mysqldump -hostname -u username -p datebase_name > filepath/filename.sql
同时也可以登录mysql使用source命令
导入: mysql>source filepath/filename.sql
三、创建数据库/表
创建数据库:CREATA DATABASE `base_name`;
列出数据库:SHOW DATABASES;
切换数据库:USE `base_name`;
创建表 : CAEATE TABLE `table_name`(
`column_name` type [attribute COMMENT 'comment'],
`column_name` type [attribute COMMENT 'comment'],
`column_name` type [attribute COMMENT 'comment'],
`column_name` type [attribute COMMENT 'comment'],
`column_name` type [attribute COMMENT 'comment'],
);
列出表:SHOW TABLES;
插入数据:
INSERT INTO `table_name` (`column_1`, `column_2`, `column_3`.......) VALUES
('value_1', 'value_2', 'value_3'......),
('value_1', 'value_2', 'value_3'......),
('value_1', 'value_2', 'value_3'......),
('value_1', 'value_2', 'value_3'......);
当插入的数据完整对应符合列名序列时可以不写列名格式串直接插入即可。
描述表结构: DESC `table_name`/DESCRIBE `table_name` show columns from `table_name`
描述表创建信息: SHOW CREATE TBALE `table_name`
读取表数据:select * from `table_name`;【格式化输出可以在后面加 \G选项】
读取特定列值: select `column_name_1`, `column_name_2`.......from `table_name`;
四、修改某一列值
UPDATE TABLE `table_name` SET `column_name` = value WHERE conditions;
五、ALTER 命令允许你修改一个现有表的结构。例如,你可以增加或删除列、创造或消去索引、改变现有列的类型、或重新命名列或表本身。你也能改变表的注释和表的类型。
1、主键的设置与删除
设置某一字段为主键:
ALTER TABLE `table_name` ADD PRIMARY KEY(`column_name`);
删除主键字段:[注意:删除的主键必须不能为auto_increment类型,否则无法撤销主键属性,可以先使用change或者modify命令更改PRIMARY KEY的属性不包含auto_increment]
ALTER TABLE `table_name` DROP PRIMARY KEY;
2、UNIQUE KEY的设置与删除
ALTER TABLE `table_name` ADD UNIQUE(`column_name`);
ALTER TABLE `table_name` DROP INDEX `unique_column_name`;
3、重命名列名和重新定义列属性
change:change命令是用来重命名列名和重新定义列属性命令,他必须要有`old_column_name``new_column_name`这两个参数,即便新列名同旧列名相同
ALTER TABLE `table_name` change `old_column_name` `new_column_name` [column_attribute];
modify:modify命令是用来专门修改列属性的命令
ALTER TABLE `table_name` modify `column_name`[column_attribute];
4、添加/删除列 [同时也可以设置列为主键、唯一键等]
ALTER TABLE `table_name`ADD COLUMN`new_column_name` [column_attribute ,ADD PRIMARY KEY (`new_column_name`),ADD UNIQUE KEY(`new_column_key`)];
ALTER TABLE `table_name` DROP COLUMN `column_name`;
六、AS别名关联查询命令[为了缩减字段名使得字段名更加简练]
SELECT `T1.C`,`T2.C` FROM `TABLE_1_NAME` AS `T1`, `TABLE_2_NAME` AS `T2` WHERE `T1.ID` = `T2.ID`;
七、其他常用命令
1、重命名表名
ALTER TABLE `old_table_name` RENAME `new_table_name`;
2、DROP命令
DROP DATABASE `database_name`;
DROP TABLE `table_name`;
3、删除命令
DELETE FROM `table_name` [WHERE CONDITION];
4、描述表结构
DESCRIBE `table_name`;
DESC `table_name`; 这个是最方便的
SHOW COLUMNS FROM `table_name`;
5、查看表的创建信息
SHOW CREATE TBALE `table_name`
6、模糊查询
SHOW TABLES LIKE '%COMMON%';
SELECT * FROM `table_name` WHERE `column_name` LIKE '%COMMON%';
7、排序【默认为升序,可在后加 DESC选项改为降序】
SELECT * FROM `table_name` ORDER BY `column_name` [DESC];
七、 常用小命令
1、显示当前时间:select now();
2、撤销输入命令:select * for \c;
八、 SHOW命令
1. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称。
2. show databases; -- 显示mysql中所有数据库的名称。
3. show columns from table_name from database_name; 或show columns from database_name.table_name; -- 显示表中列名称。
4. show grants for user_name; -- 显示一个用户的权限,显示结果类似于grant 命令。
5. show index from table_name; -- 显示表的索引。
6. show status; -- 显示一些系统特定资源的信息,例如,正在运行的线程数量。
7. show variables; -- 显示系统变量的名称和值。
8. show processlist; -- 显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。
9. show table status; -- 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间。
10. show privileges; -- 显示服务器所支持的不同权限。
11. show create database database_name; -- 显示create database 语句是否能够创建指定的数据库。
12. show create table table_name; -- 显示create database 语句是否能够创建指定的数据库。
13. show engines; -- 显示安装以后可用的存储引擎和默认引擎。
14. show innodb status; -- 显示innoDB存储引擎的状态。
15. show logs; -- 显示BDB存储引擎的日志。
16. show warnings; -- 显示最后一个执行的语句所产生的错误、警告和通知。
17. show errors; -- 只显示最后一个执行语句所产生的错误。
18. show [storage] engines; --显示安装后的可用存储引擎和默认引擎。