100% found this document useful (7 votes)
59 views

Complete Download of Database Processing Fundamentals Design and Implementation 15th Edition Kroenke Solutions Manual Full Chapters in PDF

Solutions Manual

Uploaded by

huxaamteyang
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (7 votes)
59 views

Complete Download of Database Processing Fundamentals Design and Implementation 15th Edition Kroenke Solutions Manual Full Chapters in PDF

Solutions Manual

Uploaded by

huxaamteyang
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 69

Full download solution manual or testbank at testbankdeal.

com

Database Processing Fundamentals Design and


Implementation 15th Edition Kroenke Solutions
Manual

https://testbankdeal.com/product/database-processing-
fundamentals-design-and-implementation-15th-edition-kroenke-
solutions-manual/

OR CLICK HERE

DOWNLOAD NOW

Download more solution manual or test bank from https://testbankdeal.com


More products digital (pdf, epub, mobi) instant
download maybe you interests ...

Database Processing Fundamentals Design and


Implementation 15th Edition Kroenke Test Bank

https://testbankdeal.com/product/database-processing-
fundamentals-design-and-implementation-15th-edition-kroenke-test-
bank/

Database Processing Fundamentals Design and


Implementation 13th Edition Kroenke Solutions Manual

https://testbankdeal.com/product/database-processing-
fundamentals-design-and-implementation-13th-edition-kroenke-
solutions-manual/

Database Processing Fundamentals Design and


Implementation 14th Edition Kroenke Solutions Manual

https://testbankdeal.com/product/database-processing-
fundamentals-design-and-implementation-14th-edition-kroenke-
solutions-manual/

Database Processing Fundamentals Design and


Implementation 13th Edition Kroenke Test Bank

https://testbankdeal.com/product/database-processing-
fundamentals-design-and-implementation-13th-edition-kroenke-test-
bank/
Database Processing Fundamentals Design and
Implementation 14th Edition Kroenke Test Bank

https://testbankdeal.com/product/database-processing-
fundamentals-design-and-implementation-14th-edition-kroenke-test-
bank/

Database Processing 11th Edition Kroenke Solutions


Manual

https://testbankdeal.com/product/database-processing-11th-
edition-kroenke-solutions-manual/

Database Processing 12th Edition Kroenke Solutions


Manual

https://testbankdeal.com/product/database-processing-12th-
edition-kroenke-solutions-manual/

Database Processing 12th Edition Kroenke Test Bank

https://testbankdeal.com/product/database-processing-12th-
edition-kroenke-test-bank/

Database Systems Design Implementation and Management


12th Edition Coronel Solutions Manual

https://testbankdeal.com/product/database-systems-design-
implementation-and-management-12th-edition-coronel-solutions-
manual/
INSTRUCTOR’S MANUAL
TO ACCOMPANY

David M. Kroenke | David J. Auer | Scott L. Vandenberg | Robert C. Yoder

40th Anniversary Edition


DATABASE PROCESSING
Fundamentals, Design, and Implementation
15th Edition

Chapter 7
SQL for Database Construction and Application Processing

Prepared By
David J. Auer
Western Washington University
Instructor's Manual to accompany:

Database Processing: Fundamental, Design, and Implementation (15th Edition)


David M. Kroenke | David J. Auer | Scott L. Vandenberg | Robert C. Yoder

Copyright © 2019 Pearson Education, Inc.

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted,
in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior
written permission of the publisher. Printed in the United States of America.
Chapter Seven – SQL For Database Construction and Application Processing

❖ CHAPTER OBJECTIVES
• To be able to create and manage table structures using SQL statements
• To understand how referential integrity actions are implemented in SQL statements
• To be able to create and execute SQL constraints
• To understand several uses for SQL views
• To be able to use SQL statements to create, use, and manage views
• To gain an understanding of how SQL is used in an application program
• To understand how to create and use functions
• To understand how to create and use triggers
• To understand how to create and use stored procedures

❖ IMPORTANT TEACHING NOTE – READ THIS FIRST!


Chapter 7 is intended to be taught in conjunction with one of these downloadable online
chapters depending on which DBMS product you are using:
• For Microsoft SQL Server 2017, use online Chapter 10A.
• For Oracle Database 12c Release 2 or Oracle Database XE, use online Chapter
10B.
• For MySQL 5.7, use online Chapter 10C.
For each topic discussed in Chapter 7, there is a more detailed and DBMS specific
treatment of the same topic in online Chapters 10A, 10B, and 10C.
When you teach a topic in Chapter 7, extend the coverage with the associated material
in online Chapters 10A, 10B, and 10C.
Assignments from the end of chapter Review Question, Project Questions, Cases and
Projects also can and should be coordinated between Chapter 7 and the online DBMS
specific chapters.
The online Chapters are available for downloading at
http://www.pearsonhighered.com/kroenke/.

Page 7-3
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

❖ ERRATA
[05-MAY-2018 – David Auer] Page 412. The Queen Ann Curiosity Shop Project
Question M has a misspelled word. The corrected question text is:
Write an SQL statement to create a view called EmployeeSupervisorView that shows who, if anyone,
supervises each employee at The Queen Anne Curiosity Shop, and which contains E1.LastName as
EmployeeLastName, E1.FirstName as EmployeeFirstName, E1.Position, E2.Lastname as
SupervisorLastName, and E2.FirstName as SupervisorFirstName. E1 and E2 are two aliases for the
EMPLOYEE table, and are required to run a query on a recursive relationship. Include employees
who do not have a supervisor. Run the statement to create the view, and then test the view with an
appropriate SQL SELECT statement.

[05-MAY-2018 – Scott Vandenberg] Page 416. There is an error in the list of values for
the STORE.Country column. Based on Figure 7-61, possible values should include the
People’s Republic of China, but not Hong Kong because Hong Kong is now part of the
People’s Republic of China. The corrected question text is:
Values of the Country column in the STORE table are restricted to: India, Japan, People’s Republic of
China, Peru, Philippines, Singapore, and United States.

[05-MAY-2018 – David Auer] Page 412. The Queen Ann Curiosity Shop Project
Question M has a misspelled word. The corrected question text is:
Write an SQL statement to create a view called EmployeeSupervisorView that shows who, if anyone,
supervises each employee at The Queen Anne Curiosity Shop, and which contains E1.LastName as
EmployeeLastName, E1.FirstName as EmployeeFirstName, E1.Position, E2.Lastname as
SupervisorLastName, and E2.FirstName as SupervisorFirstName. E1 and E2 are two aliases for the
EMPLOYEE table, and are required to run a query on a recursive relationship. Include employees
who do not have a supervisor. Run the statement to create the view, and then test the view with an
appropriate SQL SELECT statement.

[06-MAY-2018 – Bob Yoder] Page 412. The Queen Ann Curiosity Shop Project
Question Q has an incorrect SQL view name. The corrected question text is:
Write an SQL statement to create a view called CustomerFirstNameFirstSaleSummaryView that
contains SALE.SaleID, SALE.SaleDate, CUSTOMER.CustomerID, the concatenated customer name
using the FirstNameFirst function, SALE_ITEM .SaleItemID, SALE_ITEM.ItemID,
ITEM.ItemDescription, and ITEM.ItemPrice. Run the statement to create the view, and then test the
view with an appropriate SQL SELECT statement.

Page 7-4
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

❖ TEACHING SUGGESTIONS
• If your students have been using Access, now is really the time to switch to Microsoft
SQL Server 2017, Oracle Database, or MySQL 5.7. Refer your students to the
beginning of Online Chapter 10A for Microsoft SQL Server 2017, Online Chapter 10B
for Oracle Database (Oracle Database Express Edition 11g Release 2, aka Oracle
Database XE is heavily recommended), and Online Chapter 10C for MySQL 5.7
setup instructions.
• The SQL examples shown in Chapter 7 and the questions in the end of chapter
material work the best with the Transact-SQL (T-SQL) used in Microsoft SQL Server
2017. If your students are using Microsoft SQL Server 2017, they should be able to
create the tables, populate the tables and run the other SQL commands with little
trouble. The SQL used in Microsoft Access 2016, Oracle Database (PL/SQL), and
MySQL 5.7 varies in their ability to support all the SQL commands used here.
Oracle Database and MySQL do a better job of supporting standard SQL, while
Microsoft Access has significant variations from the standard. In the answers to the
end of chapter questions I have often shown the solution using two or more of the
three DBMSs. Otherwise, I primarily use Microsoft SQL Server 2017. If your
students are using Microsoft Access 2016, Oracle Database, or MySQL 5.7 check
the solutions to the questions before you assign them so that you can tell your
students what to watch out for!
• As discussed in the IM Chapter 2 suggestions, there is a useful teaching technique
that will allow you to demonstrate the SQL queries in the text using MS SQL Server if
you have it available.
• Create a new SQL Server database named Cape-Codd.
• Use the SQL statements in the *.sql text file DBP-e15-MSSQL-Cape-Codd-
Create-Tables.sql to create the Cape Codd database tables (the additional
tables used in the Chapter 2 Review Questions, are also created).
• Use the SQL statements in the *.sql text file DBP-e15-MSSQL-Cape-Codd-
Insert-Data.sql to populate the Cape Codd tables (the additional tables used
in the Chapter 2 Review Questions, are also populated).
• Open the Microsoft SQL Server Management Studio and select the Cape-
Codd database.
• In the Microsoft SQL Server Management Studio, open the *.sql text file DBP-
e15-MSSQL-Cape-Codd-Query-Set-CH02.sql. This file contains all the
queries shown in the Chapter 2 text.
• Highlight the query you want to run, and then click the Execute Query button
to display the results of the query. An example of this is shown in the
following screenshot.
• All of the *.sql text files needed to do this are available in the Instructor’s
Resource Center on the text’s Web site
(www.pearsonhighered.com/kroenke).

Page 7-5
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

• The trick shown for SQL Server 2017 also works for Oracle Database using the
Oracle SQL Developer and for MySQL 5.7 using the MySQL workbench.
• Remind your students that Microsoft Access does not support all SQL constructs.
• Because of the complexity of the SQL statements to construct the View Ridge
Gallery VRG database, the necessary SQL scripts are included in the set of student
data files available at the text’s Web site (www.pearsonhighered.com/kroenke).
• Review Questions 7.04-7.40 are specifically designed to reinforce the most important
basic ideas of creating and populating tables, with a bit on SQL views also included.
These exercises are based on our recent classroom teaching experience, which
taught us the need for some very basic exercises in creating and populating tables
before going on to more complex assignments. This set of exercises is very heavily
recommended!
• Tell your students that a check constraint that provides an enumerated list is often
implemented with a table and a relationship. For example, the constraint CHECK
(Rank IN (‘FR’, ‘SO’, ‘JR’, ‘SR’)) could be implemented by creating a Rank table and
placing the list in that table. Now the Rank attribute becomes a foreign key and
referential integrity enforces the constraint. Changing the list means adding and
deleting from the RANK table.
• The relationship of database applications and the DBMS is sometimes confusing.
For a simple application using a personal DBMS such as Microsoft Access, the
application and the DBMS are nearly indistinguishable. If an application has only a
few forms and reports, and all of these are created using DBMS facilities, then the
application and the DBMS are the same. On the other hand, for an organizational
database processed by say, Oracle Database, any application elements discussed in
this chapter would be provided by application program code completely separate

Page 7-6
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

from the DBMS. It’s easier to understand all of this by focusing on application
functions that must be provided — in some cases by facilities in the DBMS and in
other cases by separate application programs.
• It is important to distinguish between an SQL view (the logical structure of data
elements) and a materialization of the view (a form or report). One SQL view can
have many materializations. While this distinction has always been important, it has
become even more so in light of three-tier architecture.
• Remind students that views can be used to implement certain types of security. Most
commonly, they are used to restrict access to attributes and to restrict actions on
tables. This is discussed in detail in Chapter 9.
• You might also remind students that sometimes SQL views are necessary to
complete certain queries.
• Too often students understand how SQL can be used for interactive query, but do
not really understand its role in application processing. In fact, SQL is far more
frequently used for SQL view processing as described here than it is as an
interactive query tool.
• SQL/Persistent Stored Modules (SQL/PSM), stored procedures and triggers
complete a student’s understanding of how database systems work. Often, we talk
about designing database systems to enforce business rules but find many rules that
we cannot enforce through design alone. Triggers will help enforce most rules that
design cannot enforce.
• SQL *sql files containing the solutions to the questions and projects at the end of the
chapter are available on the text’s Web site (www.pearsonhighered.com/kroenke).

Page 7-7
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

❖ ANSWERS TO REVIEW QUESTIONS


7.1 What does DDL stand for? List the SQL DDL statements.

DDL stands for Data Definition Language. DDL statements include:

• CREATE TABLE

• ALTER TABLE

• DROP TABLE

• TRUNCATE TABLE

7.2 What does DML stand for? List the SQL DML statements.

DML stands for Data Manipulation Language. DML statements include:

• INSERT

• UPDATE

• DELETE

• MERGE

7.3 Explain the meaning of the following expression: IDENTITY (4000, 5).

The IDENTITY keyword is used to modify a column name, and is used to specify surrogate keys.
The first number parameter after IDENTITY specifies the starting value for the surrogate key,
and the second number specifies the increment value for each additional record. Thus a column
named RelationID and modified by IDENTITY (4000, 5) will be a surrogate key named
RelationID with an initial value of 4000 (for the first record in the relation), and with following
values incremented by 5: 4000, 4005, 4010, etc.

Page 7-8
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For this set of Review Questions, we will create and use a database with a set of tables that will
allow us to compare variations in SQL CREATE TABLE and SQL INSERT statements. The
purpose of these questions is to illustrate different situations that call for specific uses of various
SQL CREATE TABLE and SQL INSERT options.

The database will be named CH07_RQ_TABLES and will contain the following six tables:

CUSTOMER_01 (EmailAddress, LastName, FirstName)

CUSTOMER_02 (CustomerID, EmailAddress, LastName, FirstName)

CUSTOMER_03 (CustomerID, EmailAddress, LastName, FirstName)

CUSTOMER_04 (CustomerID, EmailAddress, LastName, FirstName)

SALE_01 (SaleID, DateOfSale, EmailAddress, SaleAmount)

SALE_02 (SaleID, DateOfSale, CustomerID, SaleAmount)

EmailAddress is a text column containing an email address, and is therefore not a surrogate
key. CustomerID is a surrogate key that starts at 1 and increments by 1. SaleID is a surrogate
key that starts at 20150001 and increases by 1.

The CH07_RQ_TABLES database has the following referential integrity constraints:

EmailAddress in SALE_01 must exist in EmailAddress in CUSTOMER_01

CustomerID in SALE_02 must exist in CustomerID in CUSTOMER_04

The relationship from SALE_01 to CUSTOMER_01 is N:1, O-M.

The relationship from SALE_02 to CUSTOMER_04 is N:1, O-M.

