Windows管理员模式下的命令行启动MySQL(如果没有设置开机自启的话):
服务的启动和停止
停止服务:net stop mysql (这里写mysql是因为我用的是MySQL,也可能是MySQL0815之类的,要去 我的电脑,右键管理,然后在服务和应用程序里面找到服务,查看MySQL的名字)
启动服务:net start mysql (和上面的关闭同理)
登录和退出
登录:mysql -h主机名(中间可以有空格) -P端口号 -u用户名 -p密码
如果是连接本机的话,可以是mysql -u用户名 -p密码
退出:exit或crtl+c
如果初始密码没有记住没关系,可以直接把data文件(data文件是数据库保存数据的地址,在安装的时候自己设置或者系统默认过,可以去.ini配置文件看一看)删掉,然后使用mysqld --initialize --console就可以重新生成初始密码,这个时候再去修改密码,方便下次登陆。
常用指令
每条命令的结尾要有分号或者\g
查看当前mysql的版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.19 |
+-----------+
1 row in set (0.00 sec)
没有登陆mysql服务端时,使用mysql --version或者mysql --V
显示已有的数据库
show databases;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.04 sec)
information_schema:这个数据库保存了mysql服务器所有数据库的信息。比如数据库的名、数据库的表、访问权限、数据库表的数据类型,数据库的索引信息等
mysql:mysql的核心数据库,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。
performance_schema:主要用于收集数据库服务器性能参数,可用于监控服务器在一个较低级别的运行过程中的资源消耗、资源等待等情况。
sys:库中所有的数据源来自:performance_schema。目标是把performance_schema的复杂度降低,让DBA能更好的阅读这个库里的内容,了解DB的运行情况。
参考
使用库和查看表
mysql> use mysql;
Database changed
mysql> show tables
-> ;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| component |
| db |
| default_roles |
| engine_cost |
| func |
| general_log |
| global_grants |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| password_history |
| plugin |
| procs_priv |
| proxies_priv |
| role_edges |
| server_cost |
| 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 |
+---------------------------+
33 rows in set (0.04 sec)
mysql> show tables from mysql;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| component |
| db |
| default_roles |
| engine_cost |
| func |
| general_log |
| global_grants |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| password_history |
| plugin |
| procs_priv |
| proxies_priv |
| role_edges |
| server_cost |
| 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 |
+---------------------------+
33 rows in set (0.00 sec)
查看当前所在的库
mysql> select database();
+------------+
| database() |
+------------+
| mysql |
+------------+
1 row in set (0.00 sec)
创建新的数据库
CREATE DATABASE…或者
create database…(大小写都可以)
mysql> CREATE DATABASE test;
Query OK, 1 row affected (0.04 sec)
在 MySQL 中,数据库和表对应于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。
可以设置在查询的时候大小写敏感:参考
建议关键字大写(比如;SHOW DATABASES),表名,列名小写。
创建新的表
mysql> use test;
Database changed
mysql> create table stuinfo(
-> id int,
-> name varchar(20));
Query OK, 0 rows affected (0.08 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| stuinfo |
+----------------+
1 row in set (0.00 sec)
查看表的结构
mysql> desc stuinfo;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
往表格中插入数据
mysql> insert into stuinfo (id,name) values(1,'index');
Query OK, 1 row affected (0.03 sec)
查看表格里面的数据
mysql> select * from stuinfo;
+------+-------+
| id | name |
+------+-------+
| 1 | index |
+------+-------+
1 row in set (0.00 sec)
修改表格里的数据
mysql> update stuinfo set name='zeta' where id=1;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from stuinfo;
+------+------+
| id | name |
+------+------+
| 1 | zeta |
+------+------+
1 row in set (0.00 sec)
删除表格里的数据
mysql> delete from stuinfo where id=1;
Query OK, 1 row affected (0.04 sec)
mysql> select * from stuinfo;
Empty set (0.00 sec)
注释
单行注释:#注释文字
单行注释:-- (两个-右边有一个空格)注释文字
多行注释:/* 注释文字 */