1. テーブルを作成する1.1. テーブルを作成するための基本構文CREATE TABLE テーブル名 (column_name_1 column_type_1 制約、 column_name_2 column_type_2 制約、…)
1.1.1. シンプルなテーブルを作成するmysql> テーブル orders を作成します (ordername varchar(10),createtime date,ordermoney decimal(10,2),ordernumber int(2)); クエリは正常、影響を受けた行は 0 行 (0.23 秒) 1.1.2. 作成テーブル定義の表示構造定義: mysql> desc 注文; +-------------+---------------+------+-----+--------+-------+ | フィールド | タイプ | Null | キー | デフォルト | 追加 | +-------------+---------------+------+-----+--------+-------+ | 注文名 | varchar(10) | はい | | NULL | | | 作成時刻 | 日付 | はい | | NULL | | | ordermoney | 小数点(10,2) | はい | | NULL | | | 注文番号 | int(2) | YES | | NULL | | +-------------+---------------+------+-----+--------+-------+ セット内の 4 行 (0.00 秒) 表の詳細な定義: 詳細なテーブル定義を表示します。 mysql> show テーブル orders \G; ************************** 1. 行 **************************** 表: 注文 テーブルの作成: CREATE TABLE `orders` ( `ordername` varchar(10) デフォルト NULL, `createtime` 日付 デフォルト NULL、 `ordermoney` 小数点(10,2) デフォルト NULL, `ordernumber` int(2) デフォルト NULL ) エンジン=InnoDB デフォルト文字セット=latin1 セット内の 1 行 (0.00 秒) エラー: クエリが指定されていません このことから、テーブルの 「 2. テーブルを削除する注文: DROP TABLE テーブル名 注文を削除: mysql> テーブル注文を削除する -> ; クエリは正常、影響を受けた行は 0 行 (0.14 秒) 3. テーブルを変更する3.1、テーブルタイプの変更コマンドALTER TABLE テーブル名 MODIFY [列] 列定義 [FIRST | AFTER 列名] 例: mysql> テーブル orders を変更して ordername varchar(20); クエリは正常、影響を受けた行は 0 行 (0.11 秒) レコード: 0 重複: 0 警告: 0 mysql> desc 注文; +-------------+---------------+------+-----+--------+-------+ | フィールド | タイプ | Null | キー | デフォルト | 追加 | +-------------+---------------+------+-----+--------+-------+ | 注文名 | varchar(20) | はい | | NULL | | | 作成時刻 | 日付 | はい | | NULL | | | ordermoney | 小数点(10,2) | はい | | NULL | | | 注文番号 | int(2) | YES | | NULL | | +-------------+---------------+------+-----+--------+-------+ セット内の 4 行 (0.00 秒) 3.2. フィールド名変更コマンドALTER TABLE テーブル名 CHANGE [列] 古い列名 列定義 [FIRST|AFTER col_name] 例: mysql> テーブル orders を変更し、列 ordernumber ordernumbers int(4); クエリは正常、影響を受けた行は 0 行 (0.06 秒) レコード: 0 重複: 0 警告: 0 mysql> desc 注文; +--------------+--------------+-----+-----+---------+-------+ | フィールド | タイプ | Null | キー | デフォルト | 追加 | +--------------+--------------+-----+-----+--------+-------+ | 注文名 | varchar(20) | はい | | NULL | | | 作成時刻 | 日付 | はい | | NULL | | | ordermoney | 小数点(10,2) | はい | | NULL | | | 順序番号 | int(4) | YES | | NULL | | +--------------+--------------+-----+-----+---------+-------+ セット内の 4 行 (0.00 秒)
3.3. テーブルフィールドの追加コマンドALTER TABLE テーブル名 ADD [COLUMN] 列定義 [FIRST | AFTER 列名] 例: mysql> テーブル orders を変更し、列 username varchar(30); クエリは正常、影響を受けた行は 0 行 (0.39 秒) レコード: 0 重複: 0 警告: 0 mysql> desc 注文; +-------------+---------------+------+-----+--------+-------+ | フィールド | タイプ | Null | キー | デフォルト | 追加 | +-------------+---------------+------+-----+--------+-------+ | 注文名 | varchar(20) | はい | | NULL | | | 作成時刻 | 日付 | はい | | NULL | | | ordermoney | 小数点(10,2) | はい | | NULL | | | 注文番号 | int(2) | YES | | NULL | | | ユーザー名 | varchar(30) | はい | | NULL | | +-------------+---------------+------+-----+--------+-------+ セット内の行数は 5 です (0.00 秒) 3.4. テーブル列フィールドの削除コマンドALTER TABLE テーブル名 DROP [列] col_name 例: mysql> テーブル order を変更し、列 username を削除します。 クエリは正常、影響を受けた行は 0 行 (0.53 秒) レコード: 0 重複: 0 警告: 0 mysql> desc 注文; +-------------+---------------+------+-----+--------+-------+ | フィールド | タイプ | Null | キー | デフォルト | 追加 | +-------------+---------------+------+-----+--------+-------+ | 注文名 | varchar(20) | はい | | NULL | | | 作成時刻 | 日付 | はい | | NULL | | | ordermoney | 小数点(10,2) | はい | | NULL | | | 注文番号 | int(2) | YES | | NULL | | +-------------+---------------+------+-----+--------+-------+ セット内の 4 行 (0.00 秒) 3.5. テーブル名変更コマンドALTER TABLE テーブル名 RENAME [TO] 新しいテーブル名 例:テーブル名 mysql> テーブル orders を変更し、 goodsorders の名前を変更します。 クエリは正常、影響を受けた行は 0 行 (0.16 秒) mysql> desc 注文; エラー 1146 (42S02): テーブル 'ordermanage.orders' が存在しません mysql> desc goodsorders; +--------------+--------------+-----+-----+---------+-------+ | フィールド | タイプ | Null | キー | デフォルト | 追加 | +--------------+--------------+-----+-----+--------+-------+ | 注文名 | varchar(20) | はい | | NULL | | | 作成時刻 | 日付 | はい | | NULL | | | ordermoney | 小数点(10,2) | はい | | NULL | | | 順序番号 | int(4) | YES | | NULL | | +--------------+--------------+-----+-----+---------+-------+ セット内の 4 行 (0.00 秒) 4. DMLステートメント
4.1. レコード挿入コマンドテーブル名 (フィールド1、フィールド2、...フィールドn) に値 (値1、値2、...値n) を挿入します。 例: mysql> goodsorders (ordername,createtime,ordermoney,ordernumbers) に値を挿入します ('zhang','2021-05-12',100.00,1); クエリは正常、1 行が影響を受けました (0.03 秒) (field1, field2, ... fieldn)の部分を省略することもできます。 mysql> goodsorders に値を挿入します ('zhang1'、'2021-05-12'、1001.00、11)。 クエリは正常、1 行が影響を受けました (0.05 秒) 4.2. データ挿入コマンドの表示4.2.1、すべてを照会するSELECT * FROM テーブル名 [WHERE 条件] 例: mysql> goodsorders から * を選択します。 +-----------+------------+-------------+--------------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | +-----------+------------+-------------+--------------+ | 張 | 2021-05-12 | 100.00 | 1 | | zhang1 | 2021-05-12 | 1001.00 | 11 | +-----------+------------+-------------+--------------+ セット内の 2 行 (0.00 秒) 「*」はすべてのレコードを選択する必要があることを示します。 4.2.2. ユニークレコードコマンドキーワードのクエリ明確な 例:非繰り返し作成時間 (createtime) のデータを非 mysql> goodsorders から * を選択します。 +-----------+------------+-------------+--------------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | +-----------+------------+-------------+--------------+ | 張 | 2021-03-11 | 50.00 | 1 | | li | 2020-05-12 | 70.00 | 15 | | li | 2020-03-12 | 70.00 | 15 | | li | 2020-03-11 | 70.00 | 15 | | li | 2021-03-11 | 70.00 | 15 | +-----------+------------+-------------+--------------+ セット内の行数は 5 です (0.00 秒) mysql> goodsorders から別の createtime を選択します。 +------------+ | 作成時間 | +------------+ | 2021-03-11 | | 2020-05-12 | | 2020-03-12 | | 2020-03-11 | +------------+ セット内の 4 行 (0.00 秒) このことから、重複した時間データ 4.2.3. 複数条件クエリキーワード
例: mysql> select * from goodsorders where ordername='li'and createtime ='2020-03-11'; +-----------+------------+-------------+--------------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | +-----------+------------+-------------+--------------+ | li | 2020-03-11 | 70.00 | 15 | +-----------+------------+-------------+--------------+ セット内の 1 行 (0.00 秒) 4.2.4、クエリ名の並べ替えSELECT * FROM テーブル名 [WHERE CONDITION] [ORDER BY フィールド1 [DESC|ASC] , フィールド2 [DESC|ASC]、...フィールドn [DESC|ASC]] 例: mysql> select * from goodsorders order by createtime; +-----------+------------+-------------+--------------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | +-----------+------------+-------------+--------------+ | li | 2020-03-11 | 70.00 | 15 | | li | 2020-03-12 | 70.00 | 15 | | li | 2020-05-12 | 70.00 | 15 | | 張 | 2021-03-11 | 50.00 | 1 | | li | 2021-03-11 | 70.00 | 15 | +-----------+------------+-------------+--------------+ セット内の 5 行 (0.01 秒) 4.2.5. 指示の全部ではなく一部を表示するSELECT ... [LIMIT offset_start, row_count]
例 1 : mysql> select * from goodsorders order by createtime limit 3; +-----------+------------+-------------+--------------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | +-----------+------------+-------------+--------------+ | li | 2020-03-11 | 70.00 | 15 | | li | 2020-03-12 | 70.00 | 15 | | li | 2020-05-12 | 70.00 | 15 | +-----------+------------+-------------+--------------+ セット内の 3 行 (0.00 秒) 例 2: mysql> select * from goodsorders order by createtime limit 2,3; +-----------+------------+-------------+--------------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | +-----------+------------+-------------+--------------+ | li | 2020-05-12 | 70.00 | 15 | | 張 | 2021-03-11 | 50.00 | 1 | | li | 2021-03-11 | 70.00 | 15 | +-----------+------------+-------------+--------------+ セット内の 3 行 (0.00 秒) 4.2.6. 統計、集計命令SELECT [フィールド1,フィールド2,…フィールドn] fun_name テーブル名から [WHERE 条件] [GROUP BY フィールド1、フィールド2、... フィールドn [ロールアップ付き] [where_contition がある] パラメータの説明:
例 1: mysql> goodsordersからcount(1)を選択します。 +----------+ | カウント(1) | +----------+ | 5 | +----------+ セット内の 1 行 (0.00 秒) 例2:これを基に、作成日( mysql> goodsorders group by createtimeからcreatetime、count(1)を選択します。 +------------+-----------+ | 作成時間 | カウント(1) | +------------+-----------+ | 2020-03-11 | 1 | | 2020-03-12 | 1 | | 2020-05-12 | 1 | | 2021-03-11 | 2 | +------------+-----------+ セット内の 4 行 (0.00 秒) 例3:これを基に、作成日( mysql> collectcreatetime,count(1) from goodsorders group by createtime with rollup; +------------+-----------+ | 作成時間 | カウント(1) | +------------+-----------+ | 2020-03-11 | 1 | | 2020-03-12 | 1 | | 2020-05-12 | 1 | | 2021-03-11 | 2 | | NULL | 5 | +------------+-----------+ セット内の 5 行 (0.02 秒) 最後の行に 例4: mysql> goodsorders group から createtime,count(1) を選択します。createtime で count(1)>1 を持ちます。 +------------+-----------+ | 作成時間 | カウント(1) | +------------+-----------+ | 2021-03-11 | 2 | +------------+-----------+ セット内の 1 行 (0.00 秒) 例5: mysql> goodsorders から * を選択します。 +-----------+------------+-------------+--------------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | +-----------+------------+-------------+--------------+ | 張 | 2021-03-11 | 50.00 | 1 | | li | 2020-05-12 | 70.00 | 15 | | li | 2020-03-12 | 70.00 | 15 | | li | 2020-03-11 | 70.00 | 15 | | li | 2021-03-11 | 70.00 | 15 | +-----------+------------+-------------+--------------+ セット内の行数は 5 です (0.00 秒) mysql> goodsorders から sum(ordermoney),max(ordermoney),min(ordermoney) を選択します。 +-+-----------------+-----------------+ | 合計(注文金額) | 最大(注文金額) | 最小(注文金額) | +-+-----------------+-----------------+ | 330.00 | 70.00 | 50.00 | +-+-----------------+-----------------+ セット内の1行(0.02秒) 4.2.7. テーブル結合
例1:ここで別のユーザーテーブル( mysql> メンバーから * を選択します。 +------+-------------+ | ID | メンバー名 | +------+-------------+ | 15 | 張 | | 1 | 李 | | 13 | リス | +------+-------------+ セット内の 3 行 (0.00 秒) mysql> goodsorders から * を選択します。 +-----------+-------------+------------+--------------+-----------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | メンバー ID | +-----------+-------------+------------+--------------+-----------+ | 張 | 2021-03-11 | 50.00 | 1 | 15 | | li | 2020-05-12 | 70.00 | 15 | 1 | | li | 2020-03-12 | 70.00 | 15 | 1 | | li | 2020-03-11 | 70.00 | 15 | 3 | | li | 2021-03-11 | 70.00 | 15 | 1 | +-----------+-------------+------------+--------------+-----------+ セット内の行数は 5 です (0.00 秒) mysql> goodsorders から * を選択し、goodsorders.memberid = member.id でメンバーを結合します。 +-----------+------------+-------------+--------------+------------+------------+ | 注文名 | 作成時間 | 注文金額 | 注文番号 | メンバーID | ID | メンバー名 | +-----------+------------+-------------+--------------+------------+------------+ | 張 | 2021-03-11 | 50.00 | 1 | 15 | 15 | 張 | | li | 2020-05-12 | 70.00 | 15 | 1 | 1 | li | | li | 2020-03-12 | 70.00 | 15 | 1 | 1 | li | | li | 2021-03-11 | 70.00 | 15 | 1 | 1 | li | | li | 2020-03-11 | 70.00 | 15 | 3 | NULL | NULL | +-----------+------------+-------------+--------------+------------+------------+ セット内の行数は 5 です (0.00 秒) 例 2 : mysql> goodsorders から * を選択し、goodsorders.memberid = member.id でメンバーを右結合します。 +-----------+------------+-------------+--------------+------------+------------+ | 注文名 | 作成時間 | 注文金額 | 注文番号 | メンバーID | ID | メンバー名 | +-----------+------------+-------------+--------------+------------+------------+ | 張 | 2021-03-11 | 50.00 | 1 | 15 | 15 | 張 | | li | 2020-05-12 | 70.00 | 15 | 1 | 1 | li | | li | 2020-03-12 | 70.00 | 15 | 1 | 1 | li | | li | 2021-03-11 | 70.00 | 15 | 1 | 1 | li | | NULL | NULL | NULL | NULL | NULL | 13 | リス | +-----------+------------+-------------+--------------+------------+------------+ セット内の行数は 5 です (0.00 秒) ここで逆転が発生し、左側の 4.2.8. サブクエリ、関連キーワード主に 例: mysql> メンバーから * を選択します。 +------+-------------+ | ID | メンバー名 | +------+-------------+ | 15 | 張 | | 1 | 李 | | 13 | リス | +------+-------------+ セット内の 3 行 (0.00 秒) mysql> goodsorders から * を選択します。 +-----------+-------------+------------+--------------+-----------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | メンバー ID | +-----------+-------------+------------+--------------+-----------+ | 張 | 2021-03-11 | 50.00 | 1 | 15 | | li | 2020-05-12 | 70.00 | 15 | 1 | | li | 2020-03-12 | 70.00 | 15 | 1 | | li | 2020-03-11 | 70.00 | 15 | 3 | | li | 2021-03-11 | 70.00 | 15 | 1 | +-----------+-------------+------------+--------------+-----------+ セット内の行数は 5 です (0.00 秒) mysql> select * from goodsorders where memberid in(select id from member); +-----------+-------------+------------+--------------+-----------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | メンバー ID | +-----------+-------------+------------+--------------+-----------+ | 張 | 2021-03-11 | 50.00 | 1 | 15 | | li | 2020-05-12 | 70.00 | 15 | 1 | | li | 2020-03-12 | 70.00 | 15 | 1 | | li | 2021-03-11 | 70.00 | 15 | 1 | +-----------+-------------+------------+--------------+-----------+ セットに4行(0.05秒) 4.2.9. 共同指示の記録t1から*を選択 ユニオン|ユニオン すべて t2から*を選択 … ユニオン|ユニオン すべて tn から * を選択します。
例1: mysql> goodsorders から memberid を選択し、 union all から member から id を選択します。 +----------+ | メンバーID | +----------+ | 15 | | 1 | | 1 | | 3 | | 1 | | 15 | | 1 | | 13 | +----------+ セット内の行数は 8 です (0.00 秒) 例2:上記の結果から重複レコードを削除して表示したい場合 mysql> goodsorders union から memberid を選択します。member から id を選択します。 +----------+ | メンバーID | +----------+ | 15 | | 1 | | 3 | | 13 | +----------+ セット内の 4 行 (0.00 秒) 4.3. レコード更新コマンドUPDATE テーブル名 SET フィールド1=値1,フィールド2.=値2,…フィールドn=値n [WHERE 条件] 例: mysql> 商品注文を更新し、ordermoney=50.00 を設定します。ordername='zhang'; クエリは正常、1 行が影響を受けました (0.09 秒) 一致した行: 1 変更された行: 1 警告: 0 mysql> goodsorders から * を選択します。 +-----------+------------+-------------+--------------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | +-----------+------------+-------------+--------------+ | 張 | 2021-05-12 | 50.00 | 1 | | zhang1 | 2021-05-12 | 1001.00 | 11 | +-----------+------------+-------------+--------------+ セット内の 2 行 (0.00 秒) アップデート時にエラー コード 1175 が発生した場合:
解決: 1. まずステータスを照会します。 'SQL_SAFE_UPDATES' のような変数を表示します。 2. セーフアップデートモードをオフにするには、次の SQL を実行します。 SQL_SAFE_UPDATES = 0 を設定します。 または SQL_SAFE_UPDATES を false に設定します。 4.4. レコード名の削除DELETE FROM テーブル名 [WHERE 条件] 例: mysql> ordername = 'zhang1' の場合、goodsorders から削除します。 クエリは正常、1 行が影響を受けました (0.06 秒) mysql> goodsorders から * を選択します。 +-----------+------------+-------------+--------------+ | 注文名 | 作成時刻 | 注文金額 | 注文番号 | +-----------+------------+-------------+--------------+ | 張 | 2021-05-12 | 50.00 | 1 | +-----------+------------+-------------+--------------+ セット内の1行(0.02秒) 4.5. 初期化テーブル例:テーブル内のすべてのデータをクリアする mysql> varc から * を選択します。 +------+------+ | 上 | c | +------+------+ | アルファベット | アルファベット | +------+------+ セット内の1行(0.03秒) mysql> テーブル varc を切り捨てます。 クエリは正常、影響を受けた行は 0 行 (0.25 秒) mysql> varc から * を選択します。 空のセット (0.00 秒) 5. DCLステートメント
5.1 データベースユーザーを作成する例:初期パスワードが mysql> '123' で識別される 'user1'@'localhost' に ordermanage.* の select、insert 権限を許可します。 クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.06 秒) mysql>終了 さよなら C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql -uuser1 -p123 mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは82です サーバーバージョン: 5.7.17-log MySQL コミュニティサーバー (GPL) Copyright (c) 2000, 2016, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> データベースを表示します。 +--------------------+ | データベース | +--------------------+ | 情報スキーマ | |注文管理| +--------------------+ セット内の 2 行 (0.00 秒) これに基づいて、このユーザー( mysql> 'user1'@'localhost' からの ordermanage.* への挿入を取り消します。 クエリは正常、影響を受けた行は 0 行 (0.02 秒) mysql>終了 さよなら C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql -uuser1 -p123 mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは84です サーバーバージョン: 5.7.17-log MySQL コミュニティサーバー (GPL) Copyright (c) 2000, 2016, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> ordermanage を使用します。 データベースが変更されました mysql> メンバー値に挿入('11','ss'); エラー 1142 (42000): テーブル 'member' に対するユーザー 'user1'@'localhost' への INSERT コマンドが拒否されました マイSQL> このことから、挿入権限が不十分で挿入が失敗していることがわかります。 MYSQL テーブルの紹介に関するこの記事はこれで終わりです。MYSQL テーブルに関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: この記事ではCSSの組み合わせセレクターの使い方を説明します
1.1 バイナリインストールパッケージをダウンロードするhttps://dev.mysql.com/...
この記事の例では、Vue がデジタル 3 桁区切り形式をグローバルに実装するための具体的なコードを参...
ローカルEclipse上にTomcatサーバーを作成する場合、 tomcaインストールディレクトリの...
最近MySQLを5.7にアップグレードしましたが、WordPressでデータのインポート時にエラーが...
目次1. 遭遇した問題2. アイデア3. コード1. 遭遇した問題私たちは皆、mysqldump を...
目次1. $(".box1").click() メソッドを実装する2. $(&q...
目次1. Dockerファイル2. pom 構成3. イメージプッシュ4. k8s デプロイメント前...
MySQL サービスを使用する場合、通常の状況では、MySQL のタイムアウト設定は 8 時間 (2...
Linux で実行可能プログラムまたは so の依存ライブラリを表示します。 Linux の実行可能...
MySQLの古いバージョンをアンインストールします(古いバージョンがない場合は、この手順をスキップし...
この記事では、MySQL 8.0.15のインストールと設定方法を参考までに紹介します。具体的な内容は...
目次序文非同期読み込みパッケージコンポーネントコンポーネントの使用インターフェースをカスタマイズする...
最近レスポンシブ デザインについて学んでいて、これについていくつか整理してみました。写真の一部はイン...
この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...
スクロール バーのスタイルを設定するための CSS 実装コードは次のとおりです。 •::-webki...