データビット挿入SQLの一連の(D)

少しずつ一連の記事の分析は、包括的な分析を照会する最も簡単なSQLクエリから、実際の開発のこまごまとをまとめたため、[SQL]は
SQLの解析では、同時に関連の操作で分析するには、HibernateをMyBatisの
クリック詳細を見ます

このセクションでは、データベースに挿入されたデータを記述し

1新しいレコードを挿入

新しいレコードのテーブルに挿入。
このようなテーブルに新しいユーザデータを追加するなど、あなたはこれを書くことができます

insert into t_user (user_id,user_name,user_age,user_address,user_phone)
values(32,'小不点',18,"龙城大街一号院",192303023994)

MySQLおよびDB2の単一行挿入、または複数の行挿入選択することができます

insert into t_user (user_id,user_name,user_age,user_address,user_phone)
values
(32,'小不点',18,"龙城大街一号院",192303023994)(33,'小李子',20,"龙城大街二号院",192303023995)

insert文は正確に、当然のことながら、簡単な言い回し同じであるステートメントの構文INSERT、データベース・システムのすべてのタイプでは、データベース・テーブルに新しい行を作成することができます

insert into t_user 
values('山西省','小不点',"龙城大街一号院",18,32,192303023994,)

行へのターゲットフィールドがリストされていない場合、あなたがテーブルのすべての列を挿入する必要があることに注意してください。

2デフォルト値を挿入

定義テーブルは、各列の値を指定せず、デフォルト値に行を挿入今、いくつかの列のデフォルト値を定義することができるとき。

指定された列の2.1デフォルト値テーブルを作成します
creat table t_user (user_id default 0)

すべてのデータベース・システムは、明示的にカラム値の挿入デフォルトのキーワードを指定するサポート、いくつかのデータベースもこの問題を解決するための他の方法をサポート

データが2.2に挿入されたときに、デフォルト値を使用します
insert into t_user (user_id,user_name,user_age,user_address,user_phone)
values(32,'小不点',18,default,default)

テーブルにないすべての列上記のように補間値は、明示的に列のデフォルト値の名前を指定するために使用することができますされているがuser_addressを書いたとき、user_phoneデフォルトを使用して

Oracle8iデータベースおよびそれ以前のバージョンのデフォルト値を挿入し、デフォルトのキーワードをサポートしていませんが、以前のデータベースcをOracle9ではで表示することができません

テーブルのすべての列にデフォルト値を定義する場合、MySQLでは、あなたは問題を解決するために、空の値を使用することができます

insert into t_user values()

この場合、すべての列がデフォルト値に設定されます。

デフォルト値の句をサポートするPostgreSQLとSQLサービス

insert into t_user default values 

デフォルト値の句のすべての列がデフォルト値自体に設定します。

デフォルトキーワードデフォルト値の挿入に対応する列の値のリストでは、デフォルト値を使用すると、テーブルを作成するときに、データベースのすべては、いくつかのキーワードを使用することができます定義されます。

代わりに、デフォルトのNULL値を持つ3

列のデータは、デフォルト値を定義し、どんなにを必要とINSERT何列のデフォルト値は、NULLにこの値を設定することができるということです

create table t_user (user_id defalut 0,user_flag varchar(100))

今すぐデータを挿入

insert into t_user (user_id,user_flag) values (null,"今天心与心的交流了一下")

文の挿入は、明示的にNULLを指定した場合、実際の開発では、すべての人々はあなたが明示的にinsert文でNULL値を指定することができることを知っていない、すべての通常の練習は、データを挿入することで、あなたが列を挿入する必要はありません。データ列を指定しない場合にヌルを挿入するように修飾することができる上記のよう

insert into t_user (user_flag) values ("今天心与心的交流了一下")

4つのテーブルから別のテーブルの行の複製に

別のテーブル、1つのテーブルからデータをコピーし、最初のステップは、最初のテーブルからクエリデータであり、第2段階の複製複雑なクエリデータも、このプロセスが単純であってもよいが、最終結果はコピーする
例をテーブルt_userテーブルt_dep_userでテーブルにデータをコピーします

insert into t_dep_user (dep_user_name,dep_user_flag)
select user_name,user_flag from t_user 

ここで使用される方法では、INSERT文の後に問い合わせが続いている、クエリはあなたが取得したい行を返します。

複製された別のテーブルの行に複数のテーブルから5

そのようなテーブルにデータをコピーするように、データテーブルからクエリが、データを複数のテーブルにコピーされ、上記とは異なるt_user t_user_2、t_user_3、t_user_4で:

MySQLでは、PostgreSQLとSQL Serverは、操作の挿入、このマルチテーブルをサポートしていません。

オラクルでは書くことができます

insert all 
    when user_age < 18 then 
        into t_user_2(user_name,user_age,user_flag) values (dep_user_name,dep_user_age,dep_user_flag)
    when user_age >60 then 
        into t_user_3(user_name,user_age,user_flag) values (dep_user_name,dep_user_age,dep_user_flag)
    else 
        into t_user_4(user_name,user_age,user_flag) values (dep_user_name,dep_user_age,dep_user_flag)
    select dep_user_name,dep_user_age,dep_user_flag from t_user 

DB2では、すべての目標は、労働組合のすべてと結合することができます


///先创建表
create table t_user_2(user_name varchar(10),user_age integer check (user_age <18),user_flag varchar(44))
create table t_user_3(user_name varchar(10),user_age integer check (user_age >=18 and user_age <=60),user_flag varchar(44))
create table t_user_4(user_name varchar(10),user_age integer check (user_age >60),user_flag varchar(44))

///插入数据 

insert into (
 select * from t_user_2 union all
 select * from t_user_3 union all
 select * from t_user_4 
) select * from t_user 

6コピーテーブル構造

実際には、あなたは新しいテーブルを作成したい、既存のテーブルと同じ構造を持つテーブルを設定し、あなただけのテーブル構造のコピーを検討することができます
のような句でcreate tableコマンドを使用して、DB2に

create table t_user_2 like t_user

オラクル、MySQLとPostgreSQLでは、サブクエリの使用は任意の行を返しません

create table t_user_2 as select * from t_user where 1=0

クエリ1 = 0リードは、最終的なテーブルが生成されるクエリ空のテーブルのselect句でカラム名を作成するために応じて、任意の行を返さない場合、ここで


完成

发布了356 篇原创文章 · 获赞 182 · 访问量 46万+

おすすめ

転載: blog.csdn.net/zl18603543572/article/details/104450520