The column characteristics for these tables are shown in Figures 7-35 (CUSTOMER_01), 7-36
(CUSTOMER_02, CUSTOMER_03, and CUSTOMER_04), 7-37 (SALE_01), and 7-38
(SALE_02). The data for these tables are shown in Figures 7-39 (CUSTOMER_01), 7-40
(CUSTOMER_02), 7-41 (CUSTOMER_04), 7-42 (SALE_01), and 7-43 (SALE_02).

7.4 If you are using Microsoft SQL Server, Oracle Database, or MySQL, create a folder in
your Documents folder to save and store the *.sql scripts containing the SQL statements
that you are asked to create in the following Review Questions about the
CH07_RQ_TABLES database.

• For SQL Server Management Studio, create a folder named CH07-RQ-TABLES-


Database in the Projects folder in your SQL Server Management Studio folder.

• For Oracle SQL Developer, create a folder named CH07-RQ-TABLES-Database


in your SQL Developer folder.

Page 7-9
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

• For SQL Workbench, create a folder named CH07-RQ-TABLES-Database in the


Schemas folder in your MySQL Workbench folder.

• If you are using Microsoft Access 2016, create a folder named CH07-Databases
in your DBPe15-Access-2016-Databases folder.

This is self-explanatory. The student will create the appropriate folder to hold the *.sql scripts
created in these Review Questions

7.5 Create a database named CH07_RQ_TABLES.

This is self-explanatory. The student will create the appropriate database base upon which DBMS
product they are using. For further guidance on creating a new database:

• For Microsoft SQL Server 2017, see online Chapter 10A.

• For Oracle Database, see online Chapter 10B.

• For MySQL 5.7, see online Chapter 10C.

7.6 If you are using Microsoft SQL Server, Oracle Database, or MySQL, create and save an
SQL script named CH07-RQ-TABLES-Tables-Data-and-Views.sql to hold the answers to
Review Questions 7.7–7.40. Use SQL script commenting (/* and */ symbols) to write
your answers to Review Questions that require written answers as comments.

If you are running Microsoft Access 2016, create and save a Microsoft Notepad text file
named CH07-RQ-TABLES-Tables-Data-and-Views.txt to hold the answers to Review
Questions 7.7–7.40. After you run each SQL statement in Microsoft Access 2016, copy
your SQL statement to this file.

This is self-explanatory. The student will create an *.sql script named CH07-RQ-TABLES-
Tables-Data-and-Views.sql, unless the student is using Microsoft Access 2016 (which they really
shouldn’t be at this point!), in which case they will create a text file named CH07-RQ-TABLES-
Tables-Data-and-Views.txt to hold certain answers.

7.7 Write and run an SQL CREATE TABLE statement to create the CUSTOMER_01 table.

For Microsoft SQL Server, Oracle Database, and MySQL 5.7:


CREATE TABLE CUSTOMER_01(
EmailAddress VARCHAR(100) NOT NULL,
LastName VARCHAR(25) NOT NULL,
FirstName VARCHAR(25) NOT NULL,
CONSTRAINT CUSTOMER_01_PK PRIMARY KEY(EmailAddress)
);

Page 7-10
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

7.8 Write and run an SQL CREATE TABLE statement to create the CUSTOMER_02 table.

For Microsoft SQL Server:


CREATE TABLE CUSTOMER_02(
CustomerID INT NOT NULL IDENTITY(1, 1),
EmailAddress VARCHAR(100) NOT NULL,
LastName VARCHAR(25) NOT NULL,
FirstName VARCHAR(25) NOT NULL,
CONSTRAINT CUSTOMER_02_PK PRIMARY KEY(CustomerID)
);

Page 7-11
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For Oracle Database:


Oracle creates primary key surrogate values by using sequences.

CREATE TABLE CUSTOMER_02(


CustomerID INT NOT NULL ,
EmailAddress VARCHAR(100) NOT NULL,
LastName VARCHAR(25) NOT NULL,
FirstName VARCHAR(25) NOT NULL,
CONSTRAINT CUSTOMER_02_PK PRIMARY KEY(CustomerID)
);

CREATE SEQUENCE seqC02 INCREMENT BY 1 START WITH 1;

For MySQL 5.7:


MySQL creates primary key surrogate values by AUTO_INCREMENT, which always
increments by 1. The starting value may be set using an SQL ALTER TABLE statement.

CREATE TABLE CUSTOMER_02(


CustomerID INT NOT NULL AUTO_INCREMENT,
EmailAddress VARCHAR(100) NOT NULL,
LastName VARCHAR(25) NOT NULL,
FirstName VARCHAR(25) NOT NULL,
CONSTRAINT CUSTOMER_02_PK PRIMARY KEY(CustomerID)
);

7.9 Are there any significant differences between the CUSTOMER_01 and CUSTOMER_02
tables? If so, what are they?

CUSTOMER_02 uses a surrogate primary key, while CUSTOMER_01 uses a non-surrogate


primary key.

7.10 Write and run an SQL CREATE TABLE statement to create the CUSTOMER_03 table.

For Microsoft SQL Server:


CREATE TABLE CUSTOMER_03(
CustomerID INT NOT NULL IDENTITY(1, 1),
EmailAddress VARCHAR(100) NOT NULL,
LastName VARCHAR(25) NOT NULL,
FirstName VARCHAR(25) NOT NULL,
CONSTRAINT CUSTOMER_03_PK PRIMARY KEY(CustomerID)
);

Page 7-12
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For Oracle Database XE:


Oracle creates primary key surrogate values by using sequences.

CREATE TABLE CUSTOMER_03(


CustomerID INT NOT NULL ,
EmailAddress VARCHAR(100) NOT NULL,
LastName VARCHAR(25) NOT NULL,
FirstName VARCHAR(25) NOT NULL,
CONSTRAINT CUSTOMER_03_PK PRIMARY KEY(CustomerID)
);

CREATE SEQUENCE seqC03 INCREMENT BY 1 START WITH 1;

For MySQL 5.7:


MySQL creates primary key surrogate values by AUTO_INCREMENT, which always
increments by 1. The starting value may be set using an SQL ALTER TABLE statement.

CREATE TABLE CUSTOMER_03(


CustomerID INT NOT NULL AUTO_INCREMENT,
EmailAddress VARCHAR(100) NOT NULL,
LastName VARCHAR(25) NOT NULL,
FirstName VARCHAR(25) NOT NULL,
CONSTRAINT CUSTOMER_03_PK PRIMARY KEY(CustomerID)
);

7.11 Are there any significant differences between the CUSTOMER_02 and CUSTOMER_03
tables? If so, what are they?

The table structure is the same, so there are no significant differences between the
CUSTOMER_02 and CUSTOMER_03 tables.

7.12 Write and run an SQL CREATE TABLE statement to create the CUSTOMER_04 table.

For Microsoft SQL Server:


CREATE TABLE CUSTOMER_04(
CustomerID INT NOT NULL IDENTITY(1, 1),
EmailAddress VARCHAR(100) NOT NULL,
LastName VARCHAR(25) NOT NULL,
FirstName VARCHAR(25) NOT NULL,
CONSTRAINT CUSTOMER_04_PK PRIMARY KEY(CustomerID)
);

Page 7-13
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For Oracle Database XE:


Oracle creates primary key surrogate values by using sequences.

CREATE TABLE CUSTOMER_04(


CustomerID INT NOT NULL ,
EmailAddress VARCHAR(100) NOT NULL,
LastName VARCHAR(25) NOT NULL,
FirstName VARCHAR(25) NOT NULL,
CONSTRAINT CUSTOMER_03_PK PRIMARY KEY(CustomerID)
);

CREATE SEQUENCE seqC04 INCREMENT BY 1 START WITH 1;

For MySQL 5.7:


MySQL creates primary key surrogate values by AUTO_INCREMENT, which always
increments by 1. The starting value may be set using an SQL ALTER TABLE statement.

CREATE TABLE CUSTOMER_04(


CustomerID INT NOT NULL AUTO_INCREMENT,
EmailAddress VARCHAR(100) NOT NULL,
LastName VARCHAR(25) NOT NULL,
FirstName VARCHAR(25) NOT NULL,
CONSTRAINT CUSTOMER_04_PK PRIMARY KEY(CustomerID)
);

7.13 Are there any significant differences between the CUSTOMER_03 and CUSTOMER_04
tables? If so, what are they?

The table structure is the same, so there are no significant differences between the
CUSTOMER_03 and CUSTOMER_04 tables.

7.14 Write and run an SQL CREATE TABLE statement to create the SALE_01 table. Note
that the foreign key is EmailAddress, which references CUSTOMER_01. EmailAddress.
In this database, CUSTOMER_01 and SALE_01 records are never deleted, so that there
will be no ON DELETE referential integrity action. However, you will need to decide how
to implement the ON UPDATE referential integrity action.

For Microsoft SQL Server:


CREATE TABLE SALE_01(
SaleID INT NOT NULL IDENTITY(20150001, 1),
DateOfSale DATE NOT NULL,
EmailAddress VARCHAR(100) NOT NULL,
SaleAmount NUMERIC(7,2) NOT NULL,
CONSTRAINT SALE_PK_01 PRIMARY KEY(SaleID),
CONSTRAINT S_01_C_01_FK FOREIGN KEY(EmailAddress)
REFERENCES CUSTOMER_01(EmailAddress)
ON UPDATE CASCADE
);

Page 7-14
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For Oracle Database:


Oracle creates primary key surrogate values by using sequences.

CREATE TABLE SALE_01(


SaleID INT NOT NULL,
DateOfSale DATE NOT NULL,
EmailAddress VARCHAR(100) NOT NULL,
SaleAmount NUMERIC(7,2) NOT NULL,
CONSTRAINT SALE_PK_01 PRIMARY KEY(SaleID),
CONSTRAINT S_01_C_01_FK FOREIGN KEY(EmailAddress)
REFERENCES CUSTOMER_01(EmailAddress) );

CREATE SEQUENCE seqS01 INCREMENT BY 1 START WITH 20150001;

For MySQL 5.7:


MySQL creates primary key surrogate values by AUTO_INCREMENT, which always
increments by 1. The starting value may be set using an SQL ALTER TABLE statement.

);
CREATE TABLE SALE_01(
SaleID INT NOT NULL AUTO_INCREMENT,
DateOfSale DATE NOT NULL,
EmailAddress VARCHAR(100) NOT NULL,
SaleAmount NUMERIC(7,2) NOT NULL,
CONSTRAINT SALE_PK_01 PRIMARY KEY(SaleID),
CONSTRAINT S_01_C_01_FK FOREIGN KEY(EmailAddress)
REFERENCES CUSTOMER_01(EmailAddress)
ON UPDATE CASCADE
);

ALTER TABLE SALE_01 AUTO_INCREMENT =20150001;

7.15 In Review Question 7.14, how did you implement the ON UPDATE referential integrity
action? Why?

The ON UPDATE referential integrity action is implemented as CASADE. This is because the
primary key of CUSTOMER_01 (EmailAddress) is not a surrogate key, and may therefore be
changed. Any changes to EmailAdress in CUSTOMER_01 must also be made to corresponding
values in SALE_01.

For Oracle Database:


In Oracle, the ON UPDATE option is not available, so a trigger would need to be created to
enforce this:

CREATE OR REPLACE TRIGGER CustSalesUpdateCascade01


AFTER UPDATE OF EmailAddress ON Customer_01
FOR EACH ROW
BEGIN
UPDATE SALE_01 SET EmailAddress = :new.EmailAddress
WHERE EmailAddress = :old.EmailAddress;
END;
/

Page 7-15
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

7.16 Are there any significant differences between the CUSTOMER_01 and SALE_01 tables?
If so, what are they?

SALE_01 uses a surrogate primary key, while CUSTOMER_01 uses a non-surrogate primary
key.

SALE_01 contains a foreign key with a referential integrity constraint to link it to


CUSTOMER_01, while CUSTOMER_01 does not contain a foreign key.

7.17 Could we have created the SALE_01 table before creating the CUSTOMER_01 table? If
not, why not?

No, because the primary key CUSTOMER_01.EmailAddress must be created before the foreign
key SALE_01.EmailAddress.

7.18 Write and run an SQL CREATE TABLE statement to create the SALE_02 table. Note
that the foreign key is CustomerID, which references CUSTOMER_04.CustomerID. In
this database, CUSTOMER_04 and SALE_02 records are never deleted, so that there
will be no ON DELETE referential integrity action. However, you will need to decide how
to implement the ON UPDATE referential integrity action.

For Microsoft SQL Server:


CREATE TABLE SALE_02(
SaleID INT NOT NULL IDENTITY(20150001, 1),
DateOfSale DATE NOT NULL,
EmailAddress VARCHAR(100) NOT NULL,
SaleAmount NUMERIC(7,2) NOT NULL,
CONSTRAINT SALE_02_PK PRIMARY KEY(SaleID),
CONSTRAINT S_02_C_04_FK FOREIGN KEY(CustomerID)
REFERENCES CUSTOMER_04(CustomerID)
ON UPDATE NO ACTION
);

For Oracle Database:


Oracle creates primary key surrogate values by using sequences.

CREATE TABLE SALE_02(


SaleID INT NOT NULL,
DateOfSale DATE NOT NULL,
CustomerID INT NOT NULL,
SaleAmount NUMERIC(7,2) NOT NULL,
CONSTRAINT SALE_02_PK PRIMARY KEY(SaleID),
CONSTRAINT S_02_C_04_FK FOREIGN KEY(CustomerID)
REFERENCES CUSTOMER_04(CustomerID)
);

CREATE SEQUENCE seqS02 INCREMENT BY 1 START WITH 20150001;

Page 7-16
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For MySQL 5.7:


MySQL creates primary key surrogate values by AUTO_INCREMENT, which always
increments by 1. The starting value may be set using an SQL ALTER TABLE statement.

);
CREATE TABLE SALE_02(
SaleID INT NOT NULL AUTO_INCREMENT,
DateOfSale DATE NOT NULL,
EmailAddress VARCHAR(100) NOT NULL,
SaleAmount NUMERIC(7,2) NOT NULL,
CONSTRAINT SALE_02_PK PRIMARY KEY(SaleID),
CONSTRAINT S_02_C_04_FK FOREIGN KEY(CustomerID)
REFERENCES CUSTOMER_04(CustomerID)
ON UPDATE NO ACTION
);

ALTER TABLE SALE_02 AUTO_INCREMENT =20150001;

7.19 In Review Question 7.18, how did you implement the ON UPDATE referential integrity
action? Why?

The ON UPDATE referential integrity action is implemented as NO ACTION. This is because


the primary key of CUSTOMER_04 (CustomerID) is a surrogate key, and surrogate key values
are never changed.

For Oracle Database:


In Oracle, the ON UPDATE option is not available, but it doesn’t matter since no action is
necessary.

7.20 Are there any significant differences between the SALE_01 and SALE_02 tables? If so,
what are they?

While both tables use the same structure, they link to different versions of the CUSTOMER table,
and therefore SALE_01 uses ON UPDATE CASCADE while SALE_02 uses ON UPDATE NO
ACTION.

