Home > Articles > Data > SQL

Oracle SQL: The Basics

This chapter is from the book

This chapter is from the book

Lab 2.3 An Introduction to SQL*Plus

All Oracle databases include an installation of SQL*Plus by default. SQL*Plus is an Oracle software tool that allows you to execute SQL statements and SQL*Plus commands. It has been around since Oracle's early beginnings, and this command-line interface is available with every Oracle version and operating system. You can clearly see the age of SQL*Plus in its outdated interface, but this tool still serves many useful purposes.

Why Learn About SQL*Plus?

You might wonder what is the rationale of learning to use the command-line SQL*Plus when SQL Developer's graphical user interface is so much more intuitive. All the SQL statements and many SQL*Plus-specific commands work the same way in SQL Developer. Unquestionably, SQL*Plus seems quite arcane compared to SQL Developer, but knowing this old-style tool may come in handy when you're working with Oracle versions that do not support SQL Developer (such as versions prior to 9.2.0.1).

Furthermore, SQL*Plus is very suitable for executing scripts from the operating system prompt. A script is a saved file that contains one or more statements that allows you to rerun a command without retyping. This is useful when you need to rerun the same statements. You will learn about this in Chapter 14.

Starting SQL*Plus

If SQL*Plus program is installed on your Windows machine, you can access it by choosing Programs, Oracle, Application Development, SQL*Plus. This launches the program and displays the Log On dialog. Enter student as the username and learn as the password (both in lowercase) and press the Enter key. The password does not display onscreen.

Figure 2.32 illustrates a successful login with the correct username and password. Effectively, you have established a connection with the Oracle database as the user STUDENT. The client and the server can now communicate with each other.

Figure 2.32

Figure 2.32 The SQL*Plus prompt

The screen shows the version of SQL*Plus and the Oracle database. The SQL> command prompt indicates that SQL*Plus is ready to accept your commands, and you can begin to type. This is the default prompt for SQL*Plus.

You can also invoke SQL*Plus by typing sqlplus at your operating system's command prompt and entering the username and password when prompted to do so. Or you can include the login username and password directly on the operating system prompt, as shown in Figure 2.33.

Figure 2.33

Figure 2.33 Invoking SQL*Plus from the Windows operating system command prompt

You can also invoke SQL*Plus without logging in to the database by using the NOLOG option (see Figure 2.34). To connect to the database, you use the CONNECT command. The DISCONNECT (or DISC) command disconnects the session but does not exit SQL*Plus. Issuing a CONNECT command disconnects you from any previously connected session.

Figure 2.34

Figure 2.34 The NOLOG option and the CONNECT and DISCONNECT commands

Exiting SQL*Plus

To log out of SQL*Plus, either type EXIT or QUIT and press Enter. Alternatively, you can simply use your mouse to close the window. In the Windows operating system, you can also press Ctrl+C or Ctrl+Z, and in UNIX you can use Ctrl+D.

Exiting ends the session, and the STUDENT user is no longer connected to the database. However, there may be other client machines connected to the Oracle database; the server software continues to run, regardless of whether a client is connected to it.

The Remote Database and SQL*Plus

Often, a database resides on a machine other than your local client machine, or you have a choice of accessing different databases. In these cases, you need to supply a connect identifier, which directs SQL*Plus to the appropriate database.

Furthermore, you need to have Oracle's connectivity software, called SQL Net, installed. Typically when you perform a SQL*Plus installation, the SQL Net software is automatically installed for you. This is different from SQL Developer, which works with both a JDBC connection and SQL Net.

To use SQL*Plus to connect to a remote database called ITCHY, you enter the username, followed by the @ symbol followed by the connect identifier. Figure 2.35 shows such a logon example.

Figure 2.35

Figure 2.35 Using a connect identifier in SQL*Plus

The simplified syntax for the logon is as follows. The first syntax line prompts you for the password.

     username@connect_identifier
     username/password@connect_identifier

