拡張版です。質問とSQL文は以下の通りです。 ユーザー テーブルを作成し、id、name、gender、sal フィールドを設定します。id が主キーになります。 ユーザーが存在する場合はテーブルを削除します。 ユーザーが存在しない場合はテーブルを作成します( id int(5) 主キー auto_increment, 名前 varchar(10) 一意 NULLではない、 性別varchar(1) nullではない、 sal int(5) は null ではない ); ユーザーに挿入(名前、性別、給与)値('AA'、'男'、1000); insert into users(name,gender,sal) values('BB','女',1200); -------------------------------------------------------------------------------------- 1対1: AA の ID 番号は何ですか? ユーザーが存在する場合はテーブルを削除します。 ユーザーが存在しない場合はテーブルを作成します( id int(5) 主キー auto_increment, 名前 varchar(10) 一意 NULLではない、 性別varchar(1) nullではない、 sal int(5) は null ではない ); ユーザーに挿入(名前、性別、給与)値('AA'、'男'、1000); insert into users(name,gender,sal) values('BB','女',1200); カードが存在する場合はテーブルを削除します。 カードが存在しない場合はテーブルを作成します( id int(5) 主キー auto_increment, num int(3) nullでないユニーク、 loc varchar(10) が null ではない、 uid int(5) nullでないユニーク、 制約 uid_fk 外部キー(uid) はユーザー(id) を参照します ); cards(num,loc,uid) に values(111,'北京',1) を挿入します。 cards(num,loc,uid) に values(222,'上海',2) を挿入します。 [注: inner join は内部結合を意味します] u.name "名前",c.num "ID番号"を選択します ユーザーから u 内部結合カード c u.id = c.uid の場合 ここで、u.name = 'AA'; -- u.name "名前",c.num "ID番号"を選択します ユーザーから u 内部結合カード c u.id = c.uid の場合 ここで、name = 'AA'; --------------------------------------------- 1対多: 「開発部門」の従業員に問い合わせる グループテーブルを作成する グループが存在する場合はテーブルを削除します。 グループが存在しない場合はテーブルを作成します( id int(5) 主キー auto_increment, 名前varchar(10) nullでない ); insert into groups(name) values('開発部門'); グループに挿入(名前) 値('営業部') empsテーブルを作成する emps が存在する場合はテーブルを削除します。 empsが存在しない場合はテーブルを作成します( id int(5) 主キー auto_increment, 名前varchar(10)がnullでない、 gid int(5) が null でない、 制約 gid_fk 外部キー(gid) はグループ(id) を参照します ); emps(name,gid) に値 ('哈哈',1) を挿入します。 emps(name,gid) に値 ('呵',1) を挿入します。 emps(name,gid) に値 ('嘻嘻',2) を挿入します。 emps(name,gid) に値 ('笨笨',2) を挿入します。 開発部門にどの従業員がいるか確認する g.name "部門"、e.name "従業員" を選択 グループ g 内部結合 emps e g.id = e.gid の場合 g.name = '開発部門'; -- g.name "部門"、e.name "従業員" を選択 グループ g 内部結合 emps e g.id = e.gid の場合 g.name = '開発部門'; ------------------------------------------------------ 多対多: 「Zhao」が教えた生徒を問い合わせる 学生テーブルを作成する 学生が存在する場合はテーブルを削除します。 存在しない学生のテーブルを作成する( id int(5) 主キー auto_increment, 名前varchar(10) nullでない ); students(name) に values('哈哈') を挿入します。 students(name) に values('嘻嘻') を挿入します。 教師テーブルを作成する 教師が存在する場合はテーブルを削除します。 教師が存在しない場合はテーブルを作成します( id int(5) 主キー auto_increment, 名前varchar(10) nullでない ); 教師名に値('赵')を挿入します。 教師名に値('刘')を挿入します。 middles テーブルを作成します。主キー (sid、tid) は、結合主キーを表します。2 つのフィールドは一意である必要があります。 中間部分が存在する場合はテーブルを削除します。 テーブルが存在しない場合は作成します。 sid int(5)、 制約sid_fk外部キー(sid)は学生(id)を参照します。 tid int(5)、 制約tid_fk外部キー(tid)は教師(id)を参照します。 主キー(sid,tid) ); middles(sid,tid) の値(1,1) に挿入します。 中間(sid,tid)の値(1,2)に挿入します。 middles(sid,tid) の値(2,1) に挿入します。 middles(sid,tid) の値(2,2) に挿入します。 「趙」が教えた生徒を問い合わせる t.name "先生"、s.name "生徒" を選択 学生から s 内部結合 中間者 m 内部結合 教師 t (s.id=m.sid) および (m.tid=t.id) の場合 ここで、t.name = 'Zhao'; -- t.name "先生"、s.name "生徒" を選択 学生から s 内部結合 中間者 m 内部結合 教師 t (s.id=m.sid) および (t.id=m.tid) について ここで、t.name = "Zhao"; -------------------------------------------------------------------------------------------------------- 給与が5,000人民元以上の従業員は「高給」とマークされ、それ以外の従業員は「初任給」とマークされます。 給与がNULLの従業員を「未払い」として識別します 給与が5,000人民元以上の従業員は「高給」とマークされ、それ以外の従業員は「初任給」とマークされます。 給与が7,000元の従業員は「高給」、給与が6,000元の従業員は「中給」、給与が5,000元の従業員は「初任給」、それ以外の従業員は「試用給与」とマークされます。 --------------------------------------------------------------------------------------------------------- 内部結合(等価結合):顧客名、注文番号、注文価格を照会する [注: customers c inner join orders o は別名を使用しているため、今後は o が orders を表します] c.name「顧客名」、o.isbn「注文番号」、o.price「注文価格」を選択します。 顧客から c 内部結合注文 o c.id = o.customers_id の場合; -- c.name「顧客名」、o.isbn「注文番号」、o.price「注文価格」を選択します。 顧客からc内部結合オーダーo c.id = o.customers_id の場合; on+ 2つのテーブルを接続するための条件。1つのテーブルの主キーと別のテーブルの外部キー 内部結合: 結合条件に従って両方のテーブルに存在するレコードのみを照会できます。これは、数学の交差に多少似ています。 ---------------------------------------------------- 外部接続: 顧客別にグループ化し、各顧客の名前と注文数を照会します。 外部結合: 結合条件に基づいて両方のテーブルのレコードを照会したり、他のテーブルが条件を満たしていない場合でも 1 つのテーブルのレコードを照会したりできます。 外部結合は次のように分類できます。 <左外部結合: 左側を参照として、左外部結合は c.name、count(o.isbn) を選択することを意味します。 顧客から c 左外部結合注文 o c.id = o.customers_idの場合 c.name でグループ化します。 -- >右外部結合: 右側を参照として、右外部結合は c.name、count(o.isbn) を選択することを意味します。 注文から o 右外部結合顧客 c c.id = o.customers_idの場合 c.name でグループ化します。 左外部結合は、左側のすべてのコンテンツが表示されることを意味します。たとえば、顧客c左外部結合は、顧客の列のすべてのコンテンツが見つかることを意味します。 ------------------------------------------------------ users.ename、bosss.ename を選択 EMPユーザーからEMPボスへの内部結合 users.mgr = bosss.empno; の場合 users.ename、bosss.ename を選択 EMPユーザーからEMPボスへの左外部結合 users.mgr = bosss.empno; の場合 ------------------------------------------------------------------------------------------------- 日付と時刻の機能: select addtime('2016-8-7 23:23:23','1:1:1'); 時間の追加 select current_date(); current_time() を選択します。 今すぐ選択(); 年を選択( now() ); 月を選択( now() ); 日を選択( now() ); datediff('2016-12-31',now()); を選択します。 文字列関数: charset('哈哈')を選択します。 concat('hello','haha','ma') を選択します。 instr('www.baidu.com','baidu') を選択します。 部分文字列('www.baidu.com',5,3)を選択します。 数学関数: bin(10)を選択します。 select floor(3.14); //3.14 より小さい最大の整数 --- 正の 3 select floor(-3.14); //-3.14 より小さい最大の整数 --- 負の 4 select ceiling(3.14); //3.14より大きい最小の整数 --- 正の4 select ceiling(-3.14);//-3.14 より大きい最小の整数 --- 負の 3、整数値である必要があります select format(3.1415926,3); 小数点以下 3 桁を残し、切り上げます select mod(10,3);// 余りを取得します select rand();// 暗号化機能: md5('123456')を選択します。 32ビットの16進数e10adc3949ba59abbe56e057f20f883eを返します。 MySQL のフロー制御ステートメントのデモンストレーション json を使用します。 ユーザーが存在する場合はテーブルを削除します。 ユーザーが存在しない場合はテーブルを作成します( id int(5) 主キー auto_increment, 名前 varchar(10) null ではない 一意、 サル int(5) ); ユーザーに(name,sal)値('哈哈',3000)を挿入します。 ユーザーに(名前、給与)値('呵'、4000)を挿入します。 ユーザーに挿入します(名前、給与) 値('嘻嘻'、5000); ユーザーに挿入します(name,sal) values('笨笨',6000); ユーザーに挿入(name,sal) values('明明',7000); ユーザーに挿入します(名前、sal) values('丝丝',8000); ユーザーに(name,sal)値('君君',9000)を挿入します。 ユーザーに挿入します(名前、給与) 値('赵赵'、10000); insert into users(name,sal) values('無名',NULL); 給与が5,000人民元以上の従業員は「高給」とマークされ、それ以外の従業員は「初任給」とマークされます。 name "名前"、sal "給与" を選択 if(sal>=5000,"最高給与","初任給") "説明" ユーザーから; 給与がNULLの従業員を「未払い」として識別します 名前を選択 "name",ifnull(sal,"unpaid") "salary" ユーザーから; 給与が5,000人民元以上の従業員は「高給」とマークされ、それ以外の従業員は「初任給」とマークされます。 name "名前"、sal "給与" を選択 sal>=5000 の場合、「高給」 else "初任給" end "説明" ユーザーから; 給与が7,000元の従業員は「高給」、給与が6,000元の従業員は「中給」、給与が5,000元の従業員は「初任給」、それ以外の従業員は「試用給与」とマークされます。 name "名前"、sal "給与" を選択 ケースサル 3000なら「低賃金」 4000のときは「初任給」 5000の場合は「試用給与」 6000なら「中間給与」 7000なら「給料はもっといい」 8000なら「悪くない給料」 9000なら「高給」 そうでなければ「高額給与」 「説明」終了 ユーザーから; 上記は、編集者が紹介したMySQlデータベース(拡張バージョン)の必須SQL文です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: Linux コマンドラインでパケットをキャプチャするために tcpdump を使用するいくつかの機能
コードが失われ、コンテナ内で実行されているイメージから必要なコードを回復する必要がある場合があります...
1. ウィンドウ -> 設定を選択してEclipseの設定パネルを開きます。 2. 「設定」ウ...
CUDA インストール cuda をダウンロードサポートされているcudaバージョンを表示するには...
序文Linux カーネルでは、元のコードとの互換性を保つため、または特定の仕様に準拠するため、また現...
1. ダウンロード、例として8.0を取り上げますダウンロードアドレス: https://dev.my...
UI カットのプロセスでは、ページはヘッダー、コンテンツ、フッターの 3 つの部分で構成されることが...
効果: GROUP_CONCAT関数は、フィールド値を文字列に連結することができます。デフォルトの区...
概要今日は主に、MySQL データベースから binlog ログを正しく削除する方法を紹介します。ロ...
始める段階から初心者になるまで、Linux オペレーティング システムは不可欠です。最初のステップは...
Java開発キットjdkをダウンロードするJDK のダウンロード アドレスはhttp://www.o...
C++でMySQLに接続する際の参考情報です。具体的な内容は以下のとおりです。 MySQLCon ク...
目次乱数を生成する0から1までの乱数を生成する指定された範囲内で乱数を生成します6桁のモバイル認証コ...
MYSQL を使用する場合、トリガーがよく使用されますが、不適切な使用によって問題が発生する場合が...
この記事では、MySQL が乱数を生成し、文字列を連結する方法について例を使用して説明します。ご参考...
vue+remを使用したカスタムカルーセルチャートの実装は参考までに。具体的な内容は以下のとおりです...