7.21 Could we have created the SALE_02 table before creating the CUSTOMER_04 table? If
not, why not?

No, because the primary key CUSTOMER_04.CustomerID must be created before the foreign
key SALE_02.CustomerID.

Page 7-17
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

7.22 Write and run a set of SQL INSERT statements to populate the CUSTOMER_01 table.

INSERT INTO CUSTOMER_01 (EmailAddress, LastName, FirstName)


VALUES('[email protected]','Shire', 'Robert');
INSERT INTO CUSTOMER_01 (EmailAddress, LastName, FirstName)
VALUES('[email protected]','Goodyear', 'Katherine');
INSERT INTO CUSTOMER_01 (EmailAddress, LastName, FirstName)
VALUES('[email protected]','Bancroft', 'Chris');

SELECT * FROM CUSTOMER_01;

7.23 Write and run a set of SQL INSERT statements to populate the CUSTOMER_02 table.
Do not use a bulk INSERT command.

For Microsoft SQL Server and MySQL:


INSERT INTO CUSTOMER_02 (EmailAddress, LastName, FirstName)
VALUES('[email protected]','Shire', 'Robert');
INSERT INTO CUSTOMER_02 (EmailAddress, LastName, FirstName)
VALUES('[email protected]','Goodyear', 'Katherine');
INSERT INTO CUSTOMER_02 (EmailAddress, LastName, FirstName)
VALUES('[email protected]','Bancroft', 'Chris');

SELECT * FROM CUSTOMER_02;

For Oracle Database:


Note the use of the Oracle DB nextVal property:
INSERT INTO CUSTOMER_02 VALUES(
seqC02.nextVal, '[email protected]','Shire', 'Robert');
INSERT INTO CUSTOMER_02 VALUES(
seqC02.nextVal, '[email protected]','Goodyear', 'Katherine');
INSERT INTO CUSTOMER_02 VALUES(
seqC02.nextVal, '[email protected]','Bancroft', 'Chris');

Page 7-18
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

7.24 Are there any significant differences between the sets of SQL INSERT statements used
to populate the CUSTOMER_01 and CUSTOMER_02 tables? If so, what are they?

Although the SQL code appears identical, the SQL INSERT statements for CUSTOMER_01
contain the primary key EmailAddress values, while the SQL INSERT statements for
CUSTOMER_02 are written anticipating that the values for the surrogate primary key
CustomerID values will be supplied by the DBMS.

7.25 Write and run an SQL INSERT statement to populate the CUSTOMER_03 table. Use a
bulk INSERT command and the data in the CUSTOMER_01 table.

For Microsoft SQL Server and MySQL:


INSERT INTO CUSTOMER_03 (EmailAddress, LastName, FirstName)
SELECT EmailAddress, LastName, FirstName
FROM CUSTOMER_01;

SELECT * FROM CUSTOMER_03;

For Oracle Database:


Note the use of the Oracle DB nextVal property and the use of the alias C for the results of the
SELECT on the CUSTOMER_01 table :
INSERT INTO Customer_03
SELECT seqC03.nextVal, C.EmailAddress, C.LastName, C.FirstName
FROM (SELECT DISTINCT EmailAddress, LastName, FirstName
FROM CUSTOMER_01) C;

7.26 Are there any significant differences between the sets of SQL INSERT statements used
to populate the CUSTOMER_02 and CUSTOMER_03 tables? If so, what are they?

The SQL INSERT statements for CUSTOMER_02 contain the needed data values for the
statements, while the bull insert SQL INSERT statements for CUSTOMER_03 depend upon data
in CUSTOMER_01.

In addition, in order to use the sequence in a bulk insert in Oracle, we needed to use a nested
query in the FROM clause (see RQ 7.25 above).

Page 7-19
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

7.27 Write and run a set of SQL INSERT statements to populate rows 1 through 3 in the
CUSTOMER_04 table. Note that this question involves non-sequential surrogate key
values and is based on techniques for Microsoft SQL Server 2017 in Chapter 10A, for
Oracle Database in Chapter 10B, or for MySQL 5.7 in Chapter 10C, depending upon
which DBMS product you are using.

For Microsoft SQL Server:


/* Be sure IDENTITY_INSERT is OFF for all tables. */

SET IDENTITY_INSERT CUSTOMER_04 OFF

/********************************************************************************/

/* INSERT data for CUSTOMER_04 */

/* Set INDENTITY_INSERT to ON for CUSTOMER_43; */


/* reset it to OFF after non-sequential CUSTOMER data is inserted. */

SET IDENTITY_INSERT CUSTOMER_04 ON

INSERT INTO CUSTOMER_04 (CustomerID, EmailAddress, LastName, FirstName)


VALUES(17, '[email protected]','Shire', 'Robert');
INSERT INTO CUSTOMER_04 (CustomerID, EmailAddress, LastName, FirstName)
VALUES(23, '[email protected]','Goodyear', 'Katherine');
INSERT INTO CUSTOMER_04 (CustomerID, EmailAddress, LastName, FirstName)
VALUES(46, '[email protected]','Bancroft', 'Chris');

SET IDENTITY_INSERT CUSTOMER_04 OFF

SELECT * FROM CUSTOMER_04;

For Oracle Database:


The data for CUSTOMER_04 uses non-sequential -- surrogate key values for the primary key
CustomerID, and therefore we insert the value directly instead of using the sequence.
INSERT INTO CUSTOMER_04 (CustomerID, EmailAddress, LastName, FirstName)
VALUES(17, '[email protected]','Shire', 'Robert');
INSERT INTO CUSTOMER_04 (CustomerID, EmailAddress, LastName, FirstName)
VALUES(23, '[email protected]','Goodyear', 'Katherine');
INSERT INTO CUSTOMER_04 (CustomerID, EmailAddress, LastName, FirstName)
VALUES(46, '[email protected]','Bancroft', 'Chris');

Page 7-20
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For MySQL 5.7:


The data for CUSTOMER_04 uses non-sequential -- surrogate key values for the primary key
CustomerID, and therefore we must enter directly instead of using AUTO_INCREMENT as
shown in Rewiew Question 7.12. Since CUSTOMER_04 table was created with the
AUTO_INCREMENT, we use:
ALTER TABLE CUSTOMER_04
MODIFY COLUMN CustomerID INTEGER NOT NULL;

INSERT INTO CUSTOMER_04 (CustomerID, EmailAddress, LastName, FirstName)


VALUES(17, '[email protected]','Shire', 'Robert');
INSERT INTO CUSTOMER_04 (CustomerID, EmailAddress, LastName, FirstName)
VALUES(23, '[email protected]','Goodyear', 'Katherine');
INSERT INTO CUSTOMER_04 (CustomerID, EmailAddress, LastName, FirstName)
VALUES(46, '[email protected]','Bancroft', 'Chris');

ALTER TABLE CUSTOMER_04


MODIFY COLUMN CustomerID INTEGER NOT NULL AUTO_INCREMENT;
ALTER TABLE CUSTOMER_04 AUTO_INCREMENT = 47;

7.28 Are there any significant differences between the sets of SQL INSERT statements used
to populate the CUSTOMER_02 table and rows 1-3 of the CUSTOMER_04 table? If so,
what are they?

The data for CUSTOMER_02 uses sequential and non-preexisting surrogate key values for the
primary key CustomerID, and therefore no special coding is needed. In Oracle Databasem we
simply use the sequence created for the purpose.

The data for CUSTOMER_04 uses non-sequential and preexisting surrogate key values for the
primary key CustomerID, and therefore special coding is needed. In Oracle Database, we insert
the value directly instead of using the sequence.

The techniques for handling this type of data is discussed in online Chapter 10A for Microsoft
SQL Server 2017, online Chapter 10B for Oracle Database XE, and online Chapter 10C for
MySQL 5.7.

7.29 Write and run a set of SQL INSERT statements to populate rows 4 through 6 in the
CUSTOMER_04 table. Note that this question involves sequential surrogate key values
and is based on techniques for Microsoft SQL Server 2017 in Chapter 10A, for Oracle
Database in Chapter 10B, or for MySQL 5.7 in Chapter 10C, depending upon which
DBMS product you are using.

For Microsoft SQL Server and MySQL 5.7:


INSERT INTO CUSTOMER_04 (EmailAddress, LastName, FirstName)
VALUES('[email protected]','Griffith', 'John');
INSERT INTO CUSTOMER_04 (EmailAddress, LastName, FirstName)
VALUES('[email protected]', 'Tierney', 'Doris');
INSERT INTO CUSTOMER_04 (EmailAddress, LastName, FirstName)
VALUES('[email protected]','Anderson', 'Donna');

SELECT * FROM CUSTOMER_04;

Page 7-21
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For Oracle Database:


We must recalibrate the sequence to allow for the inserted values,

DROP SEQUENCE seqC04;


CREATE SEQUENCE seqC04 INCREMENT BY 1 START WITH 47;

INSERT INTO CUSTOMER_04 VALUES(


seqC04.nextVal, '[email protected]','Griffith', 'John');
INSERT INTO CUSTOMER_04 VALUES(
seqC04.nextVal, '[email protected]', 'Tierney', 'Doris');
INSERT INTO CUSTOMER_04 VALUES(
seqC04.nextVal, '[email protected]','Anderson', 'Donna');

7.30 Are there any significant differences between the sets of SQL INSERT statements used
to populate the CUSTOMER_02 table and rows 4-6 of the CUSTOMER_04 table? If so,
what are they?

No. Because both sets of data use sequential and non-preexisting surrogate key values for the
primary key CustomerID, the SQL INSERT statements are identical, and no special coding is
needed.

7.31 Write and run a set of SQL INSERT statements to populate the SALE_01 table.

For Microsoft SQL Server, and MySQL 5.7 (MySQL uses different data format):
INSERT INTO SALE_01 (DateOfSale, EmailAddress, SaleAmount)
VALUES('14-JAN-2018', '[email protected]', 234.00);
INSERT INTO SALE_01 (DateOfSale, EmailAddress, SaleAmount)
VALUES('14-JAN-2018', '[email protected]', 56.50);
INSERT INTO SALE_01 (DateOfSale, EmailAddress, SaleAmount)
VALUES('16-JAN-2018', '[email protected]', 123.00);
INSERT INTO SALE_01 (DateOfSale, EmailAddress, SaleAmount)
VALUES('17-JAN-2018', '[email protected]', 34.25);

SELECT * FROM SALE_01;

Page 7-22
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For Oracle Database:


Note the use of the Oracle DB nextVal property:
INSERT INTO SALE_01 VALUES(
seqS01.nextVal, '14-JAN-2015', '[email protected]', 234.00);
INSERT INTO SALE_01 VALUES(
seqS01.nextVal, '14-JAN-2015', '[email protected]', 56.50);
INSERT INTO SALE_01 VALUES(
seqS01.nextVal, '16-JAN-2015', '[email protected]', 123.00);
INSERT INTO SALE_01 VALUES(
seqS01.nextVal, '17-JAN-2015', '[email protected]', 34.25);

7.32 Are there any significant differences between the sets of SQL INSERT statements used
to populate the CUSTOMER_01 table and the SALE_01 table? If so, what are they?

SALE_01 uses surrogate primary key data, while CUSTOMER_01 uses a non-surrogate primary
key data provided in the SQL INSERT statement.

7.33 Could we have populated the SALE_01 table before populating the CUSTOMER_01
table? If not, why not?

No, because the data values primary key CUSTOMER_01.EmailAddress must be created before
the data values of the foreign key SALE_01.EmailAddress.

7.34 Write and run a set of SQL INSERT statements to populate the SALE_02 table.

For Microsoft SQL Server, and MySQL 5.7:


INSERT INTO SALE_02 (DateOfSale, CustomerID, SaleAmount)
VALUES('14-JAN-2018', 17, 234.00);
INSERT INTO SALE_02 (DateOfSale, CustomerID, SaleAmount)
VALUES('14-JAN-2018', 46, 56.50);
INSERT INTO SALE_02 (DateOfSale, CustomerID, SaleAmount)
VALUES('16-JAN-2018', 17, 123.00);
INSERT INTO SALE_02 (DateOfSale, CustomerID, SaleAmount)
VALUES('17-JAN-2018', 23, 34.25);
INSERT INTO SALE_02 (DateOfSale, CustomerID, SaleAmount)
VALUES('18-JAN-2018', 49, 345.00);
INSERT INTO SALE_02 (DateOfSale, CustomerID, SaleAmount)
VALUES('21-JAN-2018', 46, 567.35);
INSERT INTO SALE_02 (DateOfSale, CustomerID, SaleAmount)
VALUES('23-JAN-2018', 47, 78.50);

SELECT * FROM SALE_02;

Page 7-23
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For Oracle Database:


Note the use of the Oracle DB nextVal property:
INSERT INTO SALE_02 (SaleID, DateOfSale, CustomerID, SaleAmount)
VALUES(seqS02.nextVal, '14-JAN-2018', 17, 234.00);
INSERT INTO SALE_02 (SaleID, DateOfSale, CustomerID, SaleAmount)
VALUES(seqS02.nextVal, '14-JAN-2018', 46, 56.50);
INSERT INTO SALE_02 (SaleID, DateOfSale, CustomerID, SaleAmount)
VALUES(seqS02.nextVal, '16-JAN-2018', 17, 123.00);
INSERT INTO SALE_02 (SaleID, DateOfSale, CustomerID, SaleAmount)
VALUES(seqS02.nextVal, '17-JAN-2018', 23, 34.25);
INSERT INTO SALE_02 (SaleID, DateOfSale, CustomerID, SaleAmount)
VALUES(seqS02.nextVal, '18-JAN-2018', 49, 345.00);
INSERT INTO SALE_02 (SaleID, DateOfSale, CustomerID, SaleAmount)
VALUES(seqS02.nextVal, '21-JAN-2018', 46, 567.35);
INSERT INTO SALE_02 (SaleID, DateOfSale, CustomerID, SaleAmount)
VALUES(seqS02.nextVal, '23-JAN-2018', 47, 78.50);

7.35 Are there any significant differences between the sets of SQL INSERT statements used
to populate the SALE_01 table and the SALE_02 table? If so, what are they?

No. Both tables use surrogate data values for their primary key, and both table rely on preexisting
primary key data to provide referential integrity for their foreign key values.

7.36 Could we have populated the SALE_02 table before populating the CUSTOMER_04
table? If not, why not?

No, because the data values primary key CUSTOMER_04.CustomerID must be created before
the data values of the foreign key SALE_02.CustomerID.

7.37 Write and run an SQL INSERT statement to insert the following record into the SALE_02
table:

What was the result of running this statement? Why did this result occur?

Page 7-24
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

For Microsoft SQL Server, and MySQL 5.7:


INSERT INTO SALE_02 (DateOfSale, CustomerID, SaleAmount)
VALUES('25-JAN-2018', 50, 890.15);

For Microsoft SQL Server:

For Oracle Database:


