mysql基本命令及中文显示处理

这是我用mysql写的实验一。Mysql的基本命令比较简单,给一个链接,这上面的mysql语法比较全了,可以参照学习http://see.xidian.edu.cn/cpp/u/mysql_ml/

实验应该用sql写的,但是电脑里面没有装。先用mysql写一写,下次在用sql写一写。估计语法应该类似。

写作业时,碰到一个问题,BOOK表中书的名字是中文,而mysql的客户端上显示是****(中文乱码),提示是

 

mysql> INSERT INTO `publisher` VALUES (‘TP311.12’, ‘清华大学出版社’, ‘清华园清华

大学’);

ERROR 1366 (HY000): Incorrect string value: ‘\xC7\xE5\xBB\xAA\xB4\xF3…’ for column ‘Name’ at row 1

 

希望与我遇到同样问题的人可以少绕点圈子。

 

我在两个地方做了编码设置,然后解决了这个问题。

 

开始时

SET character_set_client=’gb2312′;


SET character_set_connection=’gb2312′;


SET character_set_results=’gb2312′;

 

建表时

CREATE TABLE `book` (

  `ISBN` bigint(50) NOT NULL,

  `PrimaryAuthor` varchar(50) DEFAULT NULL,

  `Title` varchar(100) DEFAULT NULL,

  `PublisherID` varchar(50) NOT NULL,

  `Edition` int(50) DEFAULT NULL,

  `PublicationDate` varchar(50) DEFAULT NULL,

  `Price` double(50,0) DEFAULT NULL,

  `Description` varchar(50) DEFAULT NULL,

  PRIMARY KEY (`ISBN`)

) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

 

用mysql完成作业一的完整代码如下

/*
Author                : fanjiafei
ID                    : 2010303402
Source Server         : mysql
Source Server Version : 50520
Source Host           : localhost:3306
Source Database       : createdb
Target Server Type    : MYSQL
Target Server Version : 50520
File Encoding         : 65001
Date: 2012-10-12 17:34:44
*/
— —-创建数据库createdb—–
drop database createdb;
create database createdb;
— —使用数据库——-
use createdb;
— —————————–
— 设置编码使mysql客户端支持中文,不会乱码
— 这里是用中文gb2312
— —————————–

SET character_set_client=’gb2312′;
SET character_set_connection=’gb2312′;
SET character_set_results=’gb2312′;

— ————————–

SET FOREIGN_KEY_CHECKS=0;

— —————————-
— Table structure for `book`
— —————————-
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
  `ISBN` bigint(50) NOT NULL,
  `PrimaryAuthor` varchar(50) DEFAULT NULL,
  `Title` varchar(100) DEFAULT NULL,
  `PublisherID` varchar(50) NOT NULL,
  `Edition` int(50) DEFAULT NULL,
  `PublicationDate` varchar(50) DEFAULT NULL,
  `Price` double(50,0) DEFAULT NULL,
  `Description` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`ISBN`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

— —————————-
— Records of book
— —————————-
INSERT INTO `book` VALUES (‘9787111165057’, ‘James F.Kurose’, ‘计算机网络’, ‘K412.3’, ‘3’, ‘2009.4’, ’66’, ‘作者采用自顶向下的方法来教授计算机网络的原理’);
INSERT INTO `book` VALUES (‘9787300111346’, ‘Zvi Bodie’, ‘金融学’, ‘F830’, ‘3’, ‘2010.1’, ’59’, ‘经济科学的研究与分析’);
INSERT INTO `book` VALUES (‘9787302139396’, ‘Larry Nyhoff’, ‘数据结构与算法分析’, ‘TP311.12’, ‘2’, ‘2006.11’, ’98’, ‘算法设计技巧,并研究算法的性能、效率’);
INSERT INTO `book` VALUES (‘9787544707237’, ‘Thoreau’, ‘瓦尔登湖’, ‘I712.64’, ‘1’, ‘2009.1’, ’19’, ‘湖是风景中最美丽、最富于表情的姿容’);

— —————————-
— Table structure for `publisher`
— —————————-
DROP TABLE IF EXISTS `publisher`;
CREATE TABLE `publisher` (
  `PublisherID` varchar(50) NOT NULL,
  `Name` varchar(50) NOT NULL,
  `Address` varchar(150) DEFAULT NULL,
  PRIMARY KEY (`PublisherID`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

— —————————-
— Records of publisher
— —————————-
INSERT INTO `publisher` VALUES (‘F830’, ‘中国人民大学出版社’, ‘北京市海淀区中关村大街31号’);
INSERT INTO `publisher` VALUES (‘I712.64’, ‘译林出版社’, ‘南京市湖南路1号凤凰广场a楼1516层’);
INSERT INTO `publisher` VALUES (‘K412.3’, ‘机械工业出版社’, ‘北京市.北京市辖区.西城区西城区百万庄大街22号’);
INSERT INTO `publisher` VALUES (‘TP311.12’, ‘清华大学出版社’, ‘清华园清华大学’);
— ————————————-
— 查询出某两个作者出版的所有书的标题和价格。
— 查询作者Thoreau的书和价格
— ————————————–
 select * from book where PrimaryAuthor=”Thoreau”;
— ———————————-
— 查询作者Thoreau的书和价格
— ———————————–
 select * from book where PrimaryAuthor=”Zvi Bodie”;
— ———————————
— 书写SQL语句查询出某本书的出版社名字
— 这里查询书《瓦尔登湖》的出版社名字
— ———————————
select * from book where Title=”瓦尔登湖”;
— 看到瓦尔登湖的外键PublisherID为“I712.64”
— 再在PUBLISHER表中根据外键查看出版社
select * from publisher where PublisherID=”I712.64″;
— 从而知道是“译林出版社”

 

 

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据