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