The connect identifier matches either an entry in a file called TNSNAMES.ORA or follows the Easy Connect syntax.

USING A TNSNAMES ENTRY

Essentially, the TNSNAMES.ORA file is a file that contains a list of databases with their respective technical connection information. It lists the database's IP address (or the machine name) and database instance name. Your database administrator can help you with the configuration and setup of this file if you have a remote database setup.

Following is an excerpt of a TNSNAMES.ORA file. The entries in your file will obviously vary. If you supply the host string ITCHY at login, SQL*Plus looks up the ITCHY entry in the TNSNAMES.ORA file. The HOST entry shows the machine name or IP address. The service name, or SID, entry identifies the name of the Oracle instance; here the instance is called ORCL. When you install Oracle with the default options, you are asked to supply an SID (system identifier). A common default name is ORCL.

USING EASY CONNECT SYNTAX

The Easy Connect feature allows you to make a connection without the ITCHY entry being present in the TNSNAMES.ORA file. For example, you can connect to this database by supplying all the connection information.

     student/learn@ibmt41:1521/ORCL

Or you can use the following.

     student/learn@ibmt41/ORCL

This syntax shows the machine name called ibmt41 followed by the port number (the default port of the Oracle database is typically 1521), followed by the SID ORCL. Figure 2.36 shows how this connection is established in SQL*Plus.

Figure 2.36

Figure 2.36 Connection to SQL*Plus using the Easy Connect syntax

The syntax for the connect identifier using Easy Connect follows.

     Host[:Port]/service_name

The host is the machine or IP address of the database server computer. The port specifies the listening port of the database server; if it is not specified, it defaults to 1521. The service name is the name of the database instance you want to connect to on this database server.

Generally, you create a TNSNAMES entry when you use the same connection frequently; it's far quicker to enter than a long Easy Connect string. Your organization may even have a dedicated Oracle Names Server that manages the connectivity of many servers without the need to maintain a TNSNAMES entry on client machines.

Logon Problems

Although this book cannot possibly list all the errors and solutions to all logon problems, let's look at are two very common Oracle error messages you may encounter.

TNS ERROR

A TNS error is usually related to the connectivity between the server and the client, using the Oracle Net client software. The following message is displayed if the connect identifier could not be resolved. This may be due to an invalid hostname or service name. You need to check the values and retry.

     ORA-12154: TNS: could not resolve the connect identifier specified

INCORRECT USERNAME OR PASSWORD

Another error occurs if you entered the wrong username or password when the Oracle server attempted to authenticate you as a valid user. You need to double-check the spelling of your username, which is student, and your password, which is learn (both in lowercase). Starting with Oracle 11g, the password is case-sensitive by default. (If you cannot log on with this ID and password, check the readme file regarding the installation of the STUDENT schema.)

     ORA-01017: invalid username/password; logon denied

If you are connecting to a remote Oracle database, be sure to enter the Oracle Net connection string supplied to you by your Oracle database administrator and recorded in your TNSNAMES.ORA file.

If you want to test whether the TNSNAMES entry is resolved correctly, you can ping the database with the TNSPING command from the operating system prompt. Figure 2.37 shows the execution and result of the command to determine whether the TNSNAMES entry ITCHY is valid and whether the server's listener program is running. From the output, you can see the file location of the TNSNAMES.ORA that was used to resolve the ITCHY name. Furthermore, you can see the host or machine name value and the service or instance name. The OK message indicates that the database's listener process is ready to accept your connection request.

Figure 2.37

Figure 2.37 TNSPING command result

Executing SQL Commands Using SQL*Plus

SQL*Plus requires the use of a semicolon (;) at the end of each SQL statement to execute the statement. Alternatively, the forward slash (/) can be used on a separate line to accomplish the same thing. In the following statement, we want to show only the DESCRIPTION column of the COURSE table.

     SQL> SELECT description
       2    FROM course;

Another way to do the same thing is to use the following statement.

     SQL> SELECT description
       2    FROM course
       3  /

