mysql_不能插入中文的解決辦法_第1頁
mysql_不能插入中文的解決辦法_第2頁
mysql_不能插入中文的解決辦法_第3頁
mysql_不能插入中文的解決辦法_第4頁
mysql_不能插入中文的解決辦法_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、mysql 不能插入中文的解決辦法,修改 mysql 的字符集,操作見藍色字體部分收藏一 . 安裝與配置 mysql 二 . 常用 mysql 命令行命令1 .mysql 的啟動與停止啟動 mysql 服務(wù) net start mysql 停止 mysql 服務(wù) net stop mysql 2 . netstat na | findstr 3306 查看被監(jiān)聽的端口, findstr 用于查找后面的端口是否存在3 . 在命令行中登陸 mysql 控制臺 , 即使用 mysql commend line tool 語法格式mysql user=root password=123456 db_n

2、ame 或 mysql uroot p123456 db_name 4 . 進入 mysql 命令行工具后, 使用 status; 或s 查看運行環(huán)境信息5 . 切換連接數(shù)據(jù)庫的語法: use new_dbname; 6 . 顯示所有數(shù)據(jù)庫: show databases; 7 . 顯示數(shù)據(jù)庫中的所有表: show tables; 8 . 顯示某個表創(chuàng)建時的全部信息: show create table table_name; 9 . 查看表的具體屬性信息及表中各字段的描述describe table_name; 縮寫形式: desc table_name; 三 。 mysql 中的 sql