Note the use of the Oracle DB nextVal property:
INSERT INTO SALE_02 (saleID, DateOfSale, CustomerID, SaleAmount)
VALUES(seqS02.nextVal, '25-JAN-2015', 50, 890.15);

/*** Oracle Database error message appears. ***/

For MySQL 5.7:


/*** MySQL 5.7 error message appears. ***/

The result is an error message. This occurs because the foreign key value SALE_02.CustomerID
does not exist in CUSTOMER_04. This is a violation of the referential integrity constraint
between the tables.

7.38 Write an SQL statement to create a view named Customer01DataView based on the
CUSTOMER_01 table. In the view, include the values of EmailAddress, LastName as
CustomerLastName, and FirstName as CustomerFirstName. Run this statement to
create the view, and then test the view by writing and running an appropriate SQL
SELECT statement.

For Microsoft SQL Server, Oracle Database XE, and MySQL 5.7:
CREATE OR ALTER VIEW Customer01DataView AS
SELECT EmailAddress,
LastName as CustomerLastName,
FirstName as CustomerFirstName
FROM CUSTOMER_01;

SELECT *
FROM Customer01DataView
ORDER BY EmailAddress;

Page 7-25
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

7.39 Write an SQL statement to create a view named Customer04DataView based on the
CUSTOMER_04 table. In the view, include the values of Customer ID, LastName as
CustomerLastName, FirstName as CustomerFirstName, and EmailAddress in that order.
Run this statement to create the view, and then test the view by writing and running an
appropriate SQL SELECT statement.

For Microsoft SQL Server, Oracle Database, and MySQL 5.7:


CREATE OR ALTER VIEW Customer04DataView AS
SELECT CustomerID,
LastName as CustomerLastName,
FirstName as CustomerFirstName,
EmailAddress
FROM CUSTOMER_04;

SELECT *
FROM Customer04DataView
ORDER BY CustomerID;

7.40 Write an SQL statement to create a view named CustomerSalesView based on the the
CUSTOMER_04 and SALE_02 tables. In this view, include the values of Customer ID,
LastName as CustomerLastName, FirstName as CustomerFirstName, EmailAddress,
SaleID, DateOfSale, and SaleAmount in that order. Run this statement to create the
view, and then test the view by writing and running an appropriate SQL SELECT
statement.

For Microsoft SQL Server, Oracle Database, and MySQL 5.7:


Note that Oracle Database does not allow the use of the SQL AS keyword when using table
aliases. Thus, the alias CUSTOMER_04 AS C works in Microsoft SQL Server 2017, but not in
Oracle Database. However, the alias CUSTOMER_04 C (written without the SQL AS keyword)
works in all four DBMS products.
CREATE OR ALTER VIEW CustomerSalesView AS
SELECT C.CustomerID,
LastName as CustomerLastName,
FirstName as CustomerFirstName,
EmailAddress,
SaleID, DateOfSale, SaleAmount
FROM CUSTOMER_04 C JOIN SALE_02 S
ON C.CustomerID = S.CustomerID;

Page 7-26
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

SELECT *
FROM CustomerSalesView
ORDER BY CustomerID;

Page 7-27
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

Wedgewood Pacific Review Qestions

For this set of Review Questions, we will create and use a database for Wedgewood Pacific
(WP) that is similar to the Microsoft Access database we created and used in Chapters 1 and 2.
Founded in 1987 in Seattle, Washington, this company manufactures and sells consumer drone
aircraft. This is an innovative and rapidly developing market. In January, 2016, the FAA said that
181,000 drones (out of the approximately 700,000 drones that may have been sold during the
2015 Christmas season) had been registered under the new FAA drone registration rules.1

WP currently produces three drone models: the Alpha III, the Bravo III, and the Delta IV. These
products are created by WP’s Research and Development group and produced at WP’s
production facilities. WP manufactures some of the parts used in the drones, but also purchases
some parts from other suppliers.

The company is located in two buildings. One building houses the Administration, Legal,
Finance, Accounting, Human Resources, and Sales and Marketing departments, and the
second houses the Information Systems, Research and Development, and Production
departments. The company database contains data about employees; departments; projects;
assets, such as finished goods inventory, parts inventory, and computer equipment; and other
aspects of company operations.

The database will be named WP and will contain the following four tables:

DEPARTMENT (DepartmentName, BudgetCode, OfficeNumber, Phone)


EMPLOYEE (EmployeeNumber, FirstName, LastName, Department, Phone, Email)
PROJECT (ProjectID, Name, Department, MaxHours, StartDate, EndDate)
ASSIGNMENT (ProjectID, EmployeeNumber, HoursWorked)
EmployeeNumber is a surrogate key that starts at 1 and increments by 1. ProjectID is a
surrogate key that starts at 1000 and increases by 100. DepartmentName is the text name of
the department, and is therefore not a surrogate key.

The WP database has the following referential integrity constraints:

Department in EMPLOYEE must exist in Department in DEPARTMENT


Supervisor in EMPLOYEE must exist in EmployeeNumber in EMPLOYEE
Department in PROJECT must exist in Department in DEPARTMENT
ProjectID in ASSIGNMENT must exist in ProjectID in PROJECT
EmployeeNumber in ASSIGNMENT must exist in EmployeeNumber in EMPLOYEE
The relationship from EMPLOYEE to ASSIGNMENT is 1:N, M-O and the relationship from
PROJECT to ASSIGNMENT is 1:N, M-O. The database also has the following business rules:

1
See http://www.msn.com/en-us/lifestyle/smart-living/how-many-us-drones-are-registered-in-the-faa-database/vi-AAgrTT7?
refvid=CCgxby (accessed May 2017).

Page 7-28
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

o If an EMPLOYEE row is to be deleted and that row is connected to any


ASSIGNMENT, the EMPLOYEE row deletion will be disallowed.

o If a PROJECT row is deleted, then all the ASSIGNMENT rows that are
connected to the deleted PROJECT row will also be deleted.

The business sense of these rules is as follows:

o If an EMPLOYEE row is deleted (e.g., if the employee is transferred), then


someone must take over that employee’s assignments. Thus, the application
needs someone to reassign assignments before deleting the employee row.

o If a PROJECT row is deleted, then the project has been canceled, and it is
unnecessary to maintain records of assignments to that project.

The column characteristics for these tables are shown in Figures 1-28 (DEPARTMENT), 1-30
(EMPLOYEE), 2-42 (PROJECT), and 2-44 (ASSIGNMENT). The data for these tables are
shown in Figures 1-29 (DEPARTMENT), 1-31 (EMPLOYEE), 2-43 (PROJECT), and 2-45
(ASSIGNMENT).

Page 7-29
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

Figure 1-28 - Column Characteristics for the WP Database DEPARTMENT Table

Figure 1-30 - Column Characteristics for the WP Database EMPLOYEE Table

Figure 2-42 - Column Characteristics for the WP Database PROJECT Table

Page 7-30
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

Figure 2-44 - Column Characteristics for the WP Database ASSIGNMENT Table

Figure 1-29 – WP Database DEPARTMENT Data

Page 7-31
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

Figure 1-31 – WP Database EMPLOYEE Data

Page 7-32
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

Figure 2-43 – WP Database PROJECT Data

Figure 2-45 – WP Database PROJECT Data

Page 7-33
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

If at all possible, you should run your SQL solutions to the following questions against an actual
database. Because we have already created this database in Microsoft Access, you should use
an SQL-oriented DBMS such as Microsoft SQL Server 2017, Oracle Database, or MySQL 5.7 in
these exercises. Create a database named WP, and create a folder in your My Documents
folder to save and store the *.sql scripts containing the SQL statements that you are asked to
create in the remaining questions pertaining to the WP database in this section and the
following Project Questions section.

● For the SQL Server Management Studio, create a folder named WP-Database in the
Projects folder structure in your My Documents folder.
● In the Oracle SQL Developer folder structure in your My Documents folder, create a
folder named WP-Database.
● For the SQL Workbench, create a folder named WP-Database in the Schemas folder
in your My Documents folder.

If that is not possible, create a new Microsoft Access database named WP-CH07.accdb, and
use the SQL capabilities in these exercises. In all the exercises, use the data types appropriate
for the DBMS you are using.

Write and save an SQL script named WP-Create-Tables.sql that includes the answers to
Review Questions 7.41 through 7.50. Use SQL script commenting (/* and */ symbols) to write
your answers to Review Questions 7.45 and 7.46 as comments so that they cannot be run! Test
and run your SQL statements for Review Questions 7.41, 7.42, 7.43, and 7.44 only. After the
tables are created, run your answers to Review Questions 7.47 through 7.50. Note that after
these four statements have been run the table structure is exactly the same as it was before you
ran them.

7.41 Write a CREATE TABLE statement for the DEPARTMENT table.

For SQL Server, Microsoft Access, Oracle Database and MySQL:

CREATE TABLE DEPARTMENT(


DepartmentName Char(35) NOT NULL,
BudgetCode Char(30) NOT NULL,
OfficeNumber Char(15) NOT NULL,
Phone Char(12) NOT NULL,
CONSTRAINT DEPARTMENT_PK PRIMARY KEY(DepartmentName)
);

Page 7-34
Copyright © 2019Pearson Education, Inc.
Chapter Seven – SQL For Database Construction and Application Processing

7.42 Write a CREATE TABLE statement for the EMPLOYEE table. Email is required and is
an alternate key, and the default value of Department is Human Resources. Cascade
updates but not deletions from DEPARTMENT to EMPLOYEE.

For SQL Server:


CREATE TABLE EMPLOYEE(
EmployeeNumber Int NOT NULL IDENTITY (1, 1),
FirstName Char(25) NOT NULL,
LastName Char(25) NOT NULL,
Department Char(35) NOT NULL DEFAULT 'Human Resources',
Position Char(35) NULL,
Supervisor Int NULL,
OfficePhone Char(12) NULL,
EmailAddress VarChar(100) NOT NULL UNIQUE,
CONSTRAINT EMPLOYEE_PK PRIMARY KEY(EmployeeNumber),
CONSTRAINT EMP_DEPART_FK FOREIGN KEY(Department)
REFERENCES DEPARTMENT(DepartmentName)
ON UPDATE CASCADE,
CONSTRAINT EMP_SUPER_FK FOREIGN KEY (Supervisor)
REFERENCES EMPLOYEE (EmployeeNumber)
);

For Microsoft Access: Microsoft Access SQL statements do NOT support: (1) Parameters on
the Numeric data type, (2) the DEFAULT clause, (3) the ON UPDATE clause, and (4) the ON
DELETE clause. So, this question cannot be fully answered in Microsoft Access compatible
SQL. The required functionality can be set manually in Microsoft Access after the basic table is
created with an SQL statement as shown below:
CREATE TABLE EMPLOYEE(
EmployeeNumber Int NOT NULL,
FirstName Char(25) NOT NULL,
LastName Char(25) NOT NULL,
Department Char(35) NOT NULL,
Position Char(35) NULL,
Supervisor Int NULL,
OfficePhone Char(12) NULL,
EmailAddress VarChar(100) NOT NULL,
CONSTRAINT EMPLOYEE_PK PRIMARY KEY(EmployeeNumber),
CONSTRAINT EMP_DEPART_FK FOREIGN KEY(Department)
REFERENCES DEPARTMENT(DepartmentName),
CONSTRAINT EMP_SUPER_FK FOREIGN KEY (Supervisor)
REFERENCES EMPLOYEE (EmployeeNumber)
);

