下面在Linux环境下通过命令行来简单演示一下如何使用Mysql.
-查看mysql数据库:
语法: show databases;
mysql> show databases;
注意:show的后面是databases而不是database;另外以分号(;)结束,表示一个完整的sql语句.
结果如下:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| student |
+--------------------+
4 rows in set (0.00 sec)
-使用数据库:
语法: use database_name;
注意在没有选择使用的数据库之前,使用
mysql> select database();
可以查看到选择的数据默认为空,如下显示:
+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
现在选择使用数据库mysql,命令如下:
mysql> use mysql;
会显示"Database changed""如下,代表成功
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
使用mysql> select database();可以进行查看
mysql> select database();
+------------+
| database() |
+------------+
| mysql |
+------------+
1 row in set (0.00 sec)
-删除数据库:
语法: drop database if exists database_name;
if exists在mysql所用的脚本中很有用,缺省情况下,mysql将在出错时退出.例如,有一个安装脚本能够创建表,这些表将在其他脚本中继续使用.
在此情况下,希望保证此创建表的脚本在开始运行时无后顾之忧.如果在该脚本开始处使用普通的drop table,那么它在第一次运行时将会失败,
因为这些表从未创建过.如果使用if exists,就不会产生问题了.当表存在时,将它们删除;如果不存在,脚本继续运行.
如删除performance_schema数据库,语句如下:
mysql> drop database if exists performance_schema;
结果显示如下说明删除成功,当然你不放心的话,也可以使用show databases;语句来查看还是否存在.
Query OK, 52 rows affected (0.12 sec)
-查看数据库中的表:
语法: show tables;
注意: 一定是你有在使用到该数据库的情况下哦.
mysql> show tables;
结果如下:
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
28 rows in set (0.00 sec)
-查看数据库中表的结构
语法: show create table table_name \G
比如查看mysql数据库中表"func"的结构
mysql> show create table func \G
结果如下:
*************************** 1. row ***************************
Table: func
Create Table: CREATE TABLE `func` (
`name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`ret` tinyint(1) NOT NULL DEFAULT '0',
`dl` char(128) COLLATE utf8_bin NOT NULL DEFAULT '',
`type` enum('function','aggregate') CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions'
1 row in set (0.00 sec)
-修改表名
语法: rename table old_table_name to new_table_name;
比如将表func该为新名称function
mysql> rename table func to function;
结果如下:
Query OK, 0 rows affected (0.03 sec)
不放心的话,使用show tables;语句来显示一下看是否已经改变
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| function |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
28 rows in set (0.00 sec)