JDBCベース(二)
まず、例で使用するテーブルを作成します.COFFEESテーブルには、コーヒー名、価格、今週の販売量(ポンド)、およびこれまでの販売量(ポンド)のコーヒー販売の基本情報が含まれています.COFFEESテーブルの内容は以下の通りであり、後述する.
COF_NAME
SUP_ID
PRICE
SALES
TOTAL
Colombian
101
7.99
0
0
French_Roast
49
8.99
0
0
Espresso
150
9.99
0
0
Colombian_Decaf
101
8.99
0
0
French_Roast_Decaf
49
9.99
0
0
コーヒー名を格納する列はCOF_NAMEは、最大32文字のVARCHAR SQLタイプの数値を保存します.販売される各コーヒーは異なる名前を使用するため、プライマリ・キーとして、特定のコーヒーを識別することができます.2番目の列(SUP_ID)は、コーヒーサプライヤーを識別する数字を保存します.この数字はINTEGER SQLタイプです.3番目の列(PRICE)には、小数点以下の値を保存する必要があるため、FLOAT SQLタイプの値が格納されます(通貨は一般的にDECIMALまたはNUMERIC SQLタイプに格納されますが、各DBMSの間に違いがあるため、古いバージョンのJDBCと互換性がないことを避けるため、本コースではより標準的なFLOATタイプが使用されます).SALESという列にはINTEGER SQLタイプが格納されており、今週の販売量(ポンド)を示しています.最後の列(TOTAL)には、これまでの売上高(ポンド)を示すSQL INTEGERタイプが含まれています.
SUPPLIERS :
SUP_ID
SUP_NAME
STREET
CITY
STATE
ZIP
101
Acme, Inc.
99 Market Street
Groundsville
CA
95199
49
Superior Coffee
1 Party Place
Mendocino
CA
95460
150
The High Ground
100 Coffee Lane
Meadows
CA
93966
COFFEES SUPPLIERS SUP_ID , SELECT 。SUP_ID SUPPLIERS , 。 COFFEES ,SUP_ID ( , )。 SUP_ID SUPPLIERS , 。 COFFEES , , SUP_ID, 。 SELECT 。
SQL COFFEES 。 SQL 。 ( SQL ) 。 VARCHAR , 。 。 , SQL COF_NAME 32 :
CREATE TABLE COFFEES
(COF_NAME VARCHAR(32),
SUP_ID INTEGER,
PRICE FLOAT,
SALES INTEGER,
TOTAL INTEGER)
DBMS , DBMS 。 ,Oracle ,Sybase go 。 , JDBC 。
SQL 。 CREATE TABLE , , 。SQL , 。SQL , 。 SQL , :
SELECT First_Name, Last_Name
FROM Employees
WHERE Last_Name LIKE "Washington"
select First_Name, Last_Name from Employees where
Last_Name like "Washington"
: “Washington” ,“W” , 。
,DBMS 。 DBMS CREATE TABLE , DBMS 。 , ( COFFEES SUPPLIERS) , 。
COFFEES SQL 。 ( ), createTableCoffees, JDBC 。 ,DBMS , Java , String 。 , , , (+) :
String createTableCoffees = "CREATE TABLE COFFEES " +
"(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, " +
"SALES INTEGER, TOTAL INTEGER)";
CREATE TABLE java.sql.Types SQL ( JDBC )。DBMS , JDBC , CREATE TABLE CreateCoffees.java 。 DBMS , ( )。
, JDBC 。
JDBC
Statement SQL DBMS。 Statement , SQL , Statement 。 SELECT , executeQuery。 , executeUpdate。
Statement 。 Connection con Stetement stmt:
Statement stmt = con.createStatement();
stmt , DBMS SQL 。 stmt 。 SQL executeUpdate:
stmt.executeUpdate("CREATE TABLE COFFEES " +
"(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, " +
"SALES INTEGER, TOTAL INTEGER)");
SQL createTableCoffees, :
stmt.executeUpdate(createTableCoffees
);
executeUpdate , createTableCoffees SQL DDL( ) 。 、 DDL , executeUpdate 。 ,executeUpdate SQL 。 ,executeUpdate , , , 。
SQL executeQuery。 SQL SELECT 。 。
COFFEES , 。 。 , 。 ( ) 。
:COF_NAME Colombian,SUP_ID 101,PRICE 7.99,SALES 0,TOTAL 0( Coffee Break , , 0)。 COFFEESS , Statement , executeUpdate 。
SQL , , (+) , 。 , COFFEES VALUES 。 , COFFEES VALUES ; ,SQL “ INSERT INTO COFFEESVALUES . . .”, DBMS COFFEESVALUES 。 , 。 DBMS, 。
Statement stmt = con.createStatement();
stmt.executeUpdate(
"INSERT INTO COFFEES " +
"VALUES ('Colombian', 101, 7.99, 0, 0)");
COFFEES 。 Statement , Statement stmt。
stmt.executeUpdate("INSERT INTO COFFEES " +
"VALUES ('French_Roast', 49, 8.99, 0, 0)");
:
stmt.executeUpdate("INSERT INTO COFFEES " +
"VALUES ('Espresso', 150, 9.99, 0, 0)");
stmt.executeUpdate("INSERT INTO COFFEES " +
"VALUES ('Colombian_Decaf', 101, 8.99, 0, 0)");
stmt.executeUpdate("INSERT INTO COFFEES " +
"VALUES ('French_Roast_Decaf', 49, 9.99, 0, 0)");
COFFEES , SELECT 。 SQL (*) 。 WHERE , SQL :
SELECT * FROM COFFEES
, :
COF_NAME SUP_ID PRICE SALES TOTAL
--------------- ------ ----- ----- -----
Colombian 101 7.99 0 0
French_Roast 49 8.99 0 0
Espresso 150 9.99 0 0
Colombian_Decaf 101 8.99 0 0
French_Roast_Decaf 49 9.99 0 0
SQL , 。Java 。 。
SELECT ; ( ):
SELECT COF_NAME, PRICE FROM COFFEES
:
COF_NAME PRICE
-------- ---------- -----
Colombian 7.99
French_Roast 8.99
Espresso 9.99
Colombian_Decaf 8.99
French_Roast_Decaf 9.99
SELECT 。 SQL $9.00 :
SELECT COF_NAME, PRICE
FROM COFFEES
WHERE PRICE < 9.00
:
COF_NAME PRICE
-------- ------- -----
Colombian 7.99
French_Roast 8.99
Colombian Decaf 8.99