版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、mysql 不能插入中文的解決辦法,修改 mysql 的字符集,操作見藍(lán)色字體部分收藏一 . 安裝與配置 mysql 二 . 常用 mysql 命令行命令1 .mysql 的啟動(dòng)與停止啟動(dòng) mysql 服務(wù) net start mysql 停止 mysql 服務(wù) net stop mysql 2 . netstat na | findstr 3306 查看被監(jiān)聽的端口, findstr 用于查找后面的端口是否存在3 . 在命令行中登陸 mysql 控制臺(tái) , 即使用 mysql commend line tool 語法格式mysql user=root password=123456 db_n
2、ame 或 mysql uroot p123456 db_name 4 . 進(jìn)入 mysql 命令行工具后, 使用 status; 或s 查看運(yùn)行環(huán)境信息5 . 切換連接數(shù)據(jù)庫的語法: use new_dbname; 6 . 顯示所有數(shù)據(jù)庫: show databases; 7 . 顯示數(shù)據(jù)庫中的所有表: show tables; 8 . 顯示某個(gè)表創(chuàng)建時(shí)的全部信息: 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; 刪除時(shí)可先判斷是否存在,寫成: 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 , .); 如果向表中的每個(gè)字段都插入一個(gè)值,那么前面 括號(hào)內(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條實(shí)例10 . 更新指定數(shù)據(jù), 更新某一個(gè)字段的數(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 . 刪除表中的信息: 刪除整個(gè)表中的信息: delete from table_name; 刪除表中指定條件的語句: delete from table_name where 條件語句; 條件語句如 : id=3; 12 . 創(chuàng)建數(shù)據(jù)庫用戶一次可以創(chuàng)建多個(gè)數(shù)據(jù)庫用戶如:create user username1 identified by password , username2 identified by password .13 . 用戶的權(quán)限控制: grant 庫,表級(jí)的權(quán)限控制: 將某個(gè)庫中的某個(gè)表的控制權(quán)賦予某個(gè)用戶grant all on db_name
7、.table_name to user_name indentified by password ;14 . 表結(jié)構(gòu)的修改(1)增加一個(gè)字段格式:alter table table_name add column ( 字段名 字段類型 ); -此方法帶括號(hào)(2)指定字段插入的位置:alter table table_name add column 字段名 字段類型 after 某字段;刪除一個(gè)字段: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; 此方法也會(huì)使表中的取號(hào)器(id)從 1 開始15 . 增加主鍵,外鍵,約束,索引。 。 。 。(使用方法見 17 實(shí)例) 約束(主鍵 primary key、唯一性 unique、非空 not null ) 自動(dòng)增張auto_increment 外鍵 foreign key-與 reference table_name(col_name列名)配合使用,建表時(shí)單獨(dú)使用 刪除多個(gè)表中有關(guān)聯(lián)的數(shù)據(jù)-設(shè)置 fore
9、ign key 為 set null -具體設(shè)置參考幫助文檔16 . 查看數(shù)據(jù)庫當(dāng)前引擎show create table table_name; 修改數(shù)據(jù)庫引擎alter table table_name engine=myisam | innodb; 17 . sql語句運(yùn)用實(shí)例 : -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í)設(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í)不設(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ù) ,同時(shí)插入多條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. 進(jìn)行多表查詢,選擇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; - 因?yàn)?users表中 id 被設(shè)置成外鍵,執(zhí)行此句會(huì)出錯(cuò)-8. 同表查詢 ,已知一個(gè)條件的情況下.查詢 id 號(hào)大于用戶 lyh1 的 id 號(hào)的所有用戶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)導(dǎo)還大的員工:select from users a,users b where a.managerid=b.id and a.ageb.age; 查詢編號(hào)為 2 的發(fā)帖人 : 先查 articles 表,得到發(fā)帖人的編號(hào) ,再根據(jù)編號(hào)查users得到的用戶名。接著用關(guān)聯(lián)查詢
15、. select * from articles,users得到笛卡兒積 ,再加 order by articles.id以便觀察使用 select * from articles,users where articles.id=2 篩選出 2 號(hào)帖子與每個(gè)用戶的組合記錄再使用 select * from articles,users where articles.id=2 and articles.userid=users.id 選出 users.id等于 2 號(hào)帖的發(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 表里的每個(gè)用戶都想pk 一下.select a.nickname,b.nickname from users a,users
17、b where a.idb.id ; 更保險(xiǎn)的語句 :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 ; 再查詢某個(gè)人發(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)錯(cuò)誤解決辦法出現(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 向表中插入中文字符時(shí),出現(xiàn)錯(cuò)誤。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) 這時(shí)向表中插入中文然后有錯(cuò)誤。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 因?yàn)楸碇幸呀?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 這時(shí)再插入中文字符,插入成* 。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)載請(qǐng)標(biāo)明出處: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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)金贖樓服務(wù)合同還款時(shí)間及費(fèi)用說明
- 旅游活動(dòng)贊助商合同
- 商業(yè)印刷品購買協(xié)議
- 私人借款協(xié)議范本在線
- 裝飾合同補(bǔ)充細(xì)則
- 借款協(xié)議與擔(dān)保合同
- 倉儲(chǔ)物流信息管理系統(tǒng)合作協(xié)議
- 設(shè)計(jì)合作終止協(xié)議解除合同條件
- 現(xiàn)房車庫買賣合同范本
- 租房質(zhì)量承諾
- 食用酒精生產(chǎn)工藝工廠設(shè)計(jì)
- 泌尿外科病例分析
- 財(cái)務(wù)指標(biāo)中英文對(duì)照
- 鋼結(jié)構(gòu)安裝工程危險(xiǎn)源辨識(shí)與危險(xiǎn)評(píng)價(jià)
- 脫硫除塵常用備品備件清單
- 小學(xué)二年級(jí)上冊(cè)音樂-第7課《跳竹竿》--湘教版(11張)ppt課件
- 2022年度國際象棋波爾加習(xí)題庫一步殺習(xí)題120題
- 石化、電廠工藝管道安裝施工方案
- 閥門試驗(yàn)記錄填寫范本
- 軟質(zhì)聚氨酯泡沫配方計(jì)算(課堂PPT)
- 一年級(jí)10以內(nèi)加減法口算題(100道題_可直接打印)
評(píng)論
0/150
提交評(píng)論