The last few articles served as a recap of the Data Definition language. This and the next ones will do the same for the Data Manipulation Language (DML). Keep reading to learn or refresh your knowledge in this area.
In this new subseries on DDL, all the most important DDL instructions (CREATE, ALTER, and DROP) and objects (TABLE, VIEW, and INDEX) will be discussed. However, the discussion won’t focus on their syntax but will instead cover how to convert physical files to SQL tables and how to create self-managing unique keys.
Previously, we reviewed the main DML instructions and showed sample statements built over the UMADB database. Well, calling it a database at this stage is stretching the truth a bit: UMADB is just a set of physical files, not actually linked to each other at database level. Instead, they share some common string fields that work as keys at the application level.
Converting UMADB’s Physical Files to SQL Tables
The first step in transforming UMADB from an amalgamation of files into a coherent, organized database is to convert the physical files into proper SQL tables, with all the bells and whistles. There are several ways to do this. For instance, you can type the complete CREATE TABLE statements by hand—not very efficient, but it gives you practice with the CREATE TABLE statement. But we’re not going to do that! We’re going to take a shortcut and use a nifty feature of IBM Access Client Solutions’ (ACS) Run SQL Scripts: the Generate SQL option. (In the examples here, I use System i Navigator, but the instructions will also work with more recent versions of the product.)
In order to do that, let’s fire up System i Navigator (ACS) and expand the My Connections handle (it sits on the left sidebar of the window). Then we’ll expand the Databases handle and its subhandle with the system’s name on it. Finally, let’s click Schemas. Something similar to what’s shown in Figure 1 should be displayed.
Figure 1: System i Navigator (ACS) database schemas
The list of schemas shown at the right side of the screen will vary, but there’s a high probability that the one you want, UMADB_CHP2 (assuming you downloaded and restored to your IBM i the save file containing this library from the previous articles of this series’ downloadable source code), is not displayed. Let’s fix that. In the bottom right pane of the window, under Database tasks, there are several options. The first one from the top is Select schemas to display. If you click that option, you’ll see something resembling Figure 2.
Figure 2: Adding the UMADB_CHP2 schema to the schemas to display
In order to add UMADB_CHP2 schema to the schemas to display panel, you have two options: You either type the library (or schema) name in the box in the top left corner of the window, or you click Search for schemas:. If you choose the latter, it’s possible to refine your search by entering part of the schema’s name followed by the percent (%) character and clicking the Search button. After any of these options, you simply click the Add --> button, followed by OK.
This closes the window, and you’ll now see the UMADB_CHP2 schema on the schema’s list in the left sidebar. Let’s expand the UMADB_CHP2 database folder and click Tables. You’ll see something similar to Figure 3, without the context menu—I’ll get to that in a second.
Figure 3: Expanded UMADB_CHP2 schema, showing the list of tables
To get exactly what’s shown in Figure 3, you’ll need to right-click a table. This opens a context menu; I’ll explore a few of the options on this menu later. For the moment, let me just focus on the Generate SQL… option. What does it do? Well, IBM can come up with some very obscure names for things sometimes, but in this case, there’s no doubt: This option generates the SQL code required to create the selected object.
Note that there are things that are possible in DDS that SQL can’t do, and vice versa. As you’ll find out in a moment, the output of this option will list the things it can’t convert to SQL. But first, let’s generate the SQL statements for all the tables in the UMADB_CHP2 schema. Try selecting all the tables, pressing the right mouse button, and choosing the Generate SQL… option. You should see something resembling Figure 4.
Figure 4: Generating SQL for multiple tables
Here you can save the generated SQL statements to a source file or open a new Run SQL Scripts window instead. I prefer this last option because it’s easier to inspect and change the statements in a non-native SQL tool, so let’s leave the selection as it is (the default should be Open in Run SQL Scripts) and click OK.
Now that we have our crude physical files converted to basic SQL tables, we can start transforming them into proper tables; that’s what we’ll talk about next time. Until then, feel free to comment, make suggestions, or improve upon what I wrote here using the Comments section below.