55
Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Embed Size (px)

Citation preview

Page 1: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Database Design

Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Page 2: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 2

Concatenation

A concatenation operator: Concatenates columns or charter strings

to other columns Is represented by two vertical bars (||) Creates a resultant column that is a

character expression

Page 3: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 3

Practice SELECT last_name ||', '|| first_name

FROM employees; Using the DJ on Demand EVENT table,

create and display :"On date, the event was name“

Run the command again using an alias Events for the column heading

Create SQL to get the phase like “King earns $24000” from the employees table

SELECT doesn’t change data

Page 4: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 4

Practice database UCLA CREATE table UCLA

(id number, name varchar2(20)); DESC ucla; INSERT INTO ucla

values(1,'Joe'); values(2,‘Mary'); SELECT *

FROM ucla; We can use the ucla table for practice during lecture

Page 5: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 5

Using Literal Character Strings

A literal is a character, a number, or a date included in the SELECT list.

Date and character literal values must be enclosed within single quotation marks.

Each character string is output once for each row returned.

Page 6: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 6

Using Literals

SELECT id, 'hello‘FROM ucla; hello is a literal This inserts values in a column of the

UCLA table with the value ‘hello’ Try it. Try this:

SELECT id, 15FROM ucla

Page 7: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 7

DISTINCT: Eliminating duplicate rows

The default display of queries is all rows, including duplicate rows.

Use the DISTINCT keyword in the SELECT clause to eliminate duplicate rows.

DISTINCT must appear just after the SELECT keyword.

Page 8: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 8

DISTINCT practice SELECT job_id

FROM employees; Note the large number of rows returned Revise using DISTINCT

SELECT DISTINCT job_id FROM employees;

When DISTINCT is after the SELECT it applies to all other fields in the SELECT

SELECT DISTINCT job_id, salaryFROM employees;

Page 9: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 9

Limiting rows

SELECT*|{[DISTINCT] column|expression [alias],...}FROM table[WHEREcondition(s)];

Example:SELECT DISTINCT year AS “Year”FROM d_cdsWHERE year < 2000;

Page 10: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 10

Practice 17.1.10

2. Each statement below has errors. Correct the errors and execute the query in HTML DB.

a. SELECT first nameFROM f_staffs;

b. SELECT first_name |"  " | last_name AS "DJs on Demand Clients“FROM d_clients;

c. SELECT DISCTINCT f_order_linesFROM quantity;

d. SELECT order numberFROM f_orders;

Page 11: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 11

Using DESCRIBE (DESC)

Use the DESCRIBE command to display the structure of a table.

DESC[RIBE] tablename

Page 12: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 12

Practice 17.1.11

4. Which of the following is TRUE about the following query? SELECT first_name, DISTINCT birthdate

FROM f_staffs;a. Only two rows will be returned.b. Four rows will be returned.c. Only Fred 05-JAN-88 and Lizzie 10-NOV-87

will be returned.d. No rows will be returned.

Page 13: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 13

Practice 17.2.41. True/False -- The following SELECT statement

executes successfully:SELECT last_name, job_id, salary AS SalFROM employees;

2. True/False -- The following SELECT statement executes successfully:SELECT *FROM job_grades;

3. There are four coding errors in this statement. Can you identify them?SELECT employee_id, last_namesal x 12 ANNUAL SALARYFROM employees;

4. In the arithmetic expression salary*12 - 400, which operation will be evaluated first?

Page 14: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 14

Practice 17.2.55. Which of the following can be used in the SELECT statement to return

all columns of data in the Global Fast Foods f_staffs table?a. column namesb. *c. DISTINCT idd. both a and b

5. Using SQL to choose the columns in a table uses which capability? a. selectionb. projectionc. partitioningd. join

6. SELECT department_id, first_name, last_name AS "Employee". The column heading in the query result will appear as:a. EMPLOYEEb. employeec. Employeed. "Employee:

Page 15: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 15

Practice 17.2.68. Which statement below will return a list of employees in the following format?

Mr./Ms. Steven King is an employee of our company.

a. SELECT "Mr./Ms."||first_name||' '||last_name 'is an employee of our company.' AS "Employees“FROM employees;

b. SELECT 'Mr./Ms. 'first_name,last_name ||' '||'is an employee of our company.'

FROM employees;c. SELECT 'Mr./Ms. '||first_name||' '||last_name ||' '||'is an employee of our

company.' AS "Employees“FROM employees

d. SELECT Mr./Ms. ||first_name||' '||last_name ||' '||"is an employee of our company." AS "Employees“FROM employees

9. Which expression below will produce the largest value? a. SELECT salary*6 + 100b. SELECT salary* (6 + 100)c. SELECT 6(salary+ 100)d. SELECT salary+6*100

Page 16: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 16

Practice 17.2.710. Which is true about SQL statements?

a. SQL statements are case-sensitiveb. SQL clauses should not be written on separate lines.c. Keywords cannot be abbreviated or split across lines.d. SQL keywords are typically entered in lowercase; all other words in uppercase.

11. Which query will return three columns each with UPPERCASE column headings?

a. SELECT "Department_id", "Last_name", "First_name“FROM employees;

a. SELECT DEPARTMENT_ID, LAST_NAME, FIRST_NAME FROM employees;

a. SELECT department_id, last_name, first_name AS UPPER CASE FROM employees

a. SELECT department_id, last_name, first_nameFROM employees;

Page 17: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 17

Practice 17.2.8

12. Which statement below will likely fail?

a. SELCT * FROM employees;b. Select * FROM employees;c. SELECT * FROM EMPLOYEES;d. SelecT* FROM employees;

13. You are now ready to take Quiz #7

Page 18: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 18

Limiting Rows with WHERE

The WHERE clause can compare values in columns, literal values, arithmetic expressions, or functions. It consists of three elements: Column name Comparison condition Expressions, constant, or list of values

Page 19: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 19

WHERE clause

The WHERE clause follows the FROM clause in a SQL statement.

An alias cannot be used in the WHERE clause!

Example: SELECT last_name, first_name, department_id

FROM employeesWHERE department_id = 50;

Page 20: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 20

Comparison Operators The symbols != and ^= can also represent the not equal to

condition.Operator Meaning

= Equal to

> Greater than

>= Greater than or equal to

< Less than

<= Less than or equal to

<> Not equal to

Page 21: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 21

WHERE clauses Using comparison operators

SELECT last_name,first_name,department_idFROM employeesWHERE department_id >= 60;

SELECT last_name,first_name,department_idFROM employeesWHERE department_id <> 60;

Write a SELECT statement to produce the following results:"The song title is "Another one bites the dust.Where ‘Another one bites the dust’ is the title of a song.Remember Oracle SQL is case sensitive

Page 22: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 22

BETWEEN ... AND BETWEEN...AND operator is used to

select and display rows based on a range of values.

BETWEEN ... AND are inclusive SELECT last_name,first_name,department_id

FROM employeesWHERE department_id BETWEEN 60 AND 90;

SELECT last_name,first_name,department_idFROM employeesWHERE department_id NOT BETWEEN 60 AND 90;

SELECT title, yearFROM   d_cdsWHERE  year  BETWEEN '1999' AND '2001';

Page 23: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 23

More Complex WHERE clause

Example: "I would like to know Global Fast Foods

employees whose manager ID is 19 and earn a salary less than $12.00 per hour.

SELECT *FROM f_staffsWHERE manager_id = 19 and salary <12.00;

Page 24: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 24

WHERE clause using LIKE LIKE condition allows you to select

rows that match either literal characters or number patterns.

% and underscore (_ ) are wildcard characters, used to

construct a search string. % symbol used to represent any

sequence of zero or more characters. Underscore (_ ) symbol used to represent

a single character.

Page 25: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 25

LIKE examples SELECT last_name,first_name,department_id

FROM employeesWHERE last_name LIKE 'A%';

SELECT last_name,first_name,department_idFROM employeesWHERE last_name LIKE '%s‘;

SELECT last_name,first_name,department_idFROM employeesWHERE last_name LIKE '%s%‘;

SELECT last_name,first_name,department_idFROM employeesWHERE last_name LIKE ‘_ _ _ _ _s%‘

Using 5 underscores

Page 26: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 26

Using IS NULL, IS NOT NULL NULL is unavailable, unassigned, unknown,

or inapplicable. No presence of data. NOT NULL test for presence of data in

column/field. Examples:

SELECT last_name,first_name,department_id, commission_pctFROM employeesWHERE commission_pct is NULL;

SELECT last_name,first_name,department_id, commission_pctFROM employeesWHERE commission_pct is NOT NULL;

Page 27: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 27

17.5.11 & 17.5.12

2. Display the location type and comments for all DJs on Demand venues that are Private Home.

5. Who are the partners of DJs on Demand who do not get an authorized expense amount?

Page 28: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 28

IN is like OR’s

IN is like a string of OR clauses. Example:

SELECT last_name,first_name,department_idFROM employeesWHERE department_id IN(50, 60, 90);

Page 29: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 29

Logical Comparisons A logical condition combines the results of two

or more conditions to produce a single result. A row is returned ONLY IF the overall result of the condition is true.

AND – Returns TRUE if both conditions are true. OR – Returns TRUE if either conditions are true. NOT – Returns TRUE if the condition is false.

Page 30: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 30

Precedence using AND & OR Evaluate these two examples. What

is the difference? SELECT last_name, job_id, salary

FROM employeesWHERE job_id = ‘SA_REP’OR job_id=‘AD_PRES’AND salary>15000;

SELECT last_name, job_id, salaryFROM employeesWHERE (job_id = ‘SA_REP’OR job_id=‘AD_PRES’)AND salary>15000;

AND before OR

Page 31: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 31

Logical Comparisons

Logical conditions (a few examples) SELECT last_name, job_id, department_id

FROM employeesWHERE job_id = ‘SA_REP’OR department_id = 10;

SELECT last_name, job_id, SALARYFROM employeesWHERE job_id = ‘SA_REP’AND salary > 15000;

Can you explain what rows are to be returned in each?

Page 32: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 32

Logical operator Write a select statement to find an address

in the DJs on Demand database d_venues table that has the word "Primrose" in the description.

SELECT  addressFROM  d_venuesWHERE address LIKE '%Primrose%‘;

Variations: …WHERE cd_id NOT IN(105, 206, 332); …WHERE cd_id != 105 and cd_id != 206 and

cd_id!= 332;

Page 33: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 33

Examples: Below are phrases and conditions in which they

would not be true employee_id = 100 AND last_name LIKE 'S%'  

Ms. Smith whose employee_id is 50 Employee_id 100 whose last name is King

department = 10 AND employee_id  = 100; Employee_id 100 is in department 20 Employee_id 50 is in department 10

Page 34: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 34

Complex AND and OR clause

Take an arc

#id

ID = A

ID = B

ID = C

Page 35: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 35

Complex AND and OR clause Example Table:

ID A B C

PK Fk1 Fk2 Fk3

* O O O

Page 36: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 36

Complex AND and OR clause

WHERE clause example for ARC: WHERE ((A is NOT NULL and B is NULL

and C is NULL) OR (A is NULL and B is NOT NULL and C is NULL) OR (A is NULL and B is NULL and C is NOT NULL)) /*--- comment ---*/

Precedence is AND before OR

Page 37: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 37

Rules of Precedence The rules of

precedence determine the order in which expressions are evaluated and calculated. The table lists the default order, which can overridden by using parentheses.

Order Operator

1 Arithmetic operations

2 Concatenation operators

3 Comparison conditions

4 IN [NOT] NULL, LIKE, [NOT] IN

5 [NOT] BETWEEN

6 NOT logical operator

7 AND logical operator

8 OR logical operator

Page 38: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 38

Order of Operations Examples What order will these process in? SELECT last_name, specialty, auth_expense_amt

FROM   d_partnersWHERE  specialty ='All Types‘OR     specialty IS NULLAND   auth_expense_amt = 300000;

SELECT last_name, specialty, auth_expense_amtFROM   d_partnersWHERE  (specialty ='All Types‘OR     specialty IS NULL)AND   auth_expense_amt = 300000;

Page 39: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 39

Examples 18.1.8 & 18.1.9

3. “I need to know who the Global Fast Foods employees are that make more than $6.50/hour and their position is not Order Taker.“

8. What's my email address?Because I have been working for Oracle since the beginning of 1996, I make more than $9000 per month. Because I make so much money, I don't get a commission.

Page 40: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 40

Examples: AND and OR conditions

What are the titles of the jobs whose minimum salary is 4000 and whose maximum salary is 9000?

Try this with OR and then AND Rewritten query including the salary

columns to verify that both conditions are met:

Note: you might want to review the jobs table fields/columns etc.

Page 41: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 41

Sorting rows ORDER BY

Information sorted by the column referenced. ORDER BY clause follows the FROM clause and is

at the end of the SELECT statement. ORDER BY clause sorts in ascending order by

default. Only limit to how many columns can be added to

the ORDER BY clause is the number of columns in the table.

Page 42: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 42

ORDER BY

Example of single value sort SELECT department_id, job_id,

last_name, salaryFROM employeesORDER BY department_id desc;

Page 43: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 43

ORDER BY multiple values SELECT department_id, job_id, last_name, salary

FROM employeesORDER BY department_id, job_id, salary;

SELECT department_id, job_id, last_name, salaryFROM employeesORDER BY department_id, job_id desc, salary;

SELECT department_id, job_id, last_name, salaryFROM employeesORDER BY 3; The 3 is field from SELECT

SELECT department_id, job_id, last_name, salaryFROM employeesORDER BY 2, last_name;

Page 44: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 44

Sort order The default sort order is ascending.

Numeric values are displayed lowest to highest.

Date values are displayed with the earliest value first.

Character values are displayed in alphabetical order.

Null values are displayed last in ascending order and first in descending order.

Page 45: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 45

ORDER BY multiple values

Place the following hire dates in descending order: 22-MAY-85, null, 10-JAN-04, 17-NOV-55, 21-DEC-98

Write a query to find the answer, using the employees table and hire_date column

Page 46: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 46

Order of execution in a SELECT statement

The order of execution of a SELECT statement is as follows: FROM clause -- locates the table that

contains the data WHERE clause -- restricts the rows to be

returned SELECT clause -- selects from the

reduced data set the columns requested ORDER BY -- orders the results set

Page 47: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 47

Example

SELECT employee_id, first_name FROM employeesWHERE employee_id < 105ORDER BY last_name;

What order does this execute in?

Page 48: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 48

11.1.7 & 11.1.8

2. Create a query that will return all the DJ on Demand CD titles ordered by year with titles in alphabetical order by year.

5. Write a SQL statement using the employees table and the ORDER BY clause that could retrieve the information in the following table. Return only those employees with employee_id<125.

Page 49: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 49

Function classification

Single-row and multi-row functions Single-row functions operate on a single

row and return only one result per row. Multiple-row functions can manipulate

groups of rows to give one result per group of rows.

This section provides a brief overview of this topic. It is covered in depth in the next section.

Page 50: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 50

SQL Single row functions Character

Converting character values from uppercase to lowercase

Number rounding off Manipulate output for groups of rows by finding an

average or sum for several rows Date

Format dates and numbers for display Conversion

Convert column data types such as converting a character string to a number or date

General

Page 51: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 51

Single-row functions They can be used in SELECT, WHERE, and ORDER BY

clauses.

They return ONE result per row.

They can return a data value of a different type.

They can possibly expect one or more arguments or values sent to them.

They act on each row returned in the query.

Page 52: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 52

Examples

SELECT 'The most popular song in our collection is ' || UPPER(title)AS "Most Requested”FROM d_songsWHERE id = 47;

SELECT CONCAT(title, year)FROM d_cds;

Page 53: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 53

Examples Use ‘ single quote when referring to data in a database Use “ “ for text as an alias if text has space or specific case

etc. In an ORDER BY clause you can use an alias, expression,

number, field names SELECT department_id, job_id AS job, last_name, salary*12

FROM employeesORDER BY job;

SELECT department_id, job_id AS job, last_name, salary*12FROM employeesORDER BY salary*12;

SELECT department_id, job_id AS job, last_name, salary*12FROM employeesORDER BY 3;

Page 54: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 54

Examples Fields used in ORDER BY don’t have to be

used in SELECT clause SELECT last_name

FROM employeesWHERE salary > 4000ORDER BY job_id;

In development you might want to include the ORDER BY field in SELECT to verify that your getting the correct results, then remove the field.

Page 55: Database Design Sections 17 & 18 – Concatenations, DISTINCT, DESCRIBE, Logical Operators, Order of Operations, Sorting

Marge Hohly 55

Single-row function example

The single-row function is done for every row

What would be returned from this statement? SELECT last_name || ' ' || first_name,

salary,round(salary,-3)FROM employeesWHERE salary>400;