Figure 2.38 shows the result of the execution of this query in SQL*Plus. You can scroll up and down to see the results.

Figure 2.38

Figure 2.38 Executing a SELECT statement in SQL*Plus

If you want to edit the statement, you can type the EDIT or ED command at the SQL> prompt. This evokes the Notepad editor in Windows (see Figure 2.39) or the default editor currently set in SQL*Plus. When you use the EDIT command at the SQL prompt, SQL*Plus stays open in the background, and your text editor is in the foreground, automatically displaying the SQL statement in the buffer.

Figure 2.39

Figure 2.39 Using the Notepad editor to edit a SQL statement in SQL*Plus

For quick editing of statements, simply make your changes here, save the file, and exit Notepad, which brings you back to SQL*Plus. (In this example, additional columns were added to the query.)

When the changes are saved, you exit Notepad, and the revised SQL statement is placed in the buffer area of SQL*Plus. You can then execute the statement with the forward slash on a new line, as shown in Figure 2.40.

Figure 2.40

Figure 2.40 SQL statement that is about to be executed with the forward slash command

The SQL*Plus Buffer

SQL*Plus stores the last SQL command you typed in what is referred to as the SQL*Plus buffer. You can re-execute a statement by just pressing the / key or typing the SQL*Plus RUN command. The most recent statement stays in the buffer until you enter another SQL command. You can use the SQL*Plus LIST command, or simply the letter L, to list the contents of the buffer. The semicolon or the slash, either of which executes the statement, is not stored in the buffer. The asterisk next to the number 2 indicates that this is the current line in the buffer. (Aside from using Notepad or any other editor, you can also use SQL*Plus's arcane Line Editor commands; these commands are described in Appendix C, "SQL*Plus Command Reference.")

     SQL>LIST
       1 SELECT description, cost, course_no, prerequisite
       2*  FROM course

Formatting SQL*Plus Results

The result set is difficult to read when data "wraps" itself onto the next line. The result may look similar to the screen shown in Figure 2.41. This wrapping often occurs when your SELECT statement contains multiple columns. To help you view the output more easily, SQL*Plus offers a number of formatting commands. Note that these commands are not SQL commands but commands specific only to SQL*Plus.

Figure 2.41

Figure 2.41 SQL*Plus output wrapped

FORMATTING COLUMN ATTRIBUTES

The SQL*Plus COLUMN command allows you to specify format attributes for a column.

The following statement formats the DESCRIPTION column to display a maximum of 30 characters. If the values in the columns do not fit into the space allotted, the data wraps within the column. The column headings are truncated to the specified length.

     COL description FORMAT A30

When you re-execute the SQL statement, the result is more readable, as you see in the result set shown in Figure 2.42. The format for the column stays in place until you either re-specify the format for the column, specifically clear the format for the column, or exit SQL*Plus. To clear all the column formatting, execute the CLEAR COLUMNS command in SQL*Plus.

Figure 2.42

Figure 2.42 SQL*Plus output formatted

FORMATTING NUMBERS

If the column is a NUMBER data type column, you can change the format with a format model in the COLUMN command. For example, the 9 in the format model 999.99 represents the numeric digits, so the number 100 is displayed as 100.00. You can add dollar signs, leading zeros, angle brackets for negative numbers, and round values to format the display as you like.

     COL cost FORMAT $9,999.99
             SELECT DISTINCT cost
               FROM course
                   COST
             ----------
              $1,095.00
              $1,195.00
              $1,595.00


             4 rows selected.

One row in the COURSE table contains a null value in the COST column. As mentioned previously, DISTINCT recognizes one or more null values in a column as one distinct value when returning a result set.

If you do not allot sufficient room for numbers to fit in a column, SQL*Plus shows # symbols instead of the numbers.

     COL cost FORMAT 999.99
             COST
          -------
          #######
          #######
          #######

          4 rows selected.

Displaying the Number of Rows Returned

SQL*Plus sometimes does not show the number of rows returned by a query but rather depends on the feedback settings for your SQL*Plus session. Typically, the feedback is set to six or more rows. In the previous example, the feedback was set to 1, which displays the feedback line even when there is only one row returned. You will find this setting useful if your result set returns less than the default six rows and if any of the rows return nulls, which display as blanks by default. Otherwise, you might think it is not a row or value. To display the exact number of rows returned until you exit SQL*Plus, enter the SET FEEDBACK SQL*Plus command.

     SET FEEDBACK 1

To display your current settings, use the SHOW ALL command or simply SHOW FEEDBACK. If you want to retain certain SQL*Plus settings, you can create a login.sql file for your individual computer in a client/server setup. You can also create a glogin.sql file for all users if you want them all to have identical settings (see Appendix C, "SQL*Plus Command Reference.")

SQL*Plus Commands versus SQL Statements

A SQL*Plus command is specific to the SQL*Plus execution environment. Unlike a SQL statement, a SQL*Plus command does not require a semicolon or backslash in order to be executed. SQL*Plus commands are commonly used for formatting query and report results, setting environment variables and runtime options, describing table and object definitions, executing batch scripts, and performing database administration tasks.

SQL*Plus commands come in handy when you have to create repeatable scripts; you will learn more about some of the useful SQL*Plus commands in Chapter 14.

Saving and Running SQL Statements in SQL*Plus

You can save your SQL statements within SQL*Plus. Type the following statement.

     SELECT *
       FROM course

Now edit the file in Notepad and select Save As to save it with the name C:\examples\myfile.sql. Exit Notepad and type and execute a new, different SQL statement.

     SELECT state
       FROM zipcode

This new statement is now in the buffer; however, you can execute a different SQL statement, such as the one you saved in myfile.sql, with the START or @ command.

     SQL>@c:\examples\myfile

The statement in the file runs, producing a result set. Because the file already contains a forward slash, the SQL statement is executed automatically. If you save myfile with an extension other than .sql, you must type the file name and extension. If you want to change myfile again, simply type the following. Notepad will open, with myfile.sql containing your SQL statement.

     SQL>ED c:\examples\myfile

Discontinuation of the SQL*Plus for Windows GUI Version

So far, you have learned how to use the Windows command-line version of SQL*Plus. In prior Oracle versions, a SQL*Plus Windows GUI version for the Windows Desktop was available. The functionality of the Windows command-line version and the Windows GUI version was almost identical. Starting with Oracle 11g, Oracle no longer ships the Windows version of the product and replaced it with the SQL Developer software.

Differences Between SQL Developer and SQL*Plus

Throughout this book you will see both SQL*Plus and SQL Developer mentioned. For the most part, the basic functionality of the two products is identical with respect to the SQL language.

One of the most obvious differences is the visual display of the result set and the user interface. Furthermore, instead of typing and then executing commands, SQL Developer allows you to perform many operations with a few mouse clicks. Table 2.1 highlights a number of the notable differences.

Table 2.1. Key Differences Between SQL Developer and SQL*Plus

SQL Developer

SQL*Plus

Graphical user interface.

Command-line interface

Editing in the SQL Worksheet text box.

Editing from the SQL> prompt via the command-line editor or an invoked editor.

SQL Developer automatically handles the formatting of columns to fit the width of the screen.

Columns may not fit the whole width of your screen. Use various SQL*Plus formatting commands to make them display on one line.

Allows connectivity to some non-Oracle databases.

Executes only against an Oracle database.

Works with Oracle versions 9.01 and above.

All Oracle versions are supported.

Has an auto-completion syntax feature.

Requires knowledge of exact syntax and object names.

Many of the typical SQL actions can be performed through the GUI, without writing an explicit SQL statement.

Requires typing of the SQL command.

A null value is easily distinguishable as "(null)" in the Results tab.

There is no special display of null values unless you issue the SQL*Plus command SET NULL text.

While SQL Developer simplifies many tasks, it can also allow a novice user to perform some potentially damaging actions using the menus. A good understanding of the effects of the underlying SQL operations is essential for making SQL Developer a productive tool. As you learn more about the SQL language and get more experienced in SQL Developer, you will appreciate many of its advanced features.

Lab 2.3 Exercises

  1. After you have logged in to SQL*Plus with the user ID student and the password learn, what information does the SQL*Plus screen show you?

  2. What do you learn when you type the command DESCRIBE instructor and press Enter?

  3. Describe the result set you get when executing the following SQL statement. Format the result to make it more readable.

    SELECT *
      FROM grade_type
    
  4. Explain what happens, and why, when you execute the following SQL statement.

    SELECT instructor_id, instructor_name
      FROM instructor
    

Lab 2.3 Exercise Answers

  1. After you have logged in to SQL*Plus with the user ID student and the password learn, what information does the SQL*Plus screen show you?

    ANSWER: The screen shows which version of SQL*Plus you are using, the current date and time, Oracle copyright information, and the version of the Oracle database software you are connected to. After this information is displayed, you see the SQL> command prompt. You can enter commands at this prompt.

  2. What do you learn when you type the command DESCRIBE instructor and press Enter?

    ANSWER: You can display the structure of your table with the SQL*Plus DESCRIBE command (see Figure 2.43). You can abbreviate the command as DESCR.

    Figure 2.43

    Figure 2.43 Executing the SQL*Plus DESCRIBE command

    You can execute the same DESCRIBE command in SQL Developer, with the same result.

  3. Describe the result set you get when executing the following SQL statement. Format the result to make it more readable.

    SELECT *
      FROM grade_type
    

    ANSWER: All columns and rows of the GRADE_TYPE table are returned in the result set. Your result may resemble the first listing of SQL output in Figure 2.44, displaying the wrapped columns. The second result shows the output nicely formatted after the SQL*Plus COLUMN commands are issued.

    Figure 2.44

    Figure 2.44 SQL*Plus output, both unformatted and formatted with SQL*Plus commands

  4. Explain what happens, and why, when you execute the following SQL statement.

    SELECT instructor_id, instructor_name
      FROM instructor
    

    ANSWER: Oracle returns an error because the column INSTRUCTOR_NAME does not exist.

    SELECT instructor_id, instructor_name
                          *
                ERROR at line 1:
                ORA-00904: "INSTRUCTOR_NAME": invalid identifier
             

    If you use SQL*Plus, the asterisk in the error message indicates where the error occurs in the SQL statement.

    The following is the correct SQL query.

    SELECT instructor_id, last_name
      FROM instructor
    

Lab 2.3 Quiz

In order to test your progress, you should be able to answer the following questions.

  1. A TNSNAMES entry is always required when you are using SQL*Plus to access an Oracle database.

    _______

    a) True

    _______

    b) False

  2. SQL*Plus commands can be executed against non-Oracle databases.

    _______

    a) True

    _______

    b) False

  3. SQL*Plus works with all versions of Oracle.

    _______

    a) True

    _______

    b) False

  4. A SQL*Plus command must be ended with either a semicolon or a backslash.

    _______

    a) True

    _______

    b) False

ANSWERS APPEAR IN APPENDIX A.

Workshop

The projects in this section are meant to prompt you to utilize all the skills you have acquired throughout this chapter. The answers to these projects can be found at the companion Web site to this book, located at www.oraclesqlbyexample.com.

  1. Use SQL Developer to retrieve all the STATE values from the ZIPCODE table, without repeating the values.
  2. Recall one of the statements you executed in Lab 2.2, using the SQL History tab.
  3. What happens if you try to log on to SQL*Plus with the uppercase version of the password learn?
  4. Execute the following statements in SQL*Plus and record your observations.
    SET NULL 'NULL'
    SELECT DISTINCT cost
      FROM course
    

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020