Page 7-35
Copyright © 2019Pearson Education, Inc.
Discovering Diverse Content Through
Random Scribd Documents
… Un pamphlétaire qui a le malheur d'employer son esprit à
dénigrer tous les lieux qui lui ont donné l'hospitalité, et qui ne mérite
pas d'être nommé dans cette enceinte, avait fait sur Rome un livre
calomnieux. A la rigueur, on comprend que, comme certaine
publication récente, celle-ci ait pu tromper pendant quelques heures
la vigilance du ministère de l'intérieur. Mais non; ce sont des jours,
ce sont des semaines qu'on lui donne; on la saisit quand l'édition
tout entière est vendue; et, quant au procès, on n'en a plus entendu
parler.
Stimulé par ce premier succès, notre pamphlétaire, dans trois
feuilletons de l'Opinion nationale, s'en prend à l'innocente ville de
province qui l'abrite pendant la belle saison et qui n'a d'autre tort
que de ne lui avoir pas encore élevé de statue, de ne lui avoir pas
même donné un siége dans son conseil municipal. Indignement
calomnié dans sa vie publique et privée, le maire n'écoute que la
voix de sa conscience et dépose une plainte en diffamation. Peu
importe que, plus tard, M. le ministre de l'intérieur le supplie ou le
somme de la retirer. Le maire n'est pas seul offensé; l'honneur de
vingt familles a été cruellement blessé; et d'ailleurs l'Alsace entière
se sent insultée dans la personne de cet infortuné maire Sauerkraut,
dont le nom seul est une insulte à notre agriculture; dans la
personne de cet infortuné sous-préfet Ignacius, en qui l'on veut sans
doute atteindre un des courageux sénateurs qui défendent le saint-
siége. (Nouvelles rumeurs.) D'ailleurs, le délit est constant; la justice
est saisie; les assignations sont données, l'audience est fixée.
L'affaire en étant là, il n'est pas de force humaine qui puisse
l'empêcher d'avoir son cours; il n'est pas de force humaine qui
puisse empêcher un tribunal saisi de se prononcer.
Au moment où l'opinion publique attendait ainsi une légitime
satisfaction, la veille même de l'audience, un bruit se répand avec la
rapidité de la foudre.
Plusieurs membres. Oh! oh!
M. Keller. De Paris est tombé tout à coup un personnage
mystérieux, muni de pouvoirs supérieurs; ce personnage demande
communication du dossier, le met dans son sac, et, à la stupeur du
tribunal, l'emporte pour l'examiner à loisir. (Réclamations sur
plusieurs bancs. Interruptions diverses.)
Quelques membres. Parlez! parlez!
M. Keller. Sans doute, on craignait la passion des juges; on
craignait peut-être l'influence occulte de la société de Saint-Vincent
de Paul.
Le fait est qu'à l'heure qu'il est, le personnage dont je parle, qui
n'est autre, dit-on, qu'un certain procureur général, conserve le
dossier et l'examine encore; et l'Alsace, attristée, blessée dans son
honneur… (Vives réclamations sur plusieurs bancs.)
M. le baron de Reinach. Parlez en votre nom! ne parlez pas au nom
de l'Alsace!
M. Keller. L'Alsace se demande si un pareil mépris de la légalité
est possible en France, et se dit que, certainement, l'empereur ne
sait pas comment on rend la justice en son nom. (Vives et
nombreuses réclamations.)
M. Rigaud. Vous attaquez la magistrature, et jamais personne ne
l'a fait en France! Elle est au-dessus de toutes les attaques, de tous
les soupçons! (Très-bien! très-bien!)
M. Keller. Messieurs, ces faits sont notoires. Ils m'ont été
confirmés de Strasbourg par les lettres les plus détaillées que je
pourrais lire à la Chambre, si je ne craignais de fatiguer son
attention; et, tant que le gouvernement ne les aura pas démentis, je
les avance comme tout à fait certains… (Rumeurs et dénégations sur
plusieurs bancs.)
M. Abatucci. Le maire a retiré sa plainte!
M. Keller. Lorsqu'un tribunal est saisi, peu importe que la plainte
soit retirée!
S. Exc. M. Baroche, ministre, président du conseil d'État. Pas en
matière de diffamation!
M. Keller. Je vous demande pardon, mais je crois que, sauf le cas
d'adultère, toutes les fois qu'un tribunal est saisi, il doit se
prononcer.
M. le Ministre. Vous êtes dans l'erreur. En matière de diffamation,
il faut que le plaignant insiste.
Du reste, nous ne savons pas un mot de tout ce que vous
racontez là (mouvement), et à ce sujet je dois faire une observation.
Quand on veut mettre en cause le gouvernement sur des faits
spéciaux, un sentiment que je ne veux pas dire, mais que la
Chambre comprendra, devrait conduire l'orateur, ainsi que cela se
fait partout, ainsi que cela se fait en Angleterre, ainsi que cela se
faisait autrefois en France, à prévenir le gouvernement, de manière
à le mettre à même de prendre des renseignements et de vérifier les
faits que l'on veut porter devant la Chambre. Le gouvernement est
ainsi en mesure de répondre aux interpellations; il peut même
prévenir ces interpellations par des explications. Il me semble que
mon observation trouve ici sa place. (Très-bien! très-bien!)
M. Keller, continuant son discours. Quelle était la cause de cet
abus de pouvoir?…
M. le Ministre. Et mon observation, il faut y répondre! Pourquoi
M. Keller ne répond-il pas?
M. Keller, continuant. Quelle était la cause de cet abus de
pouvoir, inouï dans nos annales judiciaires? Messieurs, elle est fort
simple.
Et d'abord, il eût été pénible de voir une fois de plus le ruban de
la Légion d'honneur sur les bancs de la police correctionnelle.
Et puis, chose plus grave, vous savez que, dans l'état de notre
législation sur la presse, deux condamnations suffisent pour faire
supprimer de droit le journal le plus dévoué. Il n'en faut pas tant
pour un journal ordinaire. Eh bien, l'Opinion nationale venait
précisément d'être frappée à Montpellier pour avoir diffamé le
président d'une association charitable. Une seconde condamnation,
c'était son arrêt de mort. La France allait être privée des éminents
services que lui rend ce journal. Il fallait le sauver: on l'a sauvé.
Cependant, le cas pourrait bien se reproduire. Il n'est pas dit que
les gens que les journaux insultent ne finiront pas par se lasser de
leur longanimité; il n'est pas dit que tous les tribunaux se
montreront aussi complaisants que celui que je viens de citer…
(Vives réclamations.)
Voix nombreuses. C'est intolérable! A l'ordre! à l'ordre!
S. Exc. M. Baroche, ministre, président du conseil d'État. Vous ne
pouvez pas dire qu'un tribunal s'est montré complaisant.
Permettez-moi un mot, monsieur le président…
M. Roques-Salvaza. C'est une affaire de discipline qui regarde le
président. Nous demandons le rappel à l'ordre!
M. le Président. Monsieur Keller, vous avez, à deux reprises
différentes, insulté la magistrature; vous avez porté une accusation
grave contre la magistrature et contre le gouvernement. Je vous ai
laissé continuer, parce que je croyais, en mon âme et conscience,
que le gouvernement, averti par vous, avait pu se mettre en mesure
de réfuter vos accusations. J'ai toujours pensé que, quelle que fût la
gravité d'une incrimination dirigée contre le gouvernement, le mieux
était de ne pas interrompre l'orateur, de le laisser produire en toute
liberté et jusqu'au bout ses imputations, afin de fournir au
gouvernement l'occasion de se justifier immédiatement vis-à-vis de
la Chambre et du pays.
Mais il vient d'être déclaré par M. le président du conseil d'État
qu'aucun avis ne lui avait été préalablement donné; et il s'en est
plaint à bon droit. J'insiste à cet égard sur l'observation que vient de
faire M. le président du conseil d'État. Jamais, dans aucune
assemblée parlementaire (c'est une question de loyauté, de parti à
parti, d'opposition à gouvernement), jamais on ne s'est permis de
porter une accusation sur des faits aussi ténébreux, sans prévenir le
gouvernement, afin qu'il puisse procéder à une enquête et éclaircir
les faits, de manière à se justifier devant le pays. Agir autrement, je
suis obligé de vous le dire, n'est pas loyal. (Très-bien! très-bien!)
Maintenant, je vous rappelle à l'ordre: je ne permets pas que,
dans cette enceinte, on insulte l'institution la plus respectable et la
plus désintéressée, la magistrature. (Très-bien! Bravo!) Et, si vous
continuez, je vous interdirai la parole. (Oui! oui! Très-bien!)
M. Keller. Messieurs, on vient de pourvoir à cette situation
exceptionnelle de certains journaux par une loi qui, sous prétexte
d'agrandir la liberté de la presse, achèvera, je le crains bien, de
déposséder la légalité en faveur de l'arbitraire. M. le ministre de
l'intérieur pourra toujours, du jour au lendemain, et par mesure
administrative, faire supprimer un journal; les tribunaux ne le
pourront plus. Voilà, je le crois, le véritable sens du projet que nous
n'avons fait qu'entrevoir en comité secret. Le Siècle et l'Opinion
nationale pourront continuer leur triste polémique: ils n'en seront
pas moins immortels, et, à l'heure où je vous parle, vous venez de
voir jusqu'où se permet d'aller maintenant cette audace impunie, et,
pour moi, je suis encore ému d'indignation et de dégoût par la
lecture de cet article sans nom, dans lequel on a insulté, non-
seulement les malheurs du saint-siége, mais l'honneur de notre
armée de Crimée, mais la dignité même du trône, article dans lequel
on est venu nous vanter les délices et les raffinements du
despotisme païen sous le nom de je ne sais quel fils légitime de la
révolution française. Mais que veut-on dire par là? Tenez, malgré
moi, cette insolence m'en a rappelé une autre.
«Vous seul, disait un autre pamphlétaire s'adressant à un autre
prince, vous seul, enveloppé d'une auréole d'azur et d'or, vous
sommeillez au milieu des orages; votre quiétude m'ennuie comme la
vertu d'Aristide fatiguait le paysan d'Athènes; mais non, la France
sait que, relégué à la pairie, vous subissez un ostracisme involontaire
qui vous interdit toute participation aux affaires publiques.»
C'était en 1827; ce prince qu'on outrageait par un encens non
moins coupable, mais pourtant moins grossier, c'était le duc
d'Orléans. Loin de moi, messieurs, loin de moi la pensée de faire
entre ces deux personnages le moindre rapprochement déplacé;
mais il est évident que l'intention des deux auteurs était la même. Et
quand je vois M. le ministre de l'intérieur si facile à alarmer par les
souvenirs de l'ancien Palais-Royal, je me demande s'il ne serait pas
plus prudent et plus sage d'empêcher une si compromettante
apothéose du Palais-Royal actuel. (Mouvements divers.)
En réponse à cette agression, je publiai immédiatement chez
Dentu la brochure suivante:

LETTRE A M. KELLER

Monsieur,

L'Alsace n'a pas besoin de «me dresser une statue,» puisque le


plus éloquent de ses députés a bien voulu m'élever tout vivant sur
un piédestal de gros mots, dans l'enceinte même du Corps législatif.
J'étais absent, monsieur, lorsque vous m'avez honoré de cette
marque de haine. Je me promenais innocemment dans Paris,
ignorant du danger, comme les orateurs du gouvernement, que vous
n'aviez pas avertis. C'est le lendemain du discours, en lisant le
Moniteur, que j'ai pu admirer les grands coups d'épée que vous
m'allongiez par derrière, conformément aux lois de l'escrime
ecclésiastique. Peste! vous attaquez vaillamment ceux qui ne sont
pas là pour se défendre! Mais je ne suis pas mort, grâce aux dieux,
et je viens à la riposte sur le terrain que vous-même avez choisi.
Maintenant que nous sommes face à face, avec trente-huit
millions de Français pour témoins, vous plaît-il de régler à l'avance
les conditions du combat? Ce soin ne serait pas inutile, car il est à
présumer que nous voilà aux prises pour longtemps. Nous sommes
encore jeunes l'un et l'autre. J'adore la Révolution aussi sincèrement
que vous aimez la Réaction; j'ai foi dans l'avenir comme vous dans le
passé; nous sommes également convaincus que toute transaction
est impossible entre nos deux partis, et que l'un doit tuer l'autre.
Tuons-nous donc, s'il vous plaît, dans un style parlementaire, comme
il sied aux honnêtes gens. Laissons aux goujats des deux armées le
vocabulaire des halles et de l'Univers. Promettez-moi de ne plus
m'appeler ni pamphlétaire, ni calomniateur indigne, et de ne plus
dire, à partir de ce moment, que mes écrits vous dégoûtent.
Consentez à me nommer par mon nom, lorsque vous me ferez
l'honneur de parler de moi, et perdez l'habitude de voiler ma
personnalité sous des périphrases injurieuses. Le saint-père, qui
vous vaut bien, m'a imprimé en toutes lettres dans le Journal de
Rome; cela vous prouve qu'on peut dire M. About sans tomber en
enfer. En échange de la courtoisie que je réclame, je vous promets,
monsieur, de discuter avec vous en homme bien élevé. Je ne vous
appellerai ni sectaire, ni fanatique, ni jésuite, ni même ultramontain;
car tous ces mots, tombés dans le mépris public, sont devenus de
véritables injures. Vous serez toujours M. Keller, et même (puisque le
gouvernement impérial a obtenu pour vous un mandat de député)
l'honorable M. Keller.
Ceci posé, monsieur, j'entre de plain-pied dans la défense, et
j'essaye d'écarter les unes après les autres les nombreuses
accusations dont vous m'avez chargé.
Vous ne trouverez pas mauvais que je discute un peu cette
savante périphrase par laquelle il vous a plu de remplacer les deux
syllabes de mon nom: «Un pamphlétaire qui a le malheur d'employer
son esprit à dénigrer tous les lieux qui lui ont donné l'hospitalité!»
Pamphlétaire? nous avons promis de ne plus nous injurier; je passe
donc condamnation. Ce n'est pas que je méprise un genre de
littérature honoré par le courage d'Agrippa d'Aubigné, de Voltaire, de
Paul-Louis Courier, de Cormenin et de quelques évêques. Je
repousse le mot parce que c'est un gros mot, mais je ne méprise
aucunement la chose. Attaquer les abus, plaider pour la justice et la
vérité, terrasser les monstres de la tyrannie et de la superstition, ce
n'est pas démériter de l'estime des hommes. Hercule, dont
l'antiquité a fait un dieu, était un pamphlétaire qui ne savait pas
écrire. Lorsqu'il écrasa d'un seul coup les sept têtes de l'hydre, il fit
en gros ce que j'essaye de faire en détail. Les apôtres chrétiens, que
vous approuvez sans doute, quoique vous ne les imitiez pas, étaient
des pamphlétaires ambulants qui poursuivaient en tout lieu les vices
du paganisme, comme je pourchasse les abus du catholicisme vieilli.
C'est pourquoi je vous pardonne de m'avoir lancé le nom de
pamphlétaire dans le feu d'une improvisation étudiée. Mais je
regrette sincèrement, pour votre réputation de clairvoyance et
d'équité, que vous ayez pu voir en moi un pamphlétaire ingrat.
J'ai reçu la plus gracieuse hospitalité dans quelques grandes villes
de France, à Marseille, à Bordeaux, à Dijon, à Grenoble, à Rouen, à
Dunkerque, à Strasbourg. Lorsque vous trouverez le temps de
parcourir les premiers chapitres de Rome contemporaine, vous
verrez comment j'ai dénigré Marseille et les Marseillais. Si jamais
vous ouvrez un petit livre intitulé Maître Pierre, vous reconnaîtrez
que je n'ai pas payé d'ingratitude le bon accueil et la franche
cordialité des Bordelais. Je ne désespère pas de m'acquitter un jour,
dans la mesure de mes moyens, envers les autres villes où j'ai
trouvé des esprits sympathiques et des cœurs ouverts; en attendant,
je m'abstiens religieusement de critiquer les hommes qui m'ont
accueilli.
J'ai été l'hôte de la France en Grèce et en Italie. A l'école de
Rome, aussi bien qu'à l'école d'Athènes, je me suis efforcé
d'acquitter ma petite dette envers notre patrie en lui apprenant un
peu de vérité. Je ne devais rien aux Grecs ni aux Romains, qui ne
me connaissaient pas, sinon pour m'avoir coudoyé dans la rue.
Cependant, comme j'avais touché du doigt leur oppression et leur
misère, j'ai pris sur moi de les défendre contre deux détestables
petits gouvernements. Informez-vous en Italie: on vous dira si je
passe pour un ennemi du peuple italien. Un philhellène éminent, M.
Saint-Marc Girardin, a publié dans les Débats un panégyrique du
peuple grec, découpé avec des ciseaux dans la Grèce
contemporaine. Il faut être plus Bavarois que Sa Majesté le roi Othon
pour voir en moi un ennemi de la nation hellénique. Je la connais:
donc, je l'aime; j'ai étudié son gouvernement: donc, je la plains. Le
jour approche où elle s'affranchira de ses entraves, comme la nation
italienne. Je n'attendrai pas jusque-là pour me placer aux premiers
rangs de la presse, à la tête de ses défenseurs. Si c'est faire un acte
d'ingratitude que de défendre les opprimés qu'on a rencontrés en
chemin, je fais vœu d'encourir le même reproche partout où l'on me
donnera l'hospitalité.
Je ne suis pas l'hôte de la ville de Saverne, quoiqu'elle m'abrite
fort agréablement, comme vous l'avez dit, pendant la belle saison.
Acheter une propriété rurale auprès d'une jolie petite ville de
province, s'y établir en famille, la cultiver et l'embellir avec soin,
occuper toute l'année un certain nombre d'ouvriers, donner
l'aumône aux pauvres, appuyer de son crédit les gens dans
l'embarras, faire de sa bibliothèque un cabinet de lecture à l'usage
des habitants, attirer chez soi un certain nombre de voyageurs et
d'artistes, répandre au loin la réputation d'un pays admirable et trop
peu connu, enfin, monsieur, faire retentir par votre bouche, au sein
du Corps législatif, le nom d'une modeste sous-préfecture, est-ce
bien là ce qu'on appelle recevoir l'hospitalité? Lorsque les plus
honorables habitants de Saverne me font l'amitié de s'asseoir à ma
table, je suis leur hôte, il est vrai, mais dans le sens actif du mot que
vous avez dit.
J'estime infiniment la population de l'Alsace en général et de
Saverne en particulier. Depuis bientôt trois ans que j'ai dressé ma
tente dans ce petit coin des Vosges, j'ai eu le temps d'apprécier la
bonhomie des mœurs, la solidité des dévouements, la naïveté des
courages. Rien ne manque à ces gens-là, qu'une excellente
administration. Il ne m'appartient pas de la leur donner; mais, toutes
les fois qu'on les brutalise un peu, il m'appartient de les défendre. Je
le fais, ils le savent, et, s'il est vrai que quelques-uns vous ont fourni
contre moi des armes rouillées et hors de service, ce n'est pas moi
qui suis un ingrat, mais eux.
L'ingratitude, monsieur, est un vice honteux, et nous nous
entendrons toujours, vous et moi, sur ce point de morale. Je ne suis
pas un chrétien parfait, et il m'est difficile de pardonner une injure;
mais, en revanche, il m'est impossible d'oublier un bon office. Si
vous voulez me convaincre d'ingratitude, ne cherchez pas dans mon
passé, il est pur. Attendez qu'un gouvernement crédule me
recommande ou m'impose au choix des électeurs; que vingt-cinq
mille honnêtes Alsaciens, trompés par mon attitude et mes
déclarations, m'envoient au Corps législatif pour y défendre la
politique impériale; que j'accomplisse mon mandat en sens inverse
et que je tourne contre le gouvernement les armes qu'il m'aura
confiées lui-même. Si jamais vous me prenez à jouer ce jeu-là, je
n'aurai plus qu'à baisser la tête et à subir comme un honteux toutes
les récriminations que votre conscience pourra vous dicter [4] .
[4] Voyez un peu avec quelle bonne foi un écrivain
légitimiste a cité cette phrase! «Attendez qu'un
gouvernement crédule me recommande ou m'impose au
choix des électeurs; que vingt-cinq mille honnêtes
Alsaciens, trompés par mon attitude et mes déclarations,
m'envoient au Corps législatif pour y défendre la politique
impériale. A Dieu ne plaise, dit-il, que j'accomplisse mon
mandat en sens inverse et que je tourne contre le
gouvernement les armes qu'il m'aura confiées lui-même.
Quelle magnifique réclame!»
(M. E. About et sa Lettre à M. Keller, par Joseph de
Rainneville. Paris, Dentu, 1861.)

En attendant ce triste jour, qui ne luira jamais sur mon front,


vous vous rabattez sur une accusation que je croyais désormais
impossible: vous affirmez, après M. Veuillot, M. Dupanloup et
quelques publicistes de la même école, que j'ai écrit sur Rome un
livre calomnieux. Hélas! monsieur, ne sortirons-nous donc jamais de
cette polémique expéditive? Croyez-vous encore, à votre âge, qu'un
dossier plein de faits, un réquisitoire appuyé de mille preuves se
puisse réfuter par un gros mot? Depuis deux ans et plus que j'ai
publié la Question romaine, vous avez eu, vous et les vôtres, autant
de loisir qu'il en fallait pour contredire mes assertions. Comment ne
s'est-il pas trouvé dans votre camp un champion assez dévoué pour
défendre pied à pied le terrain que je disputais au saint-père? C'est
une tâche difficile, mais bien digne de vous, monsieur, qui êtes plein
de zèle et de patience. Essayez-la; vous vous ferez plus d'honneur
qu'en proclamant les droits problématiques d'un maire et d'un sous-
préfet. Prouvez-nous qu'on n'a point séquestré le petit Mortara;
qu'on n'a pas ravi à M. Padova sa femme et ses enfants; qu'il y a des
lois à Rome et qu'il ne s'y commet point de crimes; que le clergé n'y
a jamais opprimé le peuple; que les moines y sont laborieux et
chastes; que les libertés, les sciences et les vertus découlent du
trône pontifical comme de leur source naturelle. Prouvez que j'ai
menti en disant que trois millions d'Italiens supportaient
impatiemment la domination des prêtres. Mais peut-être est-il un
peu tard, maintenant que tous les sujets du pape ont manifesté par
leurs actes les sentiments que j'osais leur prêter.
Non, monsieur, je n'ai pas calomnié le saint-père en disant que
ses sujets aspiraient à la liberté. J'en atteste l'histoire des deux
dernières années et le cri de soulagement qui s'est élevé à Bologne,
à Ancône, à Pérouse et dans toutes les villes affranchies! J'atteste
l'éloquence des faits, plus irrésistible encore que la vôtre! J'atteste
enfin cette sourde et infatigable doléance qui s'élève en murmurant
au-dessus de la grande capitale opprimée, et que tous les vents de
l'horizon emportent chaque jour vers les princes équitables et les
peuples généreux!
J'ai dit la vérité, la triste vérité, comme je l'avais vue et touchée
du doigt dans les plaies saignantes d'un peuple martyr. Mon livre
était irréfutable; il l'est encore, il le sera toujours, tant qu'il restera
dans un coin de l'univers un laïque en puissance de prêtre. Croyez-
vous donc que votre parti m'aurait voué cette haine mortelle si
j'avais dit autre chose que la vérité? Non, monsieur, si vos amis
avaient pu me prendre en faute, vous ne seriez pas réduit à la triste
nécessité de me dire des injures dans une discussion du budget au
Corps législatif. On m'aurait écrasé depuis longtemps sous le poids
de mes erreurs les plus légères, et le parti clérical, triomphant de ma
sottise, me saurait un gré infini de lui avoir fait si beau jeu. Mais j'ai
frappé juste, et voilà mon crime. J'ai arraché la clef de voûte de la
vieille prison, et c'est pourquoi j'ai maille à partir jusque dans
Saverne avec tous les amis du geôlier.
Nous ne sommes pas encore assez liés, monsieur, pour que je
vous raconte en détail les trois ans que j'ai passés en Alsace. Il me
suffira de rectifier les erreurs involontaires où vous êtes tombé, faute
de renseignements vrais. Que n'en demandiez-vous aux personnes
de votre famille qui sont établies dans le pays? La bonne madame
Keller, votre spirituelle et respectable tante, M. Henri de Juilly, votre
cousin, ont assisté à toute l'affaire, et j'ai trouvé en eux, jusqu'à la
fin, les plus fidèles et les meilleurs amis. Mieux que personne, ils
pouvaient vous mettre en garde contre les dénonciations inexactes
de mes ennemis, qui sont les leurs.
Vous vous êtes laissé persuader (tant est grande la candeur de
votre âme!) qu'après avoir égorgé le souverain temporel de Rome,
j'avais jugé très-utile et très-urgent de compléter l'hétacombe en
immolant un maire et un sous-préfet. Sûr de l'impunité, confiant
dans l'appui d'un gouvernement qui pousse à la destruction des
maires, des sous-préfets et des papes, j'avais complété l'œuvre de la
Question romaine en publiant trois feuilletons dans ce journal maudit
qui s'appelle l'Opinion nationale.
Il est bon de vous apprendre, monsieur, que la Question romaine
a paru la veille du départ de nos soldats pour l'Italie. C'était, si j'ai
bonne mémoire, au printemps de 1859. Les trois feuilletons que
vous incriminez, et qui sont (permettez-moi de vous le dire) au
nombre de deux, portent la date du 23 février et du 20 mars 1861.
Vous voyez que, si le succès de mon premier crime m'a stimulé à en
commettre un second, il ne m'a pas stimulé bien vite.
On vous a d'ailleurs mal renseigné sur l'heureuse et facile
publication de la Question romaine. Ce livre avait été imprimé en
Belgique; il ne s'est pas distribué en France pendant «des semaines»
ni même pendant une semaine. On ne l'a pas saisi «quand l'édition
tout entière était vendue.» L'édition était de douze mille
exemplaires; nous n'en avons pu faire entrer que quatre mille. Vous
vous trompez donc des deux tiers. Si je n'avais pas été plus précis ni
plus vrai dans les attaques que j'ai dirigées contre le pape, vos amis
et vous-même auriez eu bientôt fait de me réfuter. Vous regrettez
que les tribunaux ne m'aient pas répondu par une bonne
condamnation. On vous avait promis de me faire un procès, le
procès n'a pas eu lieu, et cela vous scandalise. Mais rappelez-vous
que le délit d'impression, si toutefois il y a jamais eu délit, s'était
commis à l'étranger. Apprenez que le délit de publication avait été
commis en France par un éditeur exilé à Bruxelles, et votre haute
sagesse comprendra pourquoi «l'on n'a plus entendu parler du
procès.»
Si ces informations ne vous suffisaient pas et s'il fallait
absolument vous donner le fin mot de cette vieille histoire, je vous
rappellerais que les procès de librairie sont le plus souvent des
questions d'opportunité. A l'exception des ouvrages obscènes, la
plupart des livres ne sont saisis et poursuivis que parce qu'ils ont
paru trop tôt. Il fut un temps où c'était un crime de lèse-religion que
de traduire la Bible en langue vulgaire. Aujourd'hui, l'on admire les
traducteurs de la Bible, on les plaint même un peu, et personne ne
les poursuit plus. Dieu sait au milieu de quels dangers Pascal a fait
imprimer les Provinciales, que l'État met aujourd'hui entre les mains
des écoliers. Rappelez-vous les précautions sans nombre dont
Voltaire entourait la publication de ses écrits: tous les éditeurs de
notre temps sont libres de réimprimer Voltaire. Le même fait se
reproduit à toutes les époques, pour les plus modestes auteurs aussi
bien que pour les grands. Témoin votre humble serviteur et cette
même Question romaine, qui se vend aujourd'hui sans réclamation
chez tous les libraires de France. Elle ne scandalise plus personne,
elle n'étonne plus personne, et pourquoi? Parce que le temps a
marché; parce que les vérités qu'elle annonçait sont devenues
presque banales; parce que les faits qu'elle racontait ne sont plus ni
contestés ni contestables. Et je me plais à remarquer que vous-
même, dans le réquisitoire dont vous m'avez accablé, vous n'avez
pas demandé pourquoi le gouvernement ne saisissait plus la
Question romaine.
Mais revenons à cette jolie ville de Saverne, où vous avez établi,
un peu légèrement, votre base d'opérations. Je suis prêt à vous
raconter, ab ovo, cette mémorable querelle «qui a attristé l'Alsace,
qui l'a blessée dans son honneur, qui s'est terminée par un abus de
pouvoir inouï dans nos annales judiciaires.»
Il y a dix mois environ, lorsqu'on renouvela les conseils
municipaux dans tous les départements de la France, je me
présentai comme candidat aux électeurs de Saverne. Vous dire les
raisons publiques et privées qui m'avaient inspiré cette ambition
modeste, serait peut-être un peu trop long. Je me présentai tout
seul, après avoir sollicité vainement l'appui de l'administration.
Je vous laisse le plaisir de vous expliquer à vous-même pourquoi
M. le maire de Saverne me refusa l'hospitalité de la liste officielle.
Cet honorable fonctionnaire est cousin du sous-préfet, qui est beau-
frère de M. de Heckeren, qui est, suivant votre belle expression, «un
de ces courageux sénateurs qui défendent le saint-siége.» Le zèle
qui vous pousse aujourd'hui à plaider la cause de ces messieurs
nous dit assez quelles sont leurs opinions politiques et religieuses.
Une sympathie des plus touchantes les unit à M. le préfet du Bas-
Rhin. Tout se tient et s'enchaîne dans notre département, et c'est le
cas d'admirer le doigt de la Providence. Que vous ayez reçu vos
informations de Saverne ou de Strasbourg, c'est tout un. Avouez,
monsieur, que l'empereur est heureux de pouvoir compter sur des
fonctionnaires qui s'entendent si bien entre eux et avec vous [5] !
[5] Je suis heureux d'apprendre à mes lecteurs que le
sous-préfet de Saverne vient d'être décoré de la Légion
d'honneur (15 août 1862).

La population ne marche pas dans le même sens, à moins qu'on


ne la pousse; mais on sait la pousser quand il le faut: on sait même
pousser en prison, pour le bon exemple, un pauvre distributeur de
bulletins malsonnants. Cependant les Savernois ne manquent pas de
courage. Je ne me présentais pas devant eux comme vous êtes venu
devant les électeurs du Haut-Rhin. On ne prêchait pas pour moi dans
les églises; on prêchait même contre moi. On ne disait pas au
peuple de la ville: «Voici un homme dévoué au gouvernement; si
vous voulez faire un vrai cadeau à l'empereur, votez pour notre
candidat!» Il se trouva pourtant à Saverne, même dans votre famille,
monsieur, des électeurs assez hardis pour me donner leur voix; et
j'arrivai bon vingt-quatrième sur une liste de vingt-trois.
Je comptais sur un meilleur résultat; et ne riez pas de ma
superstition, j'ai cru longtemps que j'avais été victime d'un miracle.
Vous me comprendrez assurément, vous qui avez la foi. Il était six
heures du soir; on venait de clore le scrutin. M. le maire ouvrit une
grande boîte de sapin, bien et dûment scellée, qui renfermait les
volontés du peuple et l'avenir du conseil municipal. Mon cœur battit
avec violence. On se mit à compter les bulletins, comme on avait
compté les votants. O prodige! Les bulletins étaient en majorité. Oui,
monsieur, il se trouva dix bulletins de plus qu'il n'était venu de
votants. J'ai vu cela de mes yeux, moi qui vous parle. J'ai vu même à
Strasbourg le conseil de préfecture, saisi d'une protestation en règle
contre ce trop-plein du suffrage universel, déclarer que la
multiplication des bulletins, quoique miraculeuse en elle-même,
n'était pas de nature à invalider une élection.
A dater de ce jour, le vainqueur, c'est-à-dire l'autorité locale,
appliqua à tous mes amis, sans excepter vos parents, un axiome de
droit provincial que les Romains résumaient en deux mots: Væ victis!
Les petits sbires de la mairie me favorisèrent de trois ou quatre
procès-verbaux dans la même semaine. Mon cousin germain, Paul
About, aujourd'hui brigadier au troisième régiment d'artillerie, fut
traduit en justice pour avoir tué un pinson sur un arbre avec un de
mes pistolets. Le tribunal de Saverne, ce tribunal que vous accusez
bien injustement de complaisance envers moi, condamna le pauvre
garçon à l'amende et à la confiscation de l'arme, sans oublier les
frais du procès. Votre cousin à vous, M. de Juilly, architecte
inspecteur du château de Saverne et père de trois beaux enfants qui
sont vos neveux à la mode de Bretagne, fut dénoncé à Paris par les
soins de M. le sous-préfet. On l'accusa d'avoir manqué de politesse
envers le premier fonctionnaire de l'arrondissement, et il serait peut-
être destitué à l'heure qu'il est, si un excellent homme, d'infiniment
d'esprit, M. de X…, chef de division au ministère de Z…, n'avait mis
la dénonciation dans sa poche. Allons, monsieur, retournez au Corps
législatif et dénoncez cet abus de pouvoir! Demandez de quel droit
M. de X… s'est permis de sauver un père de famille, et de votre
famille; de quel droit il a coupé la vengeance sous le pied de «cet
infortuné sous-préfet!» Rassurez-vous, cependant, la dénonciation
de l'infortuné n'a pas été tout à fait perdue. Elle a arrêté une
augmentation de traitement qui était promise depuis une année à
votre cousin M. de Juilly.
Je vous ai confessé, monsieur, que j'adorais la justice; c'est une
passion malheureuse dans certains départements. Toutefois, les
décrets du 24 novembre et la loyauté avec laquelle je les vis
exécuter à Paris me rendirent un peu de courage. Je publiai un de
ces trois feuilletons, c'est-à-dire un de ces deux feuilletons: où diable
avez-vous trouvé le troisième? Je publiai, dis-je, au bas de l'Opinion
nationale, un feuilleton léger dans la forme, assez sérieux dans le
fond, comme la plupart des choses que j'écris. Je suppose que vous
l'avez lu, puisque vous en parlez; le troisième est le seul dont vous
ayez parlé sans avoir eu l'ennui de le lire. Mais, si vous avez
parcouru ce petit travail sur les libertés municipales, si vous ne vous
l'êtes pas fait résumer par vos amis de Saverne ou de Strasbourg, je
m'étonne que vous ayez pu y trouver «d'indignes calomnies contre la
vie publique et privée de M. le maire de Saverne.» J'ai commencé
par discuter très-raisonnablement la question électorale; j'ai montré
que les pouvoirs les plus heureux étaient quelquefois trompés en
cette matière par le zèle de leurs préfets; j'ai fait allusion à la
candidature officielle d'un honorable député du Haut-Rhin qui vous
touche de bien près; j'ai prouvé par votre exemple qu'un
gouvernement

… Rencontre sa destinée
Souvent par les chemins qu'il prend pour l'éviter.

Après quoi, comme il me paraissait inutile de garder le ton


sérieux durant plus d'un quart d'heure, je me suis mis à crayonner la
caricature d'une élection municipale. Pour amuser mes lecteurs et
moi-même, j'ai fait une collection de traits épars dans les journaux,
dans les discours de la Chambre, dans les protestations adressées
au conseil d'État, enfin dans mes souvenirs personnels. J'ai réuni le
tout au sein d'une ville imaginaire nommée Schlafenbourg; j'ai
inventé un maire appelé Jean Sauerkraut, en français, Jean
Choucroute; un sous-préfet bigot, du nom d'Ignacius, un candidat
grotesque qui ne me ressemble pas plus par le caractère et la figure
que vous ne ressemblez à Démosthènes par l'improvisation. De quel
droit, s'il vous plaît, me reconnaissez-vous dans le personnage de ce
Gottlieb? Sur quoi vous fondez-vous pour affirmer devant les
représentants de la France que cet Ignacius est le sous-préfet de
Saverne, que ce Jean Choucroute est le maire de la ville? Voulez-
vous donc les tuer par le ridicule, et ne vous suffit-il pas de les avoir
compromis par votre patronage?
Mais, avant de pousser plus loin, permettez que je m'arrête en
admiration devant une de vos phrases. «Cet infortuné maire
Choucroute, avez-vous dit, dont le nom seul est une insulte à notre
agriculture!» Ai-je insulté l'agriculture française, et les planteurs de
choux vont-ils me demander raison? Mais moi-même, monsieur, je
suis planteur de choux. Si jamais vous vous arrêtiez à Saverne et si
vous me faisiez l'honneur de dîner à la Schlittenbach avec M. de
Juilly, votre cousin, et madame Keller, votre tante, on vous servirait
de la choucroute fabriquée chez nous. De la choucroute excellente,
et nullement susceptible, et qui ne se croit pas insultée par une
innocente plaisanterie. Le chou, monsieur, ne peut qu'être honoré
d'un rapprochement qui le met au rang des autorités municipales.
Qu'allons-nous devenir si les légumes eux-mêmes nous attaquent en
diffamation? Lorsque M. Louis Veuillot, votre maître en l'art de bien
dire, a comparé les philosophes à des navets, on a pensé qu'il traitait
légèrement la philosophie; mais nul n'a trouvé qu'il insultât
l'agriculture française dans la personne du navet!
Aucun agriculteur ne réclama contre mon premier article, le seul
dont un passage ait été incriminé par la suite. Aucun maire ne s'en
plaignit dans le premier moment, pas même M. le maire de Saverne.
Vous nous montrez, monsieur, cet honorable fonctionnaire
«n'écoutant que la voix de sa conscience» et courant à la justice
comme au feu. Permettez-moi de vous faire observer qu'il attendit
depuis le 23 février jusqu'au 30 mars pour déposer sa plainte! Cinq
semaines de réflexions! n'est-ce pas étonnant d'un homme
«indignement calomnié?»
Que s'était-il donc passé dans l'intervalle? Avais-je arraché le
masque de Sauerkraut pour montrer au public la figure d'un maire
vivant? Tout au contraire: dans un deuxième feuilleton, le feuilleton
du 20 mars, j'avais raconté que plusieurs petites villes
reconnaissaient leur maire dans la personne de Sauerkraut. Le fait
est, monsieur, que nombre de citoyens m'avaient écrit de divers
départements: «C'est moi qui suis Gottlieb, et notre maire est le vrai
Sauerkraut!» J'ai eu l'honneur de mettre ce dossier sous les yeux de
M. le juge d'instruction du tribunal de Saverne.
Mais pourtant il s'était produit quelque fait nouveau? Peut-être
avais-je «cruellement blessé l'honneur de vingt familles,» comme
vous l'avez dit éloquemment, par cette figure de rhétorique qu'on
appelle hypothèse gratuite? Non, monsieur, je n'avais blessé
l'honneur d'aucune famille dans les deux articles qui ont paru. Si j'ai
été assez malheureux pour commettre le crime dont vous m'accusez,
cela ne peut être que dans le troisième feuilleton. Pour celui-là, je
vous le livre, je vous l'abandonne, il m'est impossible de le défendre
contre vous, attendu qu'il n'a jamais existé. Et dans quel intérêt, je
vous prie, aurais-je blessé cruellement l'honneur de vingt familles?
Est-ce que la politique la plus élémentaire ne me commandait pas de
mettre le peuple de mon côté? D'ailleurs, je connais peu la vie privée
de mes voisins les plus proches. Lorsqu'on travaille autant que je le
fais, on n'a pas le loisir de s'intéresser aux méchants bruits de la
province. Y a-t-il en Alsace quelques ménages scandaleux, quelques
fortunes mal acquises, quelques familles enrichies par l'usure ou par
la contrebande? C'est à vous que je le demanderai, car je n'ai jamais
arrêté mon attention à ces curiosités locales.
Cependant une plainte en diffamation fut déposée contre moi. Le
fait est exact, et je suis aise de trouver enfin dans votre discours une
parole conforme à la vérité. Une plainte fut déposée, et voici
comme:
La Société anonyme des Amis de Rome, cette sainte alliance si
puissante pour le bonheur de l'Alsace et que vous représentez si
brillamment au Corps législatif, s'imagina, après cinq semaines de
réflexion, qu'elle avait trouvé le défaut de ma cuirasse.
Un paragraphe de mon premier feuilleton disait que Jean
Sauerkraut (et non M. le maire de Saverne) ne serait pas fâché de
faire passer un boulevard au travers de son jardin. Personne ne
pouvait se tromper sur cette allusion transparente à l'un des vices
les plus généraux de notre époque. D'ailleurs, j'avais eu soin
d'ajouter moi-même, pour l'édification des esprits paresseux: «Jean
Sauerkraut n'est pas le seul qui raisonne ainsi, dans ce siècle
d'expropriations, de démolitions et de boulevards.»
C'est par là que je pensai être pris; ou du moins c'est par là,
monsieur, que vos amis pensèrent me prendre. Ils se rappelèrent
que, longtemps avant mon arrivée dans la commune, le conseil
municipal avait agité certain projet de rue qui perçait le jardin et
démolissait la maison de M. le maire. Inutile de vous dire que le
maire de Saverne avait repoussé avec toute l'énergie du
désintéressement une démolition qui menaçait de l'enrichir. On
répéta durant cinq semaines, à cet «infortuné», que j'avais contesté
sa vertu dominante; on le supplia de me poursuivre et d'attaquer
aussi l'Opinion nationale; on lui promit qu'il serait soutenu à
Saverne, à Strasbourg, à Colmar, à Paris même, par cette faction
puissante dont vous êtes, monsieur, le glorieux orateur. On finit par
lui inspirer une demi-confiance, et, s'il n'osa pas se porter partie
civile, il s'enhardit au moins jusqu'à déposer la plainte que vous
savez.
Je ne crois point vous étonner, monsieur, en vous disant que je
courais certains risques. Non que la magistrature française soit
capable de ces honteuses complaisances qu'il vous a plu de lui
imputer; mais, s'il est impossible de corrompre ou d'intimider nos
juges, ils sont hommes après tout. Lorsqu'un maire et un sous-préfet
qu'ils estiment, qu'ils aiment, qu'ils fréquentent tous les jours de
l'année dans l'intimité la plus étroite, viennent se plaindre d'un
journaliste obscur et qu'ils ne connaissent que de vue, comment ne
seraient-ils pas prédisposés à juger sévèrement les choses? Je dois
pourtant cette justice au tribunal de Saverne qu'il ne se laissa pas
entraîner légèrement par les préventions si douces et si excusables
de l'amitié. Il ouvrit une enquête, il manda une fourmilière de
témoins, ce qui ne s'était pour ainsi dire jamais vu dans une affaire
de presse. Il ne se décida à lancer une assignation qu'après avoir
entendu tous les amis du maire, tous les amis du sous-préfet, toutes
les personnes de votre honorable parti, monsieur, répéter
unanimement et comme un mot d'ordre cette formule sacramentelle:
«Nous avons reconnu M. le maire de Saverne dans le portrait de
Jean Sauerkraut.»
Vous l'avouerai-je cependant? ma confiance était telle dans mon
bon droit et dans l'impartialité des magistrats, que j'attendais, sans
trop de soucis, l'heure de la justice. Au lieu d'invoquer l'appui de
quelque prince du barreau comme M. Jules Favre ou M. Ernest
Desmarets, j'avais confié ma cause à un tout jeune avocat de mes
amis, qui a plus de cœur et de talent que de réputation et
d'expérience. Je préparais la défense avec lui, lorsque le coup de
foudre dont vous avez parlé nous étonna nous-mêmes et nous
donna cette secousse que les physiciens désignent par le nom de
choc en retour. Le maire de Saverne avait retiré sa plainte! Le
tribunal n'avait plus aucune raison de nous poursuivre, et le procès
n'avait pas lieu.
Par quelles raisons un fonctionnaire municipal, «indignement
calomnié dans sa vie publique et privée», avait-il renoncé à sa
vindicte personnelle? Voilà, monsieur, ce que je ne me charge point
de vous expliquer. Celui qui lit dans les consciences connaît seul les
motifs qui ont décidé le maire de Saverne. Je ne sais, quant à moi,
que deux explications: celle que les amis de M. le maire ont
répandue dans toute l'Alsace, et celle que vous avez donnée vous-
même au Corps législatif.
La première des deux affecte une couleur légendaire qui ne
satisfait pas complétement la raison. Mais vous savez que l'Alsace
est encore éclairée par la lueur mystérieuse des légendes. Le garde
champêtre se penche à l'oreille du paysan et lui dit: «M. le maire
était allé à Paris pour assister à un mariage. Il dîna aux Tuileries,
comme tous les maires de Saverne lorsqu'ils sont de passage dans la
capitale; son couvert se trouva mis, selon l'ordre hiérarchique, à la
droite du prince Napoléon. «Mon cher ami, lui dit le prince après
avoir trinqué deux ou trois fois, vous avez entamé un procès bien
juste assurément, mais qui va supprimer l'Opinion nationale.—En
effet, répond le maire, c'est pour me venger de M. About, qui m'a
causé des contrariétés.—En cela vous avez bien raison, dit le prince;
mais cette condamnation me fera du tort. Je ne vous ai donc jamais
dit que j'avais placé dix millions dans ce diable de journal?—Dix
millions?—Pas un liard de moins. Vous serez dans votre droit, je
l'avoue; mais enfin votre vengeance va me coûter cher.—J'aime
mieux y renoncer, dit le maire. Entre gens comme nous!…—Vous
êtes bien bon, répond le prince, et à charge de revanche!—Bien
entendu.»
Nous ne discuterons pas cette tradition orale, quoiqu'elle ait fait,
depuis le 24 mai, un assez joli chemin en Alsace. Rabattons-nous
plutôt sur la vôtre, monsieur, et voyons si vous n'avez pas péché
contre la vraisemblance, le jour où M. le comte de Morny ne vous
reprocha qu'un léger manque de loyauté. J'ai le droit de supposer
que toutes vos paroles étaient pesées à l'avance, puisque la roideur
inflexible de votre improvisation ne vous permit pas même de relever
le démenti d'un ministre. Cela étant, comment n'avez-vous pas craint
de faire concurrence au génie rêveur de nos gardes champêtres?
Comment osez-vous nous montrer le ministre de l'intérieur suppliant
ou sommant un maire de retirer une plainte? Depuis quand les
ministres de l'empereur ont-ils contracté l'habitude de supplier
messeigneurs les maires? Ils ne supplient pas même MM. les
évêques: ils les invitent à modérer leurs plaintes lorsqu'elles font
trop de tapage dans le pays. Vous qui êtes un homme d'imagination,
monsieur (car vous imaginez beaucoup de choses), vous
représentez-vous bien M. le comte de Persigny dans une attitude
suppliante, embrassant les genoux cagneux d'un gros maire
provincial?
Qu'on le somme de retirer sa plainte, c'est une hypothèse un peu
moins invraisemblable, et pourtant aucun homme pratique ne voudra
l'admettre avec vous. A quoi bon recourir aux sommations, lorsque
le plus léger avertissement suffit? Je n'écoute pas aux portes des
ministres, et je ne sais pas même si le maire de Saverne a été admis
à paraître devant M. de Persigny. Mais soyez assez bon pour
supposer un instant avec moi qu'un fonctionnaire inhabile en matière
de comptabilité municipale ait touché, dépensé, payé des sommes
assez rondes, sans songer à les faire inscrire par le receveur de la
commune; supposez que cet honnête maladroit ait encouru quelque
réprimande par ignorance ou par oubli des principes élémentaires de
l'administration. On ne veut point le punir, car il n'est coupable que
d'incapacité, mais on ne veut pas non plus le proposer pour modèle
à tous les maires de l'Empire, en lui donnant droit de vie et de mort
sur les journaux où il croit lire une critique de sa gestion. «Désistez-
vous, lui dira-t-on, et, si vous voulez que nous soyons indulgents,
commencez par nous donner l'exemple. Ce n'est qu'aux hommes
sans péché qu'il appartient de jeter la pierre.» Voilà, monsieur, le
langage équitable et chrétien que je vous conseille de tenir à vos
maires, quand vous serez ministre de l'intérieur.
En ce temps-là, monsieur, je serai encore au nombre des
journalistes, car l'habitude d'écrire la vérité est de celles qu'on ne
perd point aisément. Quand vous aurez le pouvoir en main, quand
on aura créé pour votre usage des tribunaux complaisants, libre à
vous de venger sur moi le pape de Rome et le maire de Saverne!
Vous pourrez vous donner le luxe de «montrer sur les bancs de la
police correctionnelle» ce petit bout de ruban rouge que je porte
avec orgueil, parce que je l'ai laborieusement mérité. Mais ne vous
flattez pas: il vous sera, même alors, plus facile de nous condamner
que de nous flétrir, et les bancs de la police correctionnelle
deviendront les siéges de la justice, quand vous serez les
accusateurs et nous les accusés!
J'ai répondu, si je ne me trompe, à toutes vos personnalités,
moins une. Il ne m'appartient pas de défendre le gouvernement
après M. le président du conseil d'État, ni de plaider la cause de la
Révolution, que M. Émile Ollivier a si noblement défendue. Il ne me
reste donc plus qu'à vous expliquer, à vous et à beaucoup d'autres,
«cet article sans nom qui vous a ému d'indignation et de dégoût, cet
article dans lequel j'ai insulté, non-seulement les malheurs du saint-
siége, mais l'honneur de notre armée de Crimée, mais la dignité
même du trône; cet article dans lequel je suis venu vous vanter les
délices et les raffinements du despotisme païen sous le nom de vous
ne savez quel fils légitime de la révolution française.»
«Mais que veut-on dire par là?» daignez-vous ajouter à cette
équitable tirade. Je vais vous expliquer, monsieur, ce que j'ai voulu
dire par là.
Je m'exerce à la critique d'art, et je publie ce qu'on appelle un
salon, pour la troisième fois de ma vie. Pour rompre la monotonie
d'un sujet qui n'est jamais très-varié par lui-même, j'ai cru qu'il serait
intéressant d'y glisser de temps à autre, à propos d'un marbre ou
d'une peinture, quelques portraits à la plume. La mode des portraits
écrits étant passée depuis longtemps, je me figurais que le moment
était peut-être venu de les remettre en usage. C'est un travail assez
ingrat, car il prend un temps infini et les lecteurs ne nous tiennent
pas toujours compte des efforts que nous avons faits. Ainsi, j'ai
débuté par un portrait, que dis-je! par deux portraits de M. Guizot,
et je parie, monsieur, que vous ne les connaissez point. Lisez-les, je
vous en prie; ils vous montreront dans quel esprit j'ai commencé ce
genre d'études, et vous serez moins étonné ensuite lorsque nous
arriverons au prince Napoléon [6] .
[6] Voir à la page 233.

. . . . . . . . . . . . . . . . . . . .
Vous avez lu? Merci. Et maintenant, monsieur, faites-moi
l'honneur de me dire quelle intention j'avais, selon vous, en écrivant
ce portrait? Vous semble-t-il que j'aie voulu mettre en saillie la
supériorité du pouvoir absolu sur l'équilibre constitutionnel, ou que
j'aie cherché à émouvoir la compassion de mes lecteurs au profit
d'une cause perdue? Ai-je préparé le retour de M. Guizot aux affaires
publiques? Ai-je conseillé à l'empereur de le choisir pour ministre?
Peut-être mon intention était-elle, au contraire, de tenir les ministres
en garde contre un ambitieux de soixante et dix ans? Cet article—ce
fragment d'article—est-il un manifeste orléaniste? ou une profession
de foi bonapartiste? ou un réquisitoire indirect contre les intrigues de
l'Académie française? Rien de tout cela, monsieur. Votre bon sens
vous le dit clairement, parce que le sujet n'est pas de ceux qui
excitent les passions violentes et aveuglent la raison des partis. Vous
comprenez, sans que je vous l'explique, que cet assemblage de
détails vrais n'a pas d'autre intention, pas d'autre prétention, pas
d'autre ambition, que de représenter au vif la figure de M. Guizot
avec ses ombres et ses lumières. C'est une œuvre d'art, bonne ou
mauvaise, suivant le goût du lecteur. Placez-la, si le cœur vous en
dit, au rang des amplifications de collége, ou même à la hauteur des
tapisseries en chenille que les demoiselles exécutent dans leur
couvent, ou même au niveau de ces sculptures patientes qu'un
galérien taille à coups de canif dans une noix de coco: je ne
chicanerai point sur la qualité de l'ouvrage, pourvu que vous
reconnaissiez avec moi que ce portrait n'est qu'un portrait.
Tâchez d'être aussi juste pour celui du prince Napoléon. Étudiez-
le, nonobstant «l'indignation et le dégoût» que vous avez étalés
devant la Chambre; mais surtout étudiez-le de bonne foi, comme je
l'ai tracé. Souvenez-vous que c'est une œuvre d'art, et pas autre
chose, et ne vous amusez point à chercher des queues de serpent à
sonnette où l'auteur n'en a pas mis.
Le voici, ce portrait, non pas exactement tel que vous l'avez lu
dans l'Opinion, mais tel que je l'ai écrit et envoyé au journal [7] :
[7] Voir à la page 239.

. . . . . . . . . . . . . . . . . . . .
Je vous ai loyalement averti que ce texte n'était pas tout à fait
celui que vous avez lu dans l'Opinion. Il s'en faut de seize mots, qui
ont été ajoutés au dernier moment sur l'épreuve, et ce mode de
correction in extremis ne vous étonnera point, si vous avez quelque
notion des nécessités du journalisme et de la responsabilité des
rédacteurs en chef.
Ceci posé, dites-moi, je vous prie, si ce portrait est une
apothéose? Pas plus qu'une satire. J'ai esquissé de mon mieux les
qualités et les défauts d'un homme que je connais peu, avec qui j'ai
causé cinq ou six fois, que je n'ai pas vu face à face depuis une
année environ. C'est une peinture incomplète, si j'ai omis quelque
trait d'ombre ou de lumière: ce ne sera jamais, quoiqu'il vous ait plu
de le proclamer devant la Chambre, un tableau dégoûtant.
Reprochez-moi, si vous voulez, la témérité de ma plume; dites qu'il
ne sied pas à un homme qui n'est rien de distribuer aux grands
l'éloge et le blâme; ajoutez qu'on s'expose ainsi aux jugements les
plus faux et les plus injustes: vous avez le droit de me le dire après
me l'avoir prouvé. Où donc avez-vous vu que «j'insultais aux
malheurs du saint-siége?» J'ai rappelé le succès d'un discours
éloquent; cela n'offense que les orateurs manqués. Comment ai-je
«insulté l'honneur de notre armée de Crimée?» Exactement comme
j'ai insulté l'agriculture dans le feuilleton de Sauerkraut. Ai-je
«insulté la majesté du trône,» en disant que les uns s'assoient
dessus et les autres à côté? Est-ce «vanter les délices et les
raffinements du despotisme païen» que d'admirer sur parole une
petite maison romaine où je ne suis jamais entré, quoiqu'on m'ait
fait l'honneur de m'y inviter une fois?
Que le monde est méchant, monsieur! Je ne crains pas de m'en
ouvrir à vous, qui êtes un homme du monde. Il s'est rencontré dans
votre parti des esprits assez mal faits pour prétendre que j'attaquais
la famille d'Orléans dans ce qu'il y a de plus délicat et de plus sacré.
J'égratigne en passant la politique du vieux Palais-Royal, la plus
bâtarde que la Révolution ait portée dans ses flancs, et vos amis
affectent de trouver dans ce mot de bâtard un outrage monstrueux
contre une famille exemplaire!

J'ai dit. Si votre attention m'a suivi jusqu'au bout de cette


plaidoirie, agréez mes remercîments, et même permettez-moi de
reconnaître tant de longanimité par une modeste récompense: un
conseil, un bon conseil, que je tenais en réserve pour vous l'offrir à
la fin.
M. le baron de Reinach vous a interrompu l'autre jour par un mot
profond: «Parlez en votre nom! vous a-t-il dit; ne parlez pas au nom
de l'Alsace!» Les journaux alsaciens soutiennent la même thèse
depuis le commencement de la semaine, et semblent persuadés que
ce n'est pas l'Alsace qui parle par votre voix. Je suis sûr que vous-
même, dans le silence du cabinet, tout en martelant vos
improvisations du lendemain, vous songez avec un fin sourire à ces
pauvres électeurs qui vous ont réchauffé dans leur sein. Et la
conscience, que dit-elle? La logique doit aussi vous rappeler de
temps à autre que le propre d'un représentant est de représenter
ceux qui l'ont élu. Si du moins vous représentiez ceux qui vous ont
fait élire! Mais non.
Croyez-moi donc, monsieur, n'attendez pas les élections
générales pour rajeunir votre mandat. Allez vous retremper dans le
suffrage universel et revenez invulnérable comme Achille! plus
invulnérable que lui! car Achille avait été plongé dans l'eau du Styx
par le préfet du Haut-Rhin, ce qui permit au malin Pâris de le blesser
au talon.

Je croyais en avoir fini avec le procès de Saverne. Mais je reçus


une nouvelle assignation, l'affaire fut de nouveau inscrite, et le
tribunal, plus docile à la voix du sens commun qu'à l'éloquence de
M. Keller, m'acquitta.
VI
UN PEU DE TOUT, UN PEU PARTOUT

Ma chère cousine,

Tu me demandes pourquoi j'ai défendu les victimes de


Castelfidardo? Pourquoi? Mais pour me faire abîmer par la Gazette
de France. Elle n'y a, parbleu! pas manqué, et le châtiment de ma
bonne intention ne s'est pas fait attendre. O Gazette! moniteur de
ceux qui n'ont rien oublié, rien appris! j'essaye d'arracher aux
sévérités d'une loi draconienne les plus beaux et les plus braves
jeunes gens de votre armée; je sollicite des lettres de relief pour les
pauvres héros que vous avez envoyés à la boucherie; je
recommande à la clémence du prince les fils de vos vieux abonnés,
les seuls yeux qui vous lisent sans lunettes, les seuls estomacs qui
digèrent M. Janicot sans pastilles de Vichy! et vous me répondez
d'une voix aigre et sentencieuse: «La Révolution se fait une gloire
d'achever les mutilés.»
Je ne suis pas la Révolution; je ne suis qu'un bon jeune homme
éclos sous ses ailes. Si j'étais la Révolution en personne, je sais bien
ce que je ferais. Je mettrais une cocarde à mon bonnet, j'irais visiter
Rome, Venise, Pesth, Varsovie. J'achèverais la grande œuvre du
XVIIIe siècle; j'achèverais la résurrection des nationalités,
l'émancipation des peuples, la destruction des priviléges, la… Mais
pardon: je ne suis qu'un bon jeune homme, et il importe aujourd'hui
que j'achève mon feuilleton.
Pourquoi la Gazette a-t-elle dit que je «ne me montrais pas fort
dans l'interprétation des lois?» C'est précisément sur ce terrain que
je suis infaillible, parce que je suis ignorant, que je connais mon
ignorance et que je n'avance rien sans l'avoir étudié aux bonnes
sources. Si j'étais seulement licencié en droit, je serais sujet à
l'erreur. J'interpréterais les textes moi-même, au lieu de feuilleter les
jurisconsultes; je ferais des raisonnements comme celui-ci:

«Lamoricière a obtenu l'autorisation de servir le pape; donc,


ses soldats l'ont obtenue moralement.»

Si j'étais avocat (M. Janicot l'est sans doute), je prendrais peut-