3、語句1 . 數(shù)據(jù)庫創(chuàng)建: create database db_name; 數(shù)據(jù)庫刪除: drop database db_name; 刪除時可先判斷是否存在,寫成: drop database if exits db_name 2 . 建表 : 創(chuàng)建數(shù)據(jù)表的語法: create table table_name ( 字段 1 數(shù)據(jù)類型, 字段2 數(shù)據(jù)類型 ); 例 : create table mytable (id int , username char(20); 刪表 : drop table table_name; 例 : drop table mytable; 8 . 添加數(shù)據(jù): i

4、nsert into 表名 (字段 1 , 字段 2 , .) values (值 1 , 值 2 , .); 如果向表中的每個字段都插入一個值,那么前面 括號內(nèi)字段名可寫也可不寫例 : insert into mytable (id,username) values (1,zhangsan);9 . 查詢 : 查詢所有數(shù)據(jù): select * from table_name; 查詢指定字段的數(shù)據(jù): select 字段 1 , 字段 2 from table_name; 例 : select id,username from mytable where id=1 order by desc;多

5、表查詢語句- 參照第 17條實例10 . 更新指定數(shù)據(jù), 更新某一個字段的數(shù)據(jù)(注意,不是更新字段的名字)update table_name set 字段名 = 新值 , 字段 2 = 新值 , .where id=id_num order by 字段 順序 例 : update mytable set username=lisi where id=1;order 語句是查詢的順序, 如 : order by id desc( 或 asc) , 順序有兩種: desc倒序(1001,即從最新數(shù)據(jù)往后查詢 ),asc(從 1-100),where 和 order 語句也可用于查詢 select

6、與刪除 delete 11 . 刪除表中的信息: 刪除整個表中的信息: delete from table_name; 刪除表中指定條件的語句: delete from table_name where 條件語句; 條件語句如 : id=3; 12 . 創(chuàng)建數(shù)據(jù)庫用戶一次可以創(chuàng)建多個數(shù)據(jù)庫用戶如:create user username1 identified by password , username2 identified by password .13 . 用戶的權(quán)限控制: grant 庫,表級的權(quán)限控制: 將某個庫中的某個表的控制權(quán)賦予某個用戶grant all on db_name

7、.table_name to user_name indentified by password ;14 . 表結(jié)構(gòu)的修改(1)增加一個字段格式:alter table table_name add column ( 字段名 字段類型 ); -此方法帶括號(2)指定字段插入的位置:alter table table_name add column 字段名 字段類型 after 某字段;刪除一個字段:alter table table_name drop 字段名 ; (3)修改字段名稱 /類型alter table table_name change 舊字段名 新字段名新字段的類型 ; (4)改

8、表的名字alter table table_name rename to new_table_name; (5)一次性清空表中的所有數(shù)據(jù)truncate table table_name; 此方法也會使表中的取號器(id)從 1 開始15 . 增加主鍵,外鍵,約束,索引。 。 。 。(使用方法見 17 實例) 約束(主鍵 primary key、唯一性 unique、非空 not null ) 自動增張auto_increment 外鍵 foreign key-與 reference table_name(col_name列名)配合使用,建表時單獨使用 刪除多個表中有關(guān)聯(lián)的數(shù)據(jù)-設(shè)置 fore

9、ign key 為 set null -具體設(shè)置參考幫助文檔16 . 查看數(shù)據(jù)庫當前引擎show create table table_name; 修改數(shù)據(jù)庫引擎alter table table_name engine=myisam | innodb; 17 . sql語句運用實例 : -1 建 users表create table users (id int primary key auto_increment,nikename varchar(20) not null unique,password varchar(100) not null,address varchar(200),

10、reg_date timestamp not null default current_timestamp); -2 建 articles表,在建表時設(shè)置外鍵create table articles (id int primary key auto_increment,content longtext not null,userid int,constraint foreign key (userid) references users(id) on delete set null); - -2.1 建 articles 表,建表時不設(shè)置外鍵create table articles (id

11、 int primary key auto_increment,content longtext not null,userid int); -2.2 給 articles 表設(shè)置外鍵alter table articles add constraint foreign key (userid) references users(id) on delete set null; - -3. 向 users表中插入數(shù)據(jù) ,同時插入多條insert into users (id,nikename,password,address) values (1,lyh1,1234,null),(10,lyh2

12、2,4321,湖北武漢 ),(null,lyh333,5678,北京海淀 ); -4. 向 article 中插入三條數(shù)據(jù)insert into articles (id,content,userid) values (2,hahahahahaha,11),(null,xixixixixix,10),(13,aiaiaiaiaiaiaiaiaiaiaiaia,1),(14,hohoahaoaoooooooooo,10); -5. 進行多表查詢,選擇users表中 id=10 的用戶發(fā)布的所有留言及該用戶的所有信息select articles.id,articles.content,users

13、.* from users,articles where users.id=10 and articles.userid=users.id order by articles.id desc; -6. 查看數(shù)據(jù)庫引擎類型show create table users; -7. 修改數(shù)據(jù)庫引擎類型alter table users engine=myisam; - 因為 users表中 id 被設(shè)置成外鍵,執(zhí)行此句會出錯-8. 同表查詢 ,已知一個條件的情況下.查詢 id 號大于用戶 lyh1 的 id 號的所有用戶select a.id,a.nikename,a.address from us

14、ers a,users b where b.nikename=lyh1 and a.idb.id; -也可寫成select id,nikename,address from users where id(select id from users where nikename=lyh1); 9. 顯示年齡比領(lǐng)導還大的員工:select from users a,users b where a.managerid=b.id and a.ageb.age; 查詢編號為 2 的發(fā)帖人 : 先查 articles 表,得到發(fā)帖人的編號 ,再根據(jù)編號查users得到的用戶名。接著用關(guān)聯(lián)查詢

15、. select * from articles,users得到笛卡兒積 ,再加 order by articles.id以便觀察使用 select * from articles,users where articles.id=2 篩選出 2 號帖子與每個用戶的組合記錄再使用 select * from articles,users where articles.id=2 and articles.userid=users.id 選出 users.id等于 2 號帖的發(fā)帖人 id 的記錄 . 只取用戶名 :select user where user.id=(select userid fr

16、om articles where article.id =2) 找出年齡比小王還大的人:假設(shè)小王是 28 歲,先想找出年齡大于28 的人select * from users where age(select age from users where name=xiaowang); * 要查詢的記錄需要參照表里面的其他記錄: select from users a,users b where =xiaowang and a.ageb.age 表里的每個用戶都想pk 一下.select a.nickname,b.nickname from users a,users

17、b where a.idb.id ; 更保險的語句 :select a.nickname,b.nickname from (select * from users order by id) a,(se lect * from users order by id) b where a.idb.id ; 再查詢某個人發(fā)的所有帖子. select b.* from articles a , articles b where a.id=2 and a.userid=b.userid 說明: 表之間存在著關(guān)系, er 概念的解釋,用access中的示例數(shù)據(jù)庫演示表之間的關(guān)系 .只有 innodb 引擎才

18、支持 foreign key,mysql 的任何引擎目前都不支持check約束。四、字符集出現(xiàn)錯誤解決辦法出現(xiàn)的問題:mysql update users - set username= 關(guān)羽 - where userid=2; error 1366 (hy000): incorrect string value: xb9xd8xd3xf0 for column usern ame at row 1 向表中插入中文字符時,出現(xiàn)錯誤。mysql select * from users; +-+-+ | userid | username | +-+-+ | 2 | ? | | 3 | ? | |

19、 4 | ? | +-+-+ 3 rows in set (0.00 sec) 表中的中文字符位亂碼。解決辦法:使用命令:mysql status; - mysql ver 14.12 distrib 5.0.45, for win32 (ia32) connection id: 8 current database: test current user: rootlocalhost ssl: not in use using delimiter: ; server version: 5.0.45-community-nt mysql community edition (gpl) proto

20、col version: 10 connection: localhost via tcp/ip server characterset: latin1 db characterset: latin1 client characterset: gbk conn. characterset: gbk tcp port: 3306 uptime: 7 hours 39 min 19 sec threads: 2 questions: 174 slow queries: 0 opens: 57 flush tables: 1 open ta bles: 1 queries per second av

21、g: 0.006 - 查看 mysql 發(fā)現(xiàn) server characterset ,db characterset的字符集設(shè)成了latin1,所以出現(xiàn)中文亂碼。mysql show tables; +-+ | tables_in_test | +-+ | users | +-+ 1 row in set (0.00 sec) 更改表的字符集。mysql alter table users character set gbk; query ok, 3 rows affected (0.08 sec) records: 3 duplicates: 0 warnings: 0 查看表的結(jié)構(gòu):my

22、sql show create users; error 1064 (42000): you have an error in your sql syntax; check the manual that corresponds to your mysql server version for the right syntax to use near users at line 1 mysql show create table users; +-+- -+ | table | create table | +-+- -+ | users | create table users ( user

23、id int(11) default null, username char(20) character set latin1 default null ) engine=innodb default charset=gbk | +-+- -+ 1 row in set (0.00 sec) mysql desc users; +-+-+-+-+-+-+ | field | type | null | key | default | extra | +-+-+-+-+-+-+ | userid | int(11) | yes | | null | | | username | char(20)

24、 | yes | | null | | +-+-+-+-+-+-+ 2 rows in set (0.02 sec) 這時向表中插入中文然后有錯誤。mysql insert into users values(88, 中文); error 1366 (hy000): incorrect string value: xd6xd0 xcexc4 for column usern ame at row 1 mysql insert into users values(88, 中文); error 1366 (hy000): incorrect string value: xd6xd0 xcexc4

25、for column usern ame at row 1 還要更改 users表的 username的字符集。mysql alter table users modify username char(20) character set gbk; error 1366 (hy000): incorrect string value: xc0 xeexcbxc4 for column usern ame at row 1 mysql alter table users modify username char(20) character set gbk; error 1366 (hy000):

26、incorrect string value: xc0 xeexcbxc4 for column usern ame at row 1 因為表中已經(jīng)有數(shù)據(jù),所以更改username字符集的操作沒有成 * 清空 users表中的數(shù)據(jù)mysql truncate table users; query ok, 3 rows affected (0.01 sec) 從新更改 user表中 username的字符集mysql alter table users modify username char(20) character set gbk; query ok, 0 rows affected (0

27、.06 sec) records: 0 duplicates: 0 warnings: 0 這時再插入中文字符,插入成* 。mysql insert into users values(88, 中文); query ok, 1 row affected (0.01 sec) mysql select * from users; +-+-+ | userid | username | +-+-+ | 88 | 中文 | +-+-+ 1 row in set (0.00 sec) mysql 本文來自csdn博客,轉(zhuǎn)載請標明出處:http:/ mydb mysqlalter database my

28、db character set utf8; 創(chuàng)建數(shù)據(jù)庫指定數(shù)據(jù)庫的字符集mysqlcreate database mydb character set utf8; 通過 mysql 命令行修改 :mysql set character_set_client=utf8; query ok, 0 rows affected (0.00 sec)mysql set character_set_connection=gbk; query ok, 0 rows affected (0.00 sec)mysql set character_set_database=gbk; query ok, 0 ro

29、ws affected (0.00 sec)mysql set character_set_results=gbk; query ok, 0 rows affected (0.00 sec)mysql set character_set_server=gbk; query ok, 0 rows affected (0.00 sec)mysql set character_set_system=gbk; query ok, 0 rows affected (0.01 sec)mysql set collation_connection=gbk; query ok, 0 rows affected (0.01 sec)mysql set collation_database=gbk; query ok, 0 rows affected (0.01 sec)mysql set collation_server=gbk; query ok, 0 rows affected (0.01 sec)查看: mysql show variables like character_set_%; +-+-+ | variable_name | value | +-+-+ | character_set

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論