举例详解MySQL字符集_MySQL
举例详解MySQL字符集,下面是完整的一个例子:
1、创建数据库表
MySQL>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
#注意后面这句话 "COLLATE utf8_general_ci",大致意思是在排序时根据utf8校验集来排序
#那么在这个数据库下创建的所有数据表的默认字符集都会是utf8了
MySQL>create table my_table (name varchar(20) not null default '')type=myisam default charset utf8;
#这句话就是创建一个表了,制定默认字符集为utf8
2、写数据
例子1是通过PHP直接插入数据:
a.PHPMySQL_connect('localhost','user','password');mysql_select_db('my_db');//请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的//它的作用是设置本次数据库联接过程中,数据传输的默认字符集//其他编程语言/接口也类似,例如 .net/c#/odbc//jdbc则设置连接字符串为类似"jdbc:mysql://localhost/db?user=user&password=123456&useUnicode=true&characterEncoding=UTF-8"mysql_query("set names utf8;");//必须将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数mb_convert_encoding("insert into my_table values('测试');", "utf-8", "gb2312");?>b.php//输出本页编码为utf-8header("content-type:text/HTML; charset=utf-8");mysql_connect('localhost','user','password');mysql_select_db('my_db');mysql_query("set names utf8;");if(isset($_REQUEST['name')){//由于上面已经指定本页字符集为utf-8了,因此无需转换编码mysql_query(sprintf("insert into my_table values('%s');", $_REQUEST['name']));}$q = mysql_query("select * from my_table");while($r = mysql_fetch_row($q)){print_r($r);}?>
自此,使用utf8字符集的完整的例子结束了.
如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束,例如:
create table my_table ( name varchar(20) binary not null default '')type=myisam default charset latin1;
附1:旧数据升级办法
以原来的字符集为latin1为例,升级成为utf8的字符集。原来的表: old_table (default charset=latin1),新表:new_table(default charset=utf8)。
第一步:导出旧数据
MySQLdump --default-character-set=latin1 -hlocalhost -uroot -B my_db --tables old_table > old.sql
第二步:转换编码(类似Unix/Linux环境下)
iconv -t utf-8 -f gb2312 -c old.sql > new.sql
或者可以去掉 -f 参数,让iconv自动判断原来的字符集
iconv -t utf-8 -c old.sql > new.sql
在这里,假定原来的数据默认是gb2312编码。
第三步:导入
修改old.sql,在插入/更新语句开始之前,增加一条sql语句:
"SET NAMES utf8;"
,保存。
MySQL -hlocalhost -uroot my_db
大功告成!!
附2:支持查看utf8字符集的MySQL客户端有
1.) MySQL-Front,据说这个项目已经被MySQL AB勒令停止了,不知为何,如果国内还有不少破解版可以下载(不代表我推荐使用破解版 :-P)。
2.) Navicat,另一款非常不错的MySQL客户端,汉化版刚出来,还邀请我试用过,总的来说还是不错的,不过也需要付费。
3.) PHPMyAdmin,开源的php项目,非常好。
4.) Linux下的终端工具(Linux terminal),把终端的字符集设置为utf8,连接到MySQL之后,执行 SET NAMES UTF8; 也能读写utf8数据了。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

PHP を使用してデータベース テーブルを作成および管理する方法 インターネットの急速な発展に伴い、データベースはさまざまな Web サイトやアプリケーションに不可欠な部分になりました。 PHP では、MySQL などのデータベース管理システム (DBMS) を使用してデータベース テーブルを作成および管理できます。この記事では、PHP を使用してこの関数を実装する方法と、対応するコード例を説明します。データベースに接続する まず、PHP でデータベースに接続する必要があります。この機能を実現するには、mysqli 拡張機能または PHP によって提供される PDO を使用できます。

データベース ビューとテーブルの違いは次のとおりです: 1. テーブルはデータベースにデータを格納するために使用される物理構造ですが、ビューは 1 つまたは複数のテーブルに基づく単なるクエリ結果セットです; 2. テーブルは物理的なストレージですビューはデータの単位であり、ビューはテーブル データの表示と操作のためのルールのみを提供します; 3. ビューはデータベースに高度なセキュリティ メカニズムを提供しますが、テーブルにはセキュリティ メカニズムはありません; 4. ビューはテーブルの抽象化です; 5. ビューは複数を組み合わせることができますクエリ内のテーブル、およびテーブルは単一のテーブルのみをクエリできる; 6. テーブルはデータベース内の永続的な構造ですが、ビューはそうではありません; 7. ビューは同じ名前のビューを作成できますが、テーブルは同じ名前のテーブルを作成できません。