être pour un commentaire du Code cette phrase de M. de la
Guéronnière:

«Castelfidardo ne rappellerait qu'une défection, si une


poignée de jeunes Français n'avait pas soutenu avec un noble
courage son choc inégal.» Je dirais: «M. de la Guéronnière est
conseiller d'État. Or, il est évident que les conseillers d'État ont
le droit de faire et d'interpréter les lois; or, les combattants de
Castelfidardo sont désignés ici sous le nom de jeunes Français:
donc, ils n'ont point perdu la qualité de Français, et l'article 21
du Code civil ne saurait les atteindre.»

Enfin, si j'avais fait mon droit, je dirais peut-être avec M. Janicot,


jurisconsulte de la Gazette de France:

«L'article 21 enlève la qualité de Français à ceux qui


s'affilient à une corporation militaire étrangère. Cela s'applique
aux volontaires de Garibaldi.»

Mais je ne suis qu'un ignorant. Le sens commun m'indique que le


mot corporation n'a pas le même sens que bande armée. M. l'avocat
général Nouguier, lorsqu'il requérait contre le général Clouet, ne
s'avisa jamais de dire qu'il était affilié à une corporation en servant
dans les bandes de don Carlos. Je sens, je sais, je comprends que
corporation militaire signifie un ordre militaire reconnu
diplomatiquement dans le droit international. Et, comme les
ignorants n'ont rien de mieux à faire que de consulter les auteurs
spéciaux, je vais chercher le Commentaire de Dalloz, no 572, Droits
civils, et je lis:

