这里假设已经在windows上安装配置好数据库了
(1)以管理员权限打开cmd窗口
(2)连接windows本地的mysql数据库,默认端口为3306,执行如下命令,其中xxxxxxx为密码
mysql -uroot -pxxxxxx
这种方式cmd窗口就暴露了密码,因此可以使用如下方式,这种是交互的方式,执行如下命令后回车,然后提示输入密码,此时密码也是隐藏的
mysql -uroot -p
(3)如果本地安装了两个数据库,比如安装了8.0版本的和5.7版本的,8.0端口为3306,5.7版本的端口为13306
连接登录3306的端口,执行如下命令然后输入密码即可
mysql -uroot -P3306 -p
连接登录13306的端口,执行如下命令然后输入密码即可
mysql -uroot -P13306 -p
(1)如果连接远端的数据库,则需要指定ip
执行如下命令,然后输入密码即可
mysql -uroot -P3306 -hxx.xx.xx.xx -p
首先登录5.7版本的数据库
(1)查看当前所有的数据库
show databases;
如下,这四个数据库是默认的自带的,
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
(2)创建数据库
create database 数据库名;
如:
mysql> create database db_demo;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| db_demo |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql>
(3)查看当前正在使用的数据库
select database();
如下,这里还尚未使用数据库
mysql> select database();
+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
mysql>
(4)使用数据库
use 数据库名;
如:
mysql> use db_demo;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| db_demo |
+------------+
1 row in set (0.00 sec)
mysql>
(5)查看当前数据库中的表
show tables;
如下,这里db_demo数据库中尚未创建表
(6)创建表,这里先简单体验一下
create table 表名(列名 列类型, 列名 列类型, 列名 列类型, ...);
如下,创建一个学生表,表有两列,id和name
mysql> create table student(id int, name varchar(32));
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+-------------------+
| Tables_in_db_demo |
+-------------------+
| student |
+-------------------+
1 row in set (0.00 sec)
mysql>
(7)查看表中所有数据
select * from 表名;
如下,此时student表中尚未写入数据
mysql> select * from student;
Empty set (0.01 sec)
mysql>
(8)向表中插入数据
insert into 表名 values(列值,列值);
如下,插入五条数据
mysql> insert into student values(1001,"Tom");
Query OK, 1 row affected (0.00 sec)
mysql> insert into student values(1002,"Jack");
Query OK, 1 row affected (0.00 sec)
mysql> insert into student values(1003,"Hellen");
Query OK, 1 row affected (0.00 sec)
mysql> insert into student values(1004,"June");
Query OK, 1 row affected (0.00 sec)
mysql> insert into student values(1005,"Bob");
Query OK, 1 row affected (0.00 sec)
mysql> select * from student;
+------+--------+
| id | name |
+------+--------+
| 1001 | Tom |
| 1002 | Jack |
| 1003 | Hellen |
| 1004 | June |
| 1005 | Bob |
+------+--------+
5 rows in set (0.00 sec)
mysql>
(9)此时如果插入一条中文名,则会报错,如下所示
mysql> insert into student values(1006, '张三丰');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD\xB7\xE1' for column 'name' at row 1
mysql>
注意此步骤如果是在8.0版本的数据库中操作时没有问题的,在5.7版本的数据库中是会报错的
(10)在5.7版本的数据库中执行如下命令查看数据表的创建命令
show create table 表名;
如下,可以看到这里的默认的编码为latin1编码,显然latin1编码是不包含中文的。如果要支持中文,需要使用utf-8编码
通过查看数据库创建的命令,也能看出数据库的编码是latin1编码,首先可参照 MySQL----MySQL数据库插入中文报错或者乱码问题的解决办法修改整个数据库的字符编码为utf8,然后执行如下命令修改已经存在的数据库和数据表以及数据表中列字段的的编码格式,可以发现此时修改的过程还是相对比较麻烦的,因此最好在安装好数据库后就一次性将字符编码设置好,创建数据库的时候也同步指定默认编码为utf8
alter database db_demo character set utf8;
alter table student character set utf8;
alter table student change name name varchar(32) character set utf8;
再次执行如下命令可以发现此时数据表的编码已经发生改变了
show create table student;
此时向数据库中插入一条含有中文的数据就已经没有问题了
mysql> insert into student values(1006, '张三丰');
Query OK, 1 row affected (0.01 sec)
mysql> select * from student;
+------+--------+
| id | name |
+------+--------+
| 1001 | Tom |
| 1002 | Jack |
| 1003 | Hellen |
| 1004 | June |
| 1005 | Bob |
| 1006 | 张三丰 |
+------+--------+
6 rows in set (0.00 sec)
mysql>
(11)删除数据表
drop table 表名;
如下:
mysql> drop table student;
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
Empty set (0.00 sec)
mysql>
(12)删除数据库
drop database 数据库名;
如下:
mysql> drop database db_demo;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>