MySQL的常用命令
show databases; 查看数据库系统里有那些数据库。
use test; 打开一个数据库。
show tables; 查看刚刚打开的数据库里有些什么 表;
show tables from mysql; 查看非所在库的表信息,用from关键字指定目标库。
select database(); 查看目前在那个库里。
演示一下SQL常用增、删、改、查,让大家有个感性的了解,后面要详细的讲!
create table student(id int , name varchar(4)); 创建一张表
desc student;查看表结构。
select * from student; 查看表里的记录。
insert into student(id,name) values (1,'小白'); 向表里插入一条记录值。
在Sql当中用select version();查看mysql的版本信息。
在Dos当中mysql --version 也是查看mysql版本信息。
查看数据库的编码:show variables like '%char%';
命令行中查询表的默认字符集:show create table 表名称;
修改表的默认字符集:ALTER TABLE 表名称 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
命令行中查询数据库的默认字符集:show creat database test;.
修改数据库的默认字符集:ALTER DATABASE test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
windows的cmd命令行访问student表
现在改从cmd命令行插入数据:
但直接在cmd中输入包含中文的insert语句时,mysql会报错(原因等会再说)
那就先写好一个sql脚本,再通过source命令导入就不会报错了
source xx.sql1
以上的案例估计就是大家经常会遇上的中文乱码问题了。
解决方案
在输入SQL语句前先设置编码:set names gbk ,再输入SQL
为什么这样设置就能正常显示utf-8编码的数据呢?
可以看到,client,connection和result的编码已经设置为gbk了,但server,database,system的编码还是utf-8!这就是说,虽然数据是使用utf-8编码存储的,但是客户端以及返回的结果集是gbk的,而此时cmd窗口的编码正好是gbk,因此该结果集能正确显示了。