MySQL データベースの大文字と小文字の区別の問題

MySQL データベースの大文字と小文字の区別の問題

MySQL では、データベースはデータ ディレクトリ内のディレクトリに対応します。データベース内の各テーブルは、データベース ディレクトリ内の少なくとも 1 つのファイル (ストレージ エンジンによっては複数のファイル) に対応します。したがって、使用しているオペレーティング システムの大文字と小文字の区別によって、データベース名とテーブル名の大文字と小文字の区別が決まります。つまり、ほとんどの Unix システムではデータベース名とテーブル名は大文字と小文字が区別されますが、Windows では区別されません。 注目すべき例外は Mac OS X です。これは Unix をベースにしていますが、大文字と小文字を区別しないデフォルトのファイル システム タイプ (HFS+) を使用します。

Windows ではテーブル名の大文字と小文字は区別されないため、データをインポートした後、すべてのテーブル名が小文字になる可能性があります。Windows から Linux にインポートした後、呼び出し時に大文字と小文字の問題が発生する可能性があります。例えば:

最初のポイント: プログラム呼び出しテーブルの名前は codetc_Web です。

2 番目のポイント: win をインポートすると、codetc_web になります。

3 番目のポイント: Linux にインポートした後も、codetc_web のままです。このとき、Linux はテーブル名の大文字と小文字を区別するため、テーブルが読み取れなくなります。

Linux での MySQL テーブル名の大文字小文字の問題の解決策:

通常 /etc/my.cnf にある my.cnf を変更し、ファイル内の [mysqld] セクションを見つけて、次のステートメントを追加します (ステートメントが既に存在する場合は、値を 1 に変更することに注意してください)。

lower_case_table_names=1

1. Linux に MySQL をインストールした後のデフォルトは、テーブル名では大文字と小文字が区別されますが、列名では大文字と小文字は区別されません。

2. root アカウントでログインした後、/etc/my.cnf の [mysqld] の後にlower_case_table_names=1を追加し、MYSQL サービスを再起動します。これで設定は成功です。テーブル名は大文字と小文字が区別されません。

lower_case_table_names パラメータの詳細な説明:

lower_case_table_names = 0或1

0: 大文字と小文字を区別する、1: 大文字と小文字を区別しない

Linux での MySQL データベース名、テーブル名、列名、およびエイリアスの大文字と小文字の規則は次のとおりです。

1. データベース名とテーブル名では大文字と小文字が厳密に区別されます。

2. テーブル別名では大文字と小文字が厳密に区別されます。

3. 列名と列エイリアスでは、大文字と小文字は区別されません。

4. 変数名も厳密に大文字と小文字が区別されます。

MySQL は Windows では大文字と小文字を区別しません。クエリ時にフィールド値の大文字と小文字を区別する必要がある場合は、クエリフィールド値に BINARY 属性を設定する必要があります。設定方法はいくつかあります。

(1)作成時の設定:

テーブルT(A VARCHAR(10) BINARY)を作成します。

(2)alterを使って修飾する:

ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;

(3)MySQLテーブルエディタでBINARY項目を直接確認します。

MySQL クエリで大文字と小文字を区別するには、次の操作を行います。

table_name から * を選択し、バイナリ a が 'a%' のような場合  
table_name から * を選択し、バイナリ a が 'A%' に一致するかどうかを確認します。

テーブルを作成するときにマークすることもできます

テーブルtable_nameを作成します( 
   varchar (20) バイナリ
)

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • MySQL の大文字と小文字の区別に関する注意
  • MySQLの文字タイプは大文字と小文字を区別します
  • MySQL で大文字と小文字を区別しないように設定する方法
  • MySQLの大文字と小文字の区別によって発生する問題の分析
  • MySQLクエリで大文字と小文字を区別しない問題を解決する方法
  • MySQLテーブル名の大文字と小文字を区別しない設定方法の詳細な説明
  • Linux システム MySQL のパスワードを忘れた場合、パスワードをリセットし、テーブル名と列名の大文字と小文字を無視します
  • MySQL クエリ時に文字列の大文字と小文字を区別する方法
  • MySql クエリの大文字と小文字を区別しないソリューション (2)
  • MySQL テーブル名の大文字と小文字の選択

<<:  Windows 10 に TomCat をインストールするチュートリアル図

>>:  Windows 10 での Tomcat のインストールと展開に関する詳細なチュートリアル

推薦する

Nginx サービス クイック スタート チュートリアル

目次1. Nginx の紹介1. Nginx とは何ですか? 2. Nginx を使用する理由3. ...

moment.jsの時間と日付の処理の詳細な説明

月曜日から日曜日の時間形式の変換(Y --- 年 M --- 月 D--- 日) : : : : :...

JavaScript ベースのパスワード ボックス検証情報の実装

この記事では、パスワードボックスの検証情報を実装するためのJavaScriptの具体的なコードを例と...

Element-uiはテーブル内のセルを直接クリックして編集します

目次成果を達成する実装コード最近、会社でelementUIを使い始めたため、開発の過程でテーブルのセ...

DockerでRedisを使用するための詳細な手順

1. はじめにこの記事では、Docker を使用して Redis を探索する方法を説明します。 Do...

jsは画像切り取り機能を実現する

この記事の例では、画像の切り取りを実現するためのjsの具体的なコードを参考までに共有しています。具体...

MySQLストアドプロシージャを変更する詳細な手順

序文実際の開発では、ビジネス要件が変更されることが多いため、ストアド プロシージャの特性を変更するこ...

中央のテキストの両側に水平線を描くためのCSS

1. vertical-align プロパティは次の効果を実現します。 vertical-alig...

Vue で CSS カスタム変数を使用する方法

目次CSS カスタム変数機能は古くから存在していますが、実際の開発ではあまり使用されていません。その...

Vueカスタムコンポーネントはイベント修飾子を使用してピットレコードを踏む

序文今日、自作のコンポーネントを使っていたところ、突然、長い間忘れていたバブリングイベントに遭遇しま...

Jmeterはデータベースプロセスダイアグラムに接続します

1. MySQL jdbc ドライバー (mysql-connector-java-5.1.28.j...

CentOS サーバーのセキュリティ構成戦略

最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく...

マークアップ言語 - 簡略化されたタグ

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Vue の nextTick について話す

データが変更されても、DOM ビューはすぐには更新されません。変更直後にノードまたはその値を取得しよ...

CSS3 を使用して円形スクロール プログレス バー アニメーションを作成する例

テーマ今日は、CSS3 を使用して円形スクロール プログレス バー アニメーションを作成する方法を説...