データベース ビューとテーブルは、データベースにおける 2 つの異なる概念であり、特性と用途が異なります。テーブルは実際にデータベースにデータを格納するエンティティであり、ビューは 1 つ以上のテーブルから派生した仮想テーブルであり、データの保存方法を指定するために使用されます。データを提示して操作します。テーブルはデータの永続性が高く、ビューはより柔軟で便利なデータ アクセスを提供します。

NEARProtocol: スケーラブルで使いやすいブロックチェーン プラットフォーム NEARProtocol は、スケーラビリティ、使いやすさ、セキュリティの点でブロックチェーン テクノロジーが直面する課題に対処するように設計されたシャーディング テクノロジーを使用したブロックチェーン プラットフォームです。開発者に、分散型アプリケーション (dApps) を簡単に構築および展開できる、効率的でユーザーフレンドリーなプラットフォームを提供します。 NEARProtocol は、高度な効率とセキュリティを提供しながら、ブロックチェーン開発の障壁を下げるように設計されています。シャーディング テクノロジーを採用することで、NEARProtocol は大規模なトランザクションをより適切に処理し、ユーザーにトランザクション確認時間を短縮することができます。全体として、NEARProtocol は以下を提供するように設計されています。

データベース ビューとデータベース内のテーブルには 5 つの違いがあります: 1. ビューはデータを格納しませんが、テーブルは実際にデータを格納するオブジェクトです; 2. ビュー内のデータは仮想テーブルであり、テーブル内のデータは複数のソースから取得されている; 3. ビューはクエリ ステートメントの構造を継承しますが、テーブルには独自の構造定義があります; 4. ビューは更新できませんが、テーブルでは直接操作が可能です; 5. ビューは以下に基づいています基になるテーブルの権限があり、テーブルには独自のアクセス権限があります。

このシリーズの最初の記事で述べたように、カスタム データベース テーブルの主な問題の 1 つは、既存のインポートおよびエクスポート ハンドラーでは処理されないことです。この記事はこの問題に対処することを目的としていますが、現時点では完全に満足のいく解決策がないことに注意してください。 2 つのシナリオを考えてみましょう: カスタム テーブルはネイティブ WordPress テーブルを参照します。 カスタム テーブルはネイティブ テーブルから完全に独立しています。 「最悪のケース」が最初のケースです。例として、ユーザーアクティビティログを保存するカスタムテーブルを考えてみましょう。ユーザー ID、オブジェクト ID、オブジェクト タイプを参照します。これらはすべて、ネイティブ WordPress テーブルに保存されているデータを参照します。ここで、誰かが WordPress Web サイトからすべてのデータを 2 番目の Web サイトにインポートしたいと考えていると想像してください。たとえば、完全に

Antec 650w マザーボード ケーブルには何ピンがありますか? Antec 650W 電源マザーボードの電源ケーブルは通常 24 ピンで、マザーボード上の最大の電源インターフェイスです。その機能は、マザーボードと電源を接続して、マザーボードやその他のシステム コンポーネントに電力を供給することです。さらに、Antec 650W 電源には、CPU や独立したグラフィックス カードなどの他のコンポーネントを接続するための、CPU8 ピン、PCIe6+2 ピンなどの他のタイプの電源インターフェイスも含まれる場合があります。マザーボード配線チュートリアル マザーボード配線は、マザーボードを設計するときにさまざまな電子コンポーネント間の回路を接続するプロセスです。このプロセスでは、回路の安定性、信号伝送速度、精度などの要素を考慮する必要があります。回路図に従って配線する場合は、レイアウトに注意し、適切な線幅と距離を選択してください。

PHP および PDO: データベース テーブルを変更および名前変更する方法 アプリケーションが開発され、要件が変化するにつれて、データベース内のテーブルを変更および名前変更することが必要になることがよくあります。 PHP では、PDO (PHPDataObjects) 拡張ライブラリを使用してこれらの操作を実行できます。この記事では、PDO を使用してデータベース テーブルの変更と名前変更を実行する方法を紹介し、コード例を示します。まず、データベースに正常に接続したことを確認する必要があります。 PDO を使用してデータベースとの接続を確立したと仮定します。