«Par corporation militaire, on entend un ordre militaire, tel


que l'ordre de Malte ou l'ordre Teutonique.»

Un savant comme M. Janicot ne craint pas de dire que Napoléon


III, ayant perdu la qualité de Français, «ne pouvait être élu
légalement en 1848.» Mais un bon jeune homme, «qui n'est pas fort
dans l'interprétation des lois,» répondra sans peine à M. Janicot:
Aux termes de l'article 21, le souverain peut rendre la qualité de
Français à ceux qui l'ont perdue. Or, quel était le souverain de la
France en 1848? Le peuple. En nommant Louis-Napoléon président
de la République, il lui a rendu pour le moins la qualité de Français.
Y a-t-il un acte de souveraineté plus incontestablement légitime que
ce décret de la nation, rendu par le suffrage universel?
Après le point de droit, on pourrait discuter le point de fait, et
reprocher à M. Janicot les coups de pied qu'il donne à l'histoire.
L'histoire est une majesté inviolable qui devrait être à l'abri de tous
les coups de pied, sans excepter les coups de pied du lion.
M. Janicot affirme que le gouvernement français n'a pas interdit
les enrôlements dans l'armée du pape. Il sait pourtant que la police
a arrêté et emprisonné à Lyon les embaucheurs de l'armée
pontificale. Les volontaires ne partaient pas en troupes, mais
isolément. Le gouvernement aurait dû leur rappeler l'article 21; il ne
l'a pas fait et je le regrette. Mais personne n'a le droit d'arrêter M. le
marquis de X… ou M. le vicomte de Z… lorsqu'ils demandent un
passe-port pour l'Italie.
Au dire de M. Janicot, «les garibaldiens ont reçu la solde de
Victor-Emmanuel, des congés en règle délivrés par les agents

You might also like