MySQL組合查詢,智能查詢,個(gè)人的理解注釋翻譯,常見的7種中文字符編碼【詩書畫唱】
一、導(dǎo)入book.sql中的內(nèi)容
CREATE TABLE `book` (
? `id` int(11) NOT NULL,
? `author` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
? `binding` varchar(10) CHARACTER SET utf8 DEFAULT NULL,
? `category` varchar(10) CHARACTER SET utf8 DEFAULT NULL,
? `image` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
? `isbn` varchar(20) DEFAULT NULL,
? `pages` int(11) DEFAULT NULL,
? `price` double DEFAULT NULL,
? `pubdate` varchar(10) DEFAULT NULL,
? `publisher` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
? `subtitle` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
? `summary` text CHARACTER SET utf8,
? `title` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
? `translator` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
? PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
————————
【用Latin1存儲中文有沒有問題?答案是沒有問題,但是并不建議。例如你把UTF8編碼的“訊”字(UTF8編碼為0xE8AEAF,占三個(gè)字節(jié))
存入了Latin1編碼的Mysql表,那么在Mysql眼里,你存入的并不是一個(gè)“訊”字,而是三個(gè)Latin1的字母(0xE8,0xAE,0xAF)。
本質(zhì)上,你存的數(shù)據(jù)值依然是0xE8AEAF,這種“欺騙”Mysql的行為并沒有導(dǎo)致數(shù)據(jù)丟失,只不過你需要注意讀取出來該值的時(shí)候,
自己要以UTF8編碼的方式顯示出來,要不然就是亂碼。
因此,用Latin1存任何文字技術(shù)上都可以,但是經(jīng)常會導(dǎo)致數(shù)據(jù)顯示亂碼。通常的解決方案,就是讓UTF8一統(tǒng)天下,建表的時(shí)候就聲明charset為utf8。】
——————
--【charset:字符集
--ENGINE:引擎;】
-- ----------------------------
-- Records of book
-- ----------------------------
【上面的表中的 ENGINE=InnoDB DEFAULT CHARSET=latin1;可以不一起和建表代碼運(yùn)行等,
下面的數(shù)據(jù)仍然可以一起插入】
【數(shù)據(jù)庫會自動把'7'等等轉(zhuǎn)換成7等】
【"\"為轉(zhuǎn)義字符,查詢時(shí)不會顯現(xiàn)等,為的就是讓雙引號可以出現(xiàn)在表中等】
select * from book
INSERT INTO `book` VALUES ('7', '[\"[美]保羅·格雷厄姆\"]', '平裝', '編程', 'https://img3.doubanio.com/lpic/s4669554.jpg', '9787115249494', '264', '49', '2011-4', '人民郵電出版社', '硅谷創(chuàng)業(yè)之父Paul Graham文集', '本書是硅谷創(chuàng)業(yè)之父Paul Graham 的文集,主要介紹黑客即優(yōu)秀程序員的愛好和動機(jī),討論黑客成長、黑客對世界的貢獻(xiàn)以及編程語言和黑客工作方法等所有對計(jì)算機(jī)時(shí)代感興趣的人的一些話題。書中的內(nèi)容不但有助于了解計(jì)算機(jī)編程的本質(zhì)、互聯(lián)網(wǎng)行業(yè)的規(guī)則,還會幫助讀者了解我們這個(gè)時(shí)代,迫使讀者獨(dú)立思考。\\n本書適合所有程序員和互聯(lián)網(wǎng)創(chuàng)業(yè)者,也適合一切對計(jì)算機(jī)行業(yè)感興趣的讀者。', '黑客與畫家', '[\"阮一峰\"]');
INSERT INTO `book` VALUES ('65', '[\"MarkPilgrim\"]', 'Paperback', '編程', 'https://img3.doubanio.com/lpic/s4059293.jpg', '9781430224150', '360', '44.99', '2009-11-6', 'Apress', '', 'Mark Pilgrim\'s Dive Into Python 3 is a hands-on guide to Python 3 (the latest version of the Python language) and its differences from Python 2. As in the original book, Dive Into Python, each chapter starts with a real, complete code sample, proceeds to pick it apart and explain the pieces, and then puts it all back together in a summary at the end.\\nThis book includes:\\n* Example programs completely rewritten to illustrate powerful new concepts now available in Python 3: sets, iterators, generators, closures, comprehensions, and much more\\n* A detailed case study of porting a major library from Python 2 to Python 3\\n* A comprehensive appendix of all the syntactic and semantic changes in Python 3\\nThis is the perfect resource for you if you need to port applications to Python 3, or if you like to jump into languages fast and get going right away.\\nWhat you\'ll learn\\n* Understand Python 3 code by seeing it broken down and explained\\n* Make full use of the latest Python features such as iterators, generators, closures, classes and comprehensions\\n* Refactor existing code to improve maintainability\\n* Learn how to serialize Python objects with the pickle protocol and JSON format\\n* Learn how to package your own Python libraries and upload them to the Python Package Index to share your projects with Python developers worldwide\\n* Use Python 3 to consume HTTP web services\\n* Port existing Python applications to Python 3 by following a case study for a major library\\nWho is this book for?\\n* Anyone who wants to learn the latest version of Python in a fast, hands-on fashion\\n* Existing Python programmers who want to learn quickly how to make the most of the features of the latest version of Python and port their code to it\\n* Programmers coming from other languages wanting a fast introduction to Python that gets them thinking about advanced concepts quickly', 'Dive Into Python 3', '[]');
INSERT INTO `book` VALUES ('183', '[\"MagnusLieHetland\"]', '平裝', '編程', 'https://img3.doubanio.com/lpic/s4387251.jpg', '9787115230270', '471', '69', '2010-7', '人民郵電出版社', '', '本書是經(jīng)典教程的全新改版,作者根據(jù)Python 3.0版本的種種變化,全面改寫了書中內(nèi)容,做到既能“瞻前”也能“顧后”。本書層次鮮明、結(jié)構(gòu)嚴(yán)謹(jǐn)、內(nèi)容翔實(shí),特別是在最后幾章,作者將前面講述的內(nèi)容應(yīng)用到了10個(gè)引人入勝的項(xiàng)目中,并以模板的形式介紹了項(xiàng)目的開發(fā)過程。本書既適合初學(xué)者夯實(shí)基礎(chǔ),又能幫助Python程序員提升技能,即使是 Python方面的技術(shù)專家,也能從書里找到令你耳目一新的東西。', 'Python基礎(chǔ)教程', '[\"司維\",\"曾軍崴\",\"譚穎華\"]');
INSERT INTO `book` VALUES ('1002', '[\"[哥倫比亞]加西亞·馬爾克斯\"]', '精裝', '小說', 'https://img3.doubanio.com/lpic/s6384944.jpg', '9787544253994', '360', '39.5', '2011-6', '南海出版公司', '', '《百年孤獨(dú)》是魔幻現(xiàn)實(shí)主義文學(xué)的代表作,描寫了布恩迪亞家族七代人的傳奇故事,以及加勒比海沿岸小鎮(zhèn)馬孔多的百年興衰,反映了拉丁美洲一個(gè)世紀(jì)以來風(fēng)云變幻的歷史。作品融入神話傳說、民間故事、宗教典故等神秘因素,巧妙地糅合了現(xiàn)實(shí)與虛幻,展現(xiàn)出一個(gè)瑰麗的想象世界,成為20世紀(jì)最重要的經(jīng)典文學(xué)巨著之一。1982年加西亞?馬爾克斯獲得諾貝爾文學(xué)獎,奠定世界級文學(xué)大師的地位,很大程度上乃是憑借《百年孤獨(dú)》的巨大影響。', '百年孤獨(dú)', '[\"范曄\"]');
INSERT INTO `book` VALUES ('1049', '[\"[日]巖井俊二\"]', '平裝', '小說', 'https://img1.doubanio.com/view/subject/l/public/s29775868.jpg', '9787201048161', '256', '18', '2004-7', '天津人民出版社', '', '日本神戶,渡邊博子在未婚夫藤井樹的三周年祭日上又一次陷入到悲痛和思念之中。博子在藤井樹的中學(xué)同學(xué)錄里找到了他在小樽市讀書時(shí)的地址。由于抑制不住對愛人的懷念,博子按著這個(gè)地址給遠(yuǎn)在天國的藤井樹寄去了一封充滿問候和思念的書信。\\n不可思議的是,不久博子竟然收到了署名為“藤井樹”的回信。經(jīng)過進(jìn)一步了解,這個(gè)藤井樹是一個(gè)年輕的女子,而且她還曾經(jīng)是男性藤井樹的同班同學(xué),原來是博子從同學(xué)錄中誤抄了她的地址。為了多了解一些男友在中學(xué)時(shí)代的情況,博子繼續(xù)與女性藤井樹保持書信來往。而藤井樹在不斷的回憶中,竟逐漸發(fā)現(xiàn)中學(xué)時(shí)代那個(gè)和自己同名同姓的少男曾經(jīng)對自己產(chǎn)生過一段真摯的感情……\\n《情書》由一個(gè)同名同姓的誤會開始,通過兩個(gè)女子書信的交流,以含情脈脈的筆觸舒緩地展現(xiàn)了兩段可貴的愛情。女主角博子對藤井樹的眷戀,兩個(gè)藤井樹之間朦朧的情感,都沒有由于藤井樹的意外死亡而枯萎,而通過細(xì)膩感人的影象深深地印在每一個(gè)觀眾的心里,永遠(yuǎn)不變。\\n在精心描繪愛情的同時(shí),巖井俊二還著意表現(xiàn)了對逝去歲月的懷念和追憶?!肚闀氛笃蒸斔固啬潜拘≌f的名字,追憶著似水的年華。過往的愛情和青春也正是在主人公的回憶中才逐漸清晰、復(fù)活。與現(xiàn)實(shí)相比,影片中的過去更為明快優(yōu)美。在那一幅幅唯美的畫面中,漫天飛舞的片片櫻花,暗生情愫的少男少女,都喚起我們的無限遐想。而《情書》中所構(gòu)筑的那個(gè)美好的中學(xué)時(shí)代,可能也正是巖井俊二和很多人最為溫馨純潔的回憶。\\n《情書》中對過去的追憶和有關(guān)生死的描繪都極具東方氣質(zhì),含蓄優(yōu)美、感而不傷地表達(dá)了故事的主題——珍惜有限的生命和寶貴的愛情。', '情書', '[\"穆曉芳\"]');
INSERT INTO `book` VALUES ('1061', '[\"[美]喬治·R·R·馬丁\"]', '平裝', '小說', 'https://img3.doubanio.com/lpic/s1358984.jpg', '9787536671256', '758', '68', '2005-5', '重慶出版社', '權(quán)力的游戲', '《冰與火之歌》由美國著名科幻奇幻小說家喬治·R·R·馬丁所著,是當(dāng)代奇幻文學(xué)一部影響深遠(yuǎn)的里程碑式的作品。它于1996年剛一問世,便以別具一格的結(jié)構(gòu),浩瀚遼闊的視野,錯(cuò)落有致的情節(jié)和生動活潑的語言,迅速征服了歐美文壇。迄今,本書已被譯為數(shù)十種文字,并在各個(gè)國家迭獲大獎。\\n本書主要描述了在一片虛構(gòu)的中世紀(jì)大陸上所發(fā)生的一系列相互聯(lián)系的宮廷斗爭、疆場廝殺、游歷冒險(xiǎn)和魔法抗衡的故事,全書七卷(包括未出的各卷)渾然一體,共同組成了一幅壯麗而完整的畫卷。書名“冰與火”,為的是突出人性掙扎的含義,書中塑造了無數(shù)的人物,但其著眼點(diǎn),卻并非孤立地凸現(xiàn)英雄主義,奉獻(xiàn)精神或奸猾陰謀,而是將書中人物放在一個(gè)“真人”的角度,寫出他或她在時(shí)代和社會的旋渦中不同的境遇與選擇。從寫作上說,本書與莎翁的《哈姆雷特》頗有共通之處。從中,讀者便能與之產(chǎn)生呼應(yīng),共同經(jīng)歷這冰與火的洗禮。\\n那么《冰與火之歌》究竟有什么獨(dú)特之處,在閱讀中有哪些地方需要關(guān)注呢?\\n首先,本書采用了獨(dú)特的視點(diǎn)人物寫作手法(POV)。通俗地說,就好比一部大片,導(dǎo)演將攝影機(jī)裝在不同人物的身上,并不斷切換。整個(gè)故事,由甲人物以自身立場講述一段后,便換為乙人物來講述,以此類推,周而復(fù)始。翻開本書可看到,每章節(jié)的名稱皆為一人物名,該人物便是本章的視點(diǎn)人物。這樣的寫法,不僅大大增強(qiáng)了代入感,尤為重要的是,它主觀地限制了讀者(通過視點(diǎn)人物的視野)獲取信息和進(jìn)行思考的廣度,為書中錯(cuò)綜復(fù)雜的線索設(shè)置提供了必要的帷幕。作者的另一巧思在于,相對于采取這一寫法的同類作品常出現(xiàn)的時(shí)間線索混亂,敘事攪成一團(tuán)等弊端,本書經(jīng)過精心梳理后,每個(gè)章節(jié)的時(shí)間互不交叉,而是呈現(xiàn)精巧的上下承接的關(guān)系,雖然視點(diǎn)人物不同,但故事卻在不斷前進(jìn)。\\n其次,本書每個(gè)章節(jié)張弛有度,節(jié)奏感非常強(qiáng)烈,能吸引人連續(xù)地閱讀。作者在寫作《冰與火之歌》之前,已獲得多次雨果獎、星云獎、軌跡獎等等,并在好萊塢擔(dān)任編劇長達(dá)十年之久,豐富的經(jīng)歷,使本書成為了他三十多年寫作經(jīng)驗(yàn)的總括和升華之作。在本書每個(gè)章節(jié),讀者都可以很輕松地發(fā)現(xiàn)其自身的起始、進(jìn)行和高潮,本書的每一卷,也形成自身的起始、進(jìn)行和高潮,乃至在由整個(gè)七卷組成的《冰與火之歌》,也呈現(xiàn)出這樣完整的結(jié)構(gòu)。不僅互相串聯(lián),其中更包含了無數(shù)的情節(jié)興奮點(diǎn)。作者曾經(jīng)說,擔(dān)任編劇,最痛苦的是不能將自己的才華在四十五分鐘一集的時(shí)間內(nèi)釋放出來,而本書,從某種意義上說,正是他對自身抱負(fù)的一種實(shí)現(xiàn)。\\n第三,這本書,誠如上面已提及的,其核心在于“人”本身。由是,它沒有簡單的答案,并不是一本可以懶洋洋瀏覽的書。它不僅包括無數(shù)扣人心弦的情節(jié),更重要的是,它所描述的情景,往往是真實(shí)人生中無可回避,必須面對的東西。因?yàn)槿吮旧硎亲顝?fù)雜的??催^本卷《權(quán)力的游戲》的讀者朋友,不妨在下列問題上作深入的思考,如瓊恩·艾林死亡的真相,行刺布蘭的真相,乃至瓊恩的父母等等,相信作者最后會讓你大吃一驚。同時(shí),相對于其他的奇幻作品,習(xí)慣于主角落地百尺毫發(fā)無傷,或危機(jī)時(shí)刻總能化險(xiǎn)為夷的讀者,本書可能是一個(gè)真正的驚愕。在作者筆下,每個(gè)角色均以其真實(shí)的軌跡在運(yùn)行,有成功,也有痛苦,甚至死亡,本書正是通過這樣的構(gòu)架翻動著讀者的情緒。\\n第四,本書是典型的西方史詩奇幻文學(xué)。既然是史詩,其落腳點(diǎn)就是整個(gè)書中呈現(xiàn)的世界,關(guān)注的問題宏偉,全書的格局龐大。歷史,人物,宗教,神話交織在一起,展示出一個(gè)亦幻亦真的世界。或許會有讀者認(rèn)為,本書更像一本歷史小說,這種論斷有其合理之處。馬丁本人曾在采訪中言道:“我喜歡歷史小說,但歷史小說最大的局限是結(jié)局已經(jīng)基本注定,不論作者付出多大的巧思,都失去了最大的懸念點(diǎn)和高潮處-結(jié)尾。”所以,他選擇了《冰與火之歌》這樣一個(gè)虛構(gòu)的世界。另一點(diǎn)值得關(guān)注的是,在奇幻文學(xué)必不可少的元素“魔法”的處理上,作者馬丁秉承托爾金的精神,運(yùn)用得非常謹(jǐn)慎,著意刻畫神秘感。讀者或許記得,《魔戒之王》雖是一部典型的奇幻作品,且出現(xiàn)大量的神靈和超自然現(xiàn)象,乃至偉大的法師甘道夫等等,但書中卻沒有具體描述一種魔法。針對這一特點(diǎn),馬丁曾經(jīng)說“魔法等元素就好比調(diào)料,不用則無以凸現(xiàn)奇幻氛圍,濫用則會串味?!痹谶@一思想的指導(dǎo)下,相對于無數(shù)火球滿天飛的“奇幻”作品,《冰與火之歌》之中的魔法顯得非常精細(xì)、神秘和巧妙。\\n一直以來,國內(nèi)的奇幻文壇苦于少有優(yōu)秀奇幻文學(xué)作品的引進(jìn)。少量以次充好,粗制濫造的作品,甚至使得文學(xué)界將在西方百花齊放,無比興旺的幻想文學(xué)歸入了少兒讀物和幼稚作品一類??v然在關(guān)注奇幻文學(xué)的讀者群中,參差不齊的玄幻文學(xué),也蒙蔽了人們的視線。透過本書的出版,閱讀一本真正的奇幻作品,感受一下奇幻小說無窮的魅力,讓她真正地扎下根來!\\n可以想見,本書的成功,必將推動新一輪奇幻文學(xué)作品引進(jìn)和閱讀的風(fēng)潮!', '冰與火之歌(卷一)', '[\"譚光磊\",\"屈暢\"]');
INSERT INTO `book` VALUES ('1120', '[\"[日]東野圭吾\"]', '平裝', '小說', 'https://img3.doubanio.com/lpic/s4610502.jpg', '9787544242516', '467', '29.8', '2008-9', '南海出版公司', '', '“只希望能手牽手在太陽下散步”,這個(gè)象征故事內(nèi)核的絕望念想,有如一個(gè)美麗的幌子,隨著無數(shù)凌亂、壓抑、悲涼的故事片段像紀(jì)錄片一樣一一還原:沒有癡癡相思,沒有海枯石爛,只剩下一個(gè)冰冷絕望的詭計(jì),最后一絲溫情也被完全拋棄,萬千讀者在一曲救贖罪惡的凄苦愛情中悲切動容……', '白夜行', '[\"劉姿君\"]');
INSERT INTO `book` VALUES ('1166', '[\"金庸\"]', '平裝', '小說', 'https://img1.doubanio.com/lpic/s23632058.jpg', '9787108006721', '1573', '96', '1994-5', '三聯(lián)書店', '', '天龍八部乃金筆下的一部長篇小說,與《射雕》,《神雕》等? ? 幾部長篇小說一起被稱為可讀性最高的金庸小說。《天龍》的故事情節(jié)曲折,內(nèi)容豐富,也曾多次被改編為電視作品。是金庸作品中集大成的一部。故事以南宋末年動蕩的社會環(huán)境為背景,展開波瀾壯闊的歷史畫卷,塑造了喬峰、段譽(yù)、虛竹、慕容復(fù)等形象鮮明的人物,成為武俠史上的經(jīng)典之作。故事精彩紛呈,人物命運(yùn)悲壯多變,是可讀性很強(qiáng)的作品,具有震撼人心的力量', '天龍八部', '[]');
INSERT INTO `book` VALUES ('1308', '[\"[日]東野圭吾\"]', '平裝', '小說', 'https://img3.doubanio.com/lpic/s3814606.jpg', '9787544244428', '264', '18', '2009-6', '南海出版公司', '', '暢銷書作家在出國的前一晚于家中被殺。兇手很快落網(wǎng),對罪行供認(rèn)不諱、但求速死,卻對作案動機(jī)語焉不詳。\\n他當(dāng)真是罪犯?他究竟為何殺人?\\n在徹查被害人與兇手的過去之后,警官面對案情、手法均平淡無奇的事實(shí),卻感到如墜萬丈深淵般無邊的寒意……\\n作為一部手記體杰作,《惡意》多年來在票選中始終名列前茅,同時(shí)被評論界和眾多讀者視為東野圭吾的巔峰之作,與《白夜行》同享光輝與榮耀:環(huán)環(huán)相扣的偵破進(jìn)展百轉(zhuǎn)千回,將手記體敘事的無限可能發(fā)揮得淋漓盡致;對復(fù)雜人性抽絲剝繭的深刻描畫,令人眼花繚亂、啞口無言。\\n更引人注目的,是《惡意》與《白夜行》恰似兩生花,《白夜行》中的愛情極度熾烈,令人粉身碎骨;《惡意》中的怨恨則無比深沉,令人萬劫不復(fù)。人性的兩極就這樣奇異地直擊人心。', '惡意', '[\"婁美蓮\"]');
INSERT INTO `book` VALUES ('1339', '[\"[英]J·K·羅琳\"]', '平裝', '小說', 'https://img3.doubanio.com/lpic/s1074376.jpg', '9787020033454', '259', '26.5', '2000-9', '人民文學(xué)出版社', '', '《哈利·波特與阿茲卡班的囚徒》是“哈利·波特”系列的第三部。\\n哈利·波特在霍格沃茨魔法學(xué)校已經(jīng)度過了不平凡的兩年,而且早已聽說魔法世界中有一座守備森嚴(yán)的阿茲卡班監(jiān)獄,里面關(guān)押著一個(gè)臭名昭著的囚徒,名字叫小天狼星布萊克。傳言布萊克是“黑魔法”高手伏地魔——?dú)⒑改傅膬词帧闹覍?shí)信徒,曾經(jīng)用一句魔咒接連結(jié)束了十三條性命。不幸的是,布萊克逃出了阿茲卡班,一心追尋哈利。布萊克在睡夢中仍然囈語不休:“他在霍格沃茨……他在霍格沃茨。”\\n哈利·波特雖然身在魔法學(xué)校的城堡內(nèi),既有朋友的赤誠幫助,也有老師的悉心呵護(hù),但校園內(nèi)危機(jī)四伏,哈利的生命時(shí)時(shí)受到威脅。一天,布萊克終于站到了哈利的面前……', '哈利·波特與阿茲卡班的囚徒', '[\"鄭須彌\"]');
INSERT INTO `book` VALUES ('1383', '[\"韓寒\"]', '平裝', '小說', 'https://img1.doubanio.com/lpic/s3557848.jpg', '9787807592099', '213', '25', '2009-1', '萬卷出版公司', '', '在你年少時(shí)是否曾夢想成為國王?\\n長大后的你是否還會繼續(xù)這個(gè)英雄夢?\\n有些人的心里沒有很多東西,哪怕是穿過內(nèi)心的深處挖到肝里也沒有。\\n有沒有比兄弟和女人更加重要的情誼?\\n有沒有比飆車時(shí)凜冽的風(fēng)更刺激的逃亡?\\n縱身跳下,恍惚里終于看見一雙雙驚訝和肯定的眼神。\\n畫面在人們面前晃過,你的青春是否也只是果園里一塊不和諧的石頭?\\n這是一個(gè)關(guān)于他的國的故事。\\n野草沖出土壤,它們一百三十五度仰望的天空在哪里……', '他的國', '[]');
INSERT INTO `book` VALUES ('1398', '[\"[英]J·K·羅琳\"]', '平裝', '小說', 'https://img1.doubanio.com/lpic/s2752367.jpg', '9787020063659', '574', '66', '2007-10', '人民文學(xué)出版社', '', '《哈利·波特與死亡圣器》是“哈利·波特”系列的第七部,也就是最后一部。\\n還有四天,哈利就要迎來自己十七歲的生日,成為一名真正的魔法師。然而,他不得不提前離開女貞路4號,永遠(yuǎn)離開這個(gè)他曾經(jīng)生活過十六年的地方。\\n鳳凰社的成員精心謀劃了秘密轉(zhuǎn)移哈利的計(jì)劃,以防哈利遭到伏地魔及其追隨者食死徒的襲擊。然而,可怕的意外還是發(fā)生了……\\n與此同時(shí),卷土重來的伏地魔已經(jīng)染指霍格沃茨魔法學(xué)校,占領(lǐng)了魔法部,控制了半個(gè)魔法界,形勢急轉(zhuǎn)直下……\\n哈利在羅恩、赫敏的陪伴下,不得不逃亡在外,隱形遁跡。為了完成校長鄧布利多的遺命,一直在暗中尋機(jī)銷毀伏地魔魂器的哈利,意外地獲悉如果他們能夠\\n擁有傳說中的三件死亡圣器,伏地魔將必死無疑。但是,伏地魔也早已開始了尋找死亡圣器的行動,并派出眾多食死徒,布下天羅地網(wǎng)追捕哈利……\\n哈利與伏地魔在魔法學(xué)校的禁林中遭遇了,哈利倒在伏地魔搶先到手的一件致命的圣器之下……\\n然而,伏地魔未能如愿以償,死亡圣器不可能戰(zhàn)勝純正的靈魂。哈利贏得了這場殊死較量的最終勝利……', '哈利·波特與死亡圣器', '[\"馬愛農(nóng)\",\"馬愛新\"]');
INSERT INTO `book` VALUES ('1560', '[\"王小波\"]', '平裝', '小說', 'https://img1.doubanio.com/lpic/s3463069.jpg', '9787545201475', '172', '20', '2008-10', '上海錦繡文章出版社', '', '一篇言說“存在之煩”的作品,道出了王小波的詩人本質(zhì)及他對藝術(shù)與人生的核心理解。\\n好多年前,我在京郊插隊(duì)時(shí),常常在秋天走路回家,路長得走不完。我心里緊繃繃,不知道走到哪里去,也不知走完了路以后干什么。路邊全是高高的楊樹,風(fēng)過處無數(shù)落葉就如一場黃金雨從天頂飄落。風(fēng)聲呼嘯,時(shí)緊時(shí)松。風(fēng)把道溝里的落葉吹出來,像金色的潮水涌過路面。我一個(gè)人走著,前后不見一個(gè)人。忽然之間,我的心里開始松動。走著走著,覺得要頭朝下墜入藍(lán)天,兩邊紛紛的落葉好像天國金色的大門。我心里一蕩,一些詩句涌上心頭。就在這一瞬間,我解脫了一切苦惱,回到存在本身。', '三十而立', '[]');
INSERT INTO `book` VALUES ('7821', '[\"[伊朗]瑪贊·莎塔碧\"]', '平裝', '歷史', 'https://img3.doubanio.com/lpic/s6144591.jpg', '9787108033215', '348', '39', '2010-1', '生活·讀書·新知三聯(lián)書店', '', '伊朗,一個(gè)遙遠(yuǎn)而神秘的國度。長期以來人們談起她總是將之與原教旨主義、狂熱主義和恐怖主義聯(lián)系在一起。作者認(rèn)為事實(shí)并非如此。作者出身豪門,以當(dāng)年伊朗的“伊斯蘭革命”為背景,用客觀的眼光敘述了國王被推翻、兩伊戰(zhàn)爭等事件。伊朗的政治、歷史、文化也隨這個(gè)女孩的成長經(jīng)歷以及那黑白分明、質(zhì)樸有力的有版畫感的圖畫,走近了讀者,震撼人心。出版后,先后獲得法國安古蘭國際漫畫節(jié)年度最佳漫畫獎,德國法蘭克福書展最佳漫畫獎,拍成動畫片后,入圍美國奧斯卡金像獎最佳動畫長片、第33屆法國電影愷撒獎最佳影片、最佳改編劇本等六大獎項(xiàng)提名,并獲第60屆戛納國際電影節(jié)評委獎。本次將原來的四冊合為一本出版。', '我在伊朗長大', '[\"馬愛農(nóng)\",\"左濤\"]');
INSERT INTO `book` VALUES ('8854', '[\"[日]村上春樹\"]', '精裝', '村上春樹', 'https://img1.doubanio.com/lpic/s29494718.jpg', '9787532754533', '381', '32', '2011-8-1', '上海譯文出版社', '', '《遠(yuǎn)方的鼓聲》是村上春樹的游記,時(shí)間為1986-1989年,游歷地區(qū)為歐洲,主要為希臘、意大利兩個(gè)國家?!耙惶煸缟媳犙坌褋恚嚾粋?cè)耳傾聽,遠(yuǎn)處傳來鼓聲。鼓聲從很遠(yuǎn)很遠(yuǎn)的地方、從很遠(yuǎn)很遠(yuǎn)的時(shí)間傳來,微乎其微。聽著聽著,我無論如何都要踏上漫長的旅途”——作者聽得的微乎其微的“遠(yuǎn)方的鼓聲”,最終成了您手頭上這部可觸可觀的《遠(yuǎn)方的鼓聲》。村上的游記具有個(gè)人特色,他幾乎不寫人所熟知的名勝古跡,而是與普通居民共同生活,描寫他們的日常工作、飲食起居等,以及他們的所思所想,富有深度感,對讀者了解這些國家的真實(shí)狀況有很大幫助,文筆也幽默有趣,可讀性很強(qiáng)。', '遠(yuǎn)方的鼓聲', '[\"林少華\"]');
INSERT INTO `book` VALUES ('8866', '[\"三毛\"]', '精裝', '散文', 'https://img3.doubanio.com/lpic/s2393243.jpg', '9787530208922', '312', '28', '2007-6', '北京十月文藝出版社', '', '《夢里花落知多少》記錄了荷西過世后三毛的生活,共23篇。內(nèi)容均為臺灣皇冠出版社81年至88年的初版。\\n荷西的死對三毛又是一場劫難,因此由《背影》到這本書,在文學(xué)、心情上都與早期大不相同,說情敘事極其內(nèi)斂,但在曲折的空間之余,讀者當(dāng)能感受到三毛哀而不傷的筆調(diào)里,更多的其實(shí)是三毛對人生的堅(jiān)定。', '夢里花落知多少', '[]');
INSERT INTO `book` VALUES ('15198', '[\"韓寒\"]', '平裝', '中國文學(xué)', 'https://img1.doubanio.com/lpic/s1080179.jpg', '9787506322522', '225', '16', '2002-1', '作家出版社', '', '小說以第一人稱的寫作手法講述了“我”的生活,為讀者展示了一個(gè)頗具叛逆性的人物。\\n初涉社會,人物成長的過程中體會了社會的復(fù)雜和現(xiàn)實(shí)的殘酷以及人心的不可探測,所以許多是作者的真實(shí)感受,是滲透閱歷的寫作。有失望、迷惘,但不斷追求。', '像少年啦飛馳', '[]');
INSERT INTO `book` VALUES ('15984', '[\"魯迅\"]', '平裝', '魯迅', 'https://img3.doubanio.com/lpic/s27970504.jpg', '9787201089140', '296', '25', '2015-1-1', '天津人民出版社', '魯迅散文精選集', '曾經(jīng)在陳丹青先生《魯迅是誰?》的演講中聽到一個(gè)別致的觀點(diǎn),他說“魯迅的被扭曲,是現(xiàn)代中國一樁超級公案”,對魯迅以“政治上的正確”給予他的作品褒揚(yáng)、抬高,不可懷疑、不可反對,致使魯迅作品的層次和人格魅力被過度簡化,他本身豐富優(yōu)美的用字,以及風(fēng)趣幽默的行文,后人常常視而不見,也許我們真的不小心錯(cuò)過了一個(gè)可愛的魯迅。\\n的確,魯迅是愛憎分明的,但不等于說魯迅沒有情感,沒有他溫和、慈愛、狡黠的那一面,他也對人、對動物、對鄉(xiāng)土、對自然有著特別的情懷。若是僅僅從某一些方面去解讀魯迅作品內(nèi)涵的全部,這對他是非常不公平的。\\n這個(gè)版本的《朝花夕拾》做了去政治化的嘗試,真誠感受魯迅作品的豐滿原貌,精選《魯迅全集》中親切好讀、文字優(yōu)美的散文48篇。全書分為四部分:第一部分《朝花夕拾》,兒時(shí)美好記憶牽掛一生;第二部分,選取魯迅先生隨手拈來美文小品,余閑時(shí),賞玩風(fēng)箏、秋葉、江南雪;第三部分,看先生風(fēng)趣妙談古今歷史;第四部分,記憶中的那些人那些事,在先生筆端隨波蕩漾,靜謐安好。\\n活生生的魯迅如此可愛,你本該更早喜歡。', '朝花夕拾', '[]');
INSERT INTO `book` VALUES ('21050', '[\"[日]井上雄彥\"]', '平裝', '漫畫', 'https://img3.doubanio.com/lpic/s2853431.jpg', '9787806649343', '184', '7.5', '2005-1', '長春出版社', '', '《灌籃高手》又名《籃球飛人》,故事講述高一學(xué)生櫻木花道在國中時(shí)被50位他心儀的女孩子拒絕了,因第50個(gè)女生的一句“我喜歡的是籃球隊(duì)的小田同學(xué)?!倍鴮@球深惡痛絕。但當(dāng)他進(jìn)了湘北高校后,一名叫晴子的女生走來問他“你喜歡籃球嗎?”因?yàn)榍缱?,櫻木于是由從不喜歡籃球,搖身一變地向晴子說: “我喜歡!”櫻木為得到晴子的芳心,不顧一切的加入湘北籃球社,并以驚人的速度進(jìn)步,這樣櫻木的籃球生涯自此展開了。\\n在湘北籃球隊(duì)中,隊(duì)長赤木是位一直因無良好隊(duì)友而無法出人頭地的灌籃高手。然而在這一年有初中時(shí)已是籃球高手的流川楓,經(jīng)常打架而住院的宮城良田出院,曾誤入歧途但初中時(shí)是MVP的三井壽加入湘北籃球社,使赤木稱霸全國的心愿不再是夢想。在縣大賽中,他們五人合力終于拿到全國大賽的入場券。\\n全國大賽畢竟不同于縣大賽,在第二回合,湘北就碰上了去年也是前年的霸主——三王工高。所有觀眾都認(rèn)為三王必勝,湘北處于心理弱勢。然而歷史的改變勢不可當(dāng),湘北背水一戰(zhàn),在死對頭櫻木花道和流川楓的合作下,終將山王擊敗……', '灌籃高手31', '[\"鄒寧\"]');
INSERT INTO `book` VALUES ('51664', '[\"[日]新井一二三\"]', '平裝', '美食', 'https://img3.doubanio.com/lpic/s29034294.jpg', '9787544762069', '306', '39', '2016-10', '譯林出版社', '', '日本料理就是壽司、刺身、壽喜燒?其實(shí)醬醬燒、秋刀魚昆布卷、熏烤鰹魚等等也是不可多得的美味。日本人的便當(dāng)有什么學(xué)問?日本人說“餃子”時(shí)是山東口音?翡冷翠的牛排、綠皮火車上的年夜飯、新疆綠洲的拉條子,跟這位日本“女漢子”又有怎樣的情緣?\\n尋常一餐飯,總有不尋常的人情故事和文化趣談。\\n《東京時(shí)味記》是日本女作家新井一二三的同名美食專欄首次結(jié)集。她說:“旅行與美食密不可分,還有閱讀?!彼赃@次這個(gè)喜歡獨(dú)立旅行的女子用八十四種美食帶你去體驗(yàn)普通日本人家的餐桌風(fēng)景,開啟一段難忘的味覺之旅。', '東京時(shí)味記', '[]');


二、實(shí)現(xiàn)智能查詢,根據(jù)author,publisher,title字段進(jìn)行智能查詢。


driverNameProperty=com.mysql.jdbc.Driver
urlProperty=jdbc:mysql://localhost:3306/j190802?useUnicode=true&characterEncoding=UTF-8
userProperty=root
pwdProperty=root


package jdbcMySQL;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import java.util.Scanner;
public class DbTools {
? ? private static String driverName;
? ? private static String url;
? ? private static String user;
? ? private static String pwd;
? ??
? ? static {
? ? //讀取properties文件:
? ? Properties Pro = new Properties();
? ? //將db.properties文件讀取到內(nèi)存中去:
? ? InputStream Inp = DbTools.class.getClassLoader()
? ? .getResourceAsStream("./db.properties");
? ?
//? ? : 也可以不寫“./”
? ? //加載內(nèi)容:
? ? try {
Pro.load(Inp);
//讀取內(nèi)容:
driverName = Pro.getProperty("driverNameProperty");
//System.out.println(driverName);
url = Pro.getProperty("urlProperty");
user = Pro.getProperty("userProperty");
pwd = Pro.getProperty("pwdProperty");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
? ? }
? ??
? ? //獲取數(shù)據(jù)庫連接對象的方法:
? ? public static com.mysql.jdbc.Connection getConn(){
? ? Connection Con = null;
? ? try {
Class.forName(driverName);
Con = DriverManager.getConnection(url,user,pwd);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}? ?
? ? return (com.mysql.jdbc.Connection) Con;
? ? }
? ??
? ? public static void close(ResultSet Res,PreparedStatement Pre
? ? ,Connection Con){
? ? ? ? try {
? ? ? ? if(Res != null) {
? ? ? ? ? ? Res.close();
? ? ? ? ? ? }
? ? ? ? ? ? if(Pre != null) {
? ? ? ? ? ? ? Pre.close();
? ? ? ? ? ? }
? ? ? ? ? ? if(Con != null) {
? ? ? ? ? ? Con.close();
? ? ? ? ? ? }
? ? ? ? } catch(Exception e) {
? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
? ??
}


package jdbcMySQL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class zhiNengChaXun {
public static void main(String[] args) {
// 我下面套了個(gè)大的while循環(huán),可以多次智能查詢。
while(true){
System.out.println("\n詩書畫唱提醒你!請輸入需要搜索的詞條\n"
+ "【注:詞條必須為作者,出版社"
+ ",書名"
+ "中的內(nèi)容】");
Scanner Sca = new Scanner(System.in);
//從控制臺接收輸入的詞條
String key = Sca.next();
//處理搜索詞條以便于進(jìn)行模糊查詢
key = "%" + key + "%";
//進(jìn)行數(shù)據(jù)庫的查詢
// author(作者),publisher(出版社),title(書名):
String sql = "select * from book where"
+ " title like ? or author like ? or publisher like ?";
Connection Con = null;
PreparedStatement Pre = null;
ResultSet Res = null;
try {
Con = DbTools.getConn();
Pre = Con.prepareStatement(sql);
//下面的setXXX是用于設(shè)置占位符的內(nèi)容的:
Pre.setString(1, key);
Pre.setString(2, key);
Pre.setString(3, key);
Res = Pre.executeQuery();
//if(Res.next()){
while(Res.next()) {
String title = Res.getString("title");
String author = Res.getString("author");
String publisher = Res.getString("publisher");
System.out.println(title + "\t" + author + "\t" + publisher);
//if(title==null &&author==null && publisher==null ){
////
////
//System.out.println("沒有你要的書");
//}
}
//}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}


三、實(shí)現(xiàn)組合查詢author,binding,cateory和pages進(jìn)行組合查詢。
其中author是模糊查詢,category和binding是=匹配,pages是范圍查詢between and

package jdbcMySQL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class zuHeChaXun {
//個(gè)人的理解(多去想出個(gè)人的理解,并且記錄下來等,會很有用。
// 個(gè)人的理解就像是自己的翻譯等,讓自己更容易地懂更多的東西等)
//:智能查詢就是SQL語句中用了模糊查詢和or的關(guān)鍵詞,有或者的關(guān)系。
//組合查詢就是SQL語句中用了組合查詢和and的關(guān)鍵詞,有并且的關(guān)系。
public static void main(String[] args) {
// author(作者),binding(平裝還是精裝)
// ,category(圖書類型)和pages(總頁數(shù))
Scanner Sca = new Scanner(System.in);
System.out.println("請輸入關(guān)于作者的關(guān)鍵詞條"
// + "\n【可以輸入0表示不知道】"
);
//下面是從控制臺接收輸入的詞條:
String authorKey = Sca.next();
System.out.println("請輸入關(guān)于平裝還是精裝的關(guān)鍵詞條"
+ "\n【輸入“平裝”或“精裝”】"
// + "\n【可以輸入0表示不知道】"
);
//下面是從控制臺接收輸入的詞條:
String bindingKey = Sca.next();
System.out.println("請輸入關(guān)于圖書類型\n"
+ "【輸入“小說”或“編程”或“歷史”】"
// + "\n【可以輸入0表示不知道】"
);
//下面是從控制臺接收輸入的詞條:
String categoryKey = Sca.next();
System.out.println("請輸入總頁數(shù)范圍\n"
+ "【輸入兩個(gè)數(shù)值分別當(dāng)做"
+ "范圍的頭和尾】"
// + "\n【可以輸入0表示不知道】"
);
//下面是從控制臺接收輸入的詞條:
String pagesKey = Sca.next();
String pagesKey2 = Sca.next();
// ————————————
//? ? ? ? String bname = "";
//? ? ? ? Double price = null;
//? ? ? ? String author = authorKey;
//? ? ? ? String publisher = "";
//? ? ? ? String pubdate = "";
// ————————————
? ? ? ? //用List集合等來存放輸入的條件:
? ? ? ? List<Object>jiHe = new ArrayList<Object>();
? ? ? ??
? ? ? ? //用StringBuilder拼接組合查詢的字符串:
? ? ? ? StringBuilder sql =?
new StringBuilder("select * from book where 1=1 ");
? ? ? ??
//? ——————————
//? 下面的if判斷是用來判斷輸入的內(nèi)容是否為空,
//? 而判斷String字符串類型的
//? 內(nèi)容,最好是既要用上!= null(翻譯:不為空) 還要用上
//.trim().length() > 0(翻譯:去掉空格后長度大于0),而Double
// ,Integer等的不用.trim().length() > 0的判斷
? ? ? ? if(authorKey != null &&
? ? ? ? authorKey.trim().length() >0
//? ? ? ? &&authorKey !="0"
? ? ? ? ) {
//? ? ? ? ? 一般都是用 append追加到原來的sql語句中的:
? ? ? ? sql.append("and author like ? ");
? ? ? ? //下面是用add將輸入的條件存放到集合中:
? ? ? ? jiHe.add("%" + authorKey + "%");
? ? ? ? }
?if(bindingKey!= null && bindingKey.trim().length() > 0
// &&bindingKey !="0"
) {
? ? ? ? sql.append("and binding = ?");
? ? ? ? jiHe.add(bindingKey);
? ? ? ? }
if(categoryKey != null && categoryKey.trim().length() > 0
//&&categoryKey !="0"
) {
? ? ? ?
? ? ?
? ? ? ? sql.append("and category like ? ");
? ? ? ? jiHe.add(categoryKey);
? ? ? ? }
? ? ? ? if(pagesKey? != null
//? ? ? ? &&pagesKey !="0"
? ? ? ? &&pagesKey2? != null
? ? ? ? ) {
? ? ? ? sql.append("and pages between ? and ?");
? ? ? ? jiHe.add(pagesKey);
? ? ? ? jiHe.add(pagesKey2);
? ? ? ? }
//? ? ? ?___________
// 下面是打印拼接后sql的語句,用于檢查sql語句的語法等是否出了錯(cuò)誤:
? ? ? ? System.out.println(sql);
? ? ? ??
//? ? ? ? ___
? ? ? ? for(Object duiXiang : jiHe) {
? ? ? ? System.out.println(duiXiang);
? ? ? ? }
? ? ? ??
? ? ? ? Connection Con = null;
? ? ? ? PreparedStatement Pre = null;
? ? ? ? ResultSet Res = null;
? ? ? ? ? ? ? ?
? ? ? ? try {
? ? ? ? Con = DbTools.getConn();
Pre = Con.prepareStatement(sql.toString());
//用while循環(huán)將Pre中的值依次的設(shè)置到占位符中去:
for(int i = 0;i < jiHe.size();i ++) {
// 個(gè)人的理解: 因?yàn)橐O(shè)置占位符的數(shù)據(jù)類型不止 一種,所以下面要
// 用setObject,因?yàn)镺bject包括String等數(shù)據(jù)類型.
Pre.setObject(i + 1, jiHe.get(i));
}
Res = Pre.executeQuery();
while(Res.next()) {
// author(作者),binding(平裝還是精裝)
// ,cateory(圖書類型)和pages(總頁數(shù))
String title = Res.getString("title");
String price = Res.getString("price");
String author = Res.getString("author");
String binding = Res.getString("binding");
String category = Res.getString("category");
int pages = Res.getInt("pages");
// System.out.println("______");
System.out.println(
"\n書名:"+title+"\t書的價(jià)格:"+price+"元\t書作者:"+author +?
"\t\n平裝還是精裝:" + binding + "\t\t圖書類型:"?
? ? + category + "\t總頁數(shù):" + pages+"頁\n");
// System.out.println("______");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}


擴(kuò)展知識內(nèi)容:
個(gè)人推薦文章鏈接:
程序員必備:徹底弄懂常見的7種中文字符編碼 - 騰訊的文章 - 知乎 https://zhuanlan.zhihu.com/p/46216008
程序開發(fā)常見的有ASCII、GB2312、GBK、GB18030、UTF8、ANSI、Latin1中文編碼。
