Module
Contents
Index 🔎︎

# Desain Kuiri

Dengan Desain Tampilan Kuiri, Anda dapat membuat dan menyunting kuiri basis data.

Untuk mengakses fungsi ini...

In a database file window, click the Queries icon, then choose Edit - Edit

Kebanyakan basis data memakai kuiri untuk menyaring atau mengurutkan tabel basis data untuk menampilkan rekaman pada komputer Anda. View menawarkan fungsionalitas yang sama dengan kuiri, tapi pada sisi server. Bila basis data Anda ada pada server yang mendukung view, Anda dapat memakai view untuk menyaring rekaman pada server untuk mempercepat waktu penampilan.

Memilih perintah Buat Viewdari halaman tab Tabel dari suatu dokumen basis data, Anda melihat jendela Disain View yang mirip dengan jendela Disain Kuiri yang diuraikan di sini.

Tata letak jendela Disain Kuiri disimpan dengan suatu kuiri yang dibuat, tapi tak dapat disimpan dengan suatu view yang dibuat.

## Desain Tampilan

Untuk membuat suatu kuiri, klik ikon Kuiri dalam suatu dokumen basis data, lalu klik Buat Kuiri dalam Tilikan Disain.

Panel bawah dari Tilikan Disain adalah tempat Anda mendefinisikankuiri. Untuk mendefinisikan suatu kuiri, nyatakan nama-nama ruas basis data yang akan disertakan dan kriteria untuk menampilkan ruas-ruas tersebut. Untuk menata ulang kolom-kolom dalam panel bawah Tilikan Disain, seret suatu kepala kolom ke lokasi baru, atau pilih kolom tersebut dan tekan CommandCtrl
+tombol panah.

Di puncak jendela Tilikan Disain kuiri, ikon dari Bilah Disain Kuiri dan bilah Disain ditampilkan.

Bila Anda ingin menguji suatu kuiri, klik ganda nama kuiri dalam dokumen basis data. Hasil kuiri ditampilkan dalam suatu tabel mirip dengan Tilikan Sumber Data. Catatan: tabel yang ditampilkan hanya sementara.

### Tombol-tombol pada Desain Tampilan Kuiri

Tombol | Fungsi
F4 | Pratampil
F5 | Menjalankan Kuiri
F7 | Menambah Tabel atau Kuiri

## Telusur

Ketika Anda pertama kali membuka disain kueri, Anda melihat suatu dialog dimana Anda pertama mesti memilih tabel atau kueri yang akan menjadi dasar kueri baru Anda.

Klik ganda ruas-ruas untuk menambahkan mereka ke kuiri. Seret-dan-jatuhkan untuk mendefinisikan relasi.

Selagi Anda mendesain kuiri, Anda tidak bisa mengubah tabel-tabel yang terpilih.

### Membuang tabel

Untuk membuang tabel dari Tilikan Disain, klik pada tepi atas jendela tabel dan tampilkan menu konteks. Anda dapat memakai perintah Hapus untuk membuang tabel dari Tilikan Disain. Opsi lain adalah dengan menekan tombol Delete.

### Memindahkan tabel dan mengubah ukuran tabel

Anda dapat mengubah ukuran dan menyusun tabel sesuai keinginan Anda. Untuk memindahkan tabel, seret garis tepi teratas ke posisi yang diinginkan. Memperbesar atau memperkecil tampilan tabel dengan memposisikan kursor tetikus pada sebuah garis tepi atau sudut dan seret tabel tersebut hingga sesuai ukuran yang diinginkan.

## Relasi Tabel

Bila ada relasi data antara suatu nama ruas dalam satu tabel dan sebuah nama ruas di tabel lain, Anda dapat memakai relasi ini bagi kuiri Anda.

Bila misalnya Anda memiliki suatu lembar kerja bagi artikel yang diidentifikasi menurut nomor artikel, dan suatu lembar kerja bagi pelanggan tempat Anda mencatat semua artikel yang dipesan oleh pelanggan memakai nomor artikel yang terkait, maka ada relasi antara dua ruas data "nomor artikel". Bila kini Anda ingin membuat suatu kuiri yang mengembalikan semua artikel yang telah dipesan oleh seorang pelanggan, Anda mesti mengambil data dari dua lembar kerja. Untuk melakukan ini, Anda mesti memberitahu LibreOffice apa relasi yang ada antar data dalam kedua lembar kerja.

Untuk melakukan ini, klik pada suatu nama ruas dalam suatu tabel (sebagai contoh, nama ruas "Nomor-Butir" dari tabel Pelanggan), tahan tombol tetikus lalu seret nama ruas ke nama ruas dari tabel lain ("Nomor-Butir" dari tabel Butir). Ketika Anda melepas tombol tetikus, suatu garis yang menghubungkan kedua ruas dalam dua jendela muncul. Kondisi berkaitan bahwa isi dari dua nama ruas mesti identik dimasukkan dalam kuiri SQL yang dihasilkan.

Pembuatan dari suatu kuiri yang didasarkan pada beberapa lembar yang berhubungan hanya mungkin bila Anda memakai LibreOffice sebagai antarmuka bagi suatu basis data relasional.

Anda tak dapat mengakses tabel-tabel dari basis data yang berbeda dalam suatu kuiri. Kuiri yang melibatkan beberapa tabel hanya dapat dibuat di dalam satu basis data.

### Menentukan jenis taut

Bila Anda mengklik ganda garis yang menghubungkan dua ruas tertaut atau memanggil perintah menu Sisip - Relasi Baru, Anda dapat menyatakan tipe taut dalam dialog Relasi.

Sebagai alternatif, tekan Tab sampai garis dipilih, lalu tekan Shift+F10 untuk menampilkan menu konteks dan di sana pilih perintah Sunting. Beberapa basis data hanya mendukung subset dari tipe join yang mungkin.

### Menghapus relasi

Untuk menghapus relasi antara dua tabel, klik garis koneksi dan tekan tombol Delete.

Sebagai alternatif, hapus entri yang terkait dalam Ruas-ruas yang terlibat di dialog Relasi. Atau tekan Tab sampai vektor penghubung yang ditampilkan disorot, lalu tekan Shift+F10 untuk membuka menu konteks dan pilih perintah Hapus.

## Definisikan kuiri

Pilih kondisi untuk mendefinisikan kuiri. Setiap kolom dari tabel disain menerima suatu ruas data bagi kuiri. Kondisi dalam suatu baris dihubungkan dengan suatu AND Boolean.

### Nyatakan nama ruas

Pertama, pilih semua nama ruas dari tabel-tabel yang ingin Anda tambahkan ke kuiri. Anda dapat melakukan ini dengan seret-dan-jatuhkan atau dengan klik ganda suatu nama ruas dalam jendela tabel. Dengan metoda seret-dan-jatuhkan, gunakan tetikus untuk menyeret suatu nama ruas dari jendela tabel ke dalam area bawah dari disain kuiri. Ketika Anda melakukan ini, Anda dapat menentukan ke kolom mana Anda ingin menambahkan ruas tersebut. Pilih suatu nama ruas dengan klik ganda. Itu akan ditambahkan ke kolom bebas selanjutnya.

### Menghapus nama-nama ruas

Untuk mengeluarkan suatu nama ruas dari kuiri, klik kepala kolom ruas tersebut dan pilih perintah Hapus pada menu konteks bagi kolom.

### Menyimpan kuiri

Gunakan ikon Simpan pada Bilah Standar untuk menyimpan kuiri. Anda melihat suatu dialog yang meminta Anda untuk memasukkan nama bagi kuiri. Bila basis data mendukung skema, Anda juga dapat memasukkan suatu skema.

#### Skema

Masukkan nama skema yang ditugaskan ke kuiri atau view tabel.

#### Nama kuiri atau nama tampilan tabel

Masukkan nama kuiri atau view tabel.

### Penyaringan data

Untuk menyaring data bagi kuiri, atur preferensi yang dikehendaki di area bagian bawah Tilikan Disain. Baris-baris berikut tersedia:

#### Ruas

Masukkan nama ruas data yang Anda acu dalam Kuiri. Semua pengaturan yang dibuat dalam baris-baris bawah mengacu ke ruas ini. Bila Anda mengaktfikan suatu sel dengan klik tetikus Anda akan melihat sebuah tombol panah, yang memungkinkan Anda untuk memilih suatu ruas. Opsi "Nama tabel.*" memilih semua ruas data dan kriteria valid bagi semua ruas tabel.

#### Alias

Menyatakan suatu alias. Alias ini akan didaftar dalam suatu kuiri sebagai pengganti nama ruas. Ini memungkinkan memakai label kolom yang didefinisikan oleh pengguna. Sebagai contoh, bila ruas data bernama PtNo, dan Anda menginginkan PartNum yang muncul dalam kuiri sebagai pengganti, masukkan PartNum sebagai alias.

Dalam pernyataan SQL, alias ditentukan sebagai berikut:

SELECT kolom AS alias FROM tabel.

Sebagai contoh:

SELECT "PtNo" AS "PartNum" FROM "Parts"

#### Tabel

Tabel basis data yang terkait dari ruas data yang dipilih didaftar di sini. Bila Anda mengaktifkan suatu sel dengan klik tetikus, suatu panah akan muncul yang memungkinkan Anda memilih tabel lain dari kuiri saat ini.

#### Urutkan

Bila Anda mengklik sel, Anda dapat memilih opsi pengurutan: naik, turun, dan tak terurut. Ruas teks akan diurutkan secara alfabet dan ruas angka secara bilangan. Bagi kebanyakan basis data, administrator dapat menata opsi pengurutan.

#### Terlihat

Bila Anda menandai properti Tampak bagi suatu ruas data, ruas itu akan tampak dalam kuiri. Bila Anda hanya memakai suatu ruas data untuk memformulasi suatu kondisi, Anda tak perlu menampilkannya.

#### Kriteria

Menyatakan kriteria yang mesti dipakai untuk menyaring isi ruas data.

#### atau

Di sini Anda dapat memasukkan satu kriteria tambahan untuk penyaringan dalam setiap baris. Kriteria berganda dalam satu kolom akan disambung memakai taut OR.

Anda juga dapat memakai menu konteks dari kepala baris di area bawah dari disain kuiri untuk menyisipkan baris lain bagi fungsi:

### Fungsi

Fungsi yang dapat Anda jalankan di sini bergantung kepada basis data.

Bila Anda bekerja dengan basis data HSQL, kotak daftar dalam baris Fungsi memberikan opsi-opsi berikut:

Opsi | SQL | Efek
Tak ada fungsi |  | Tak ada fungsi yang akan dieksekusi.
Rata-rata | AVG | Menghitung aritmatika mean terhadap bidang isian.
Cacah | COUNT | Menentukan banyaknya rekaman dalam tabel. Ruas-ruas kosong bisa dihitung (a) atau tidak (b). a) COUNT(*): Melewatkan bintang sebagai argumen mencacah semua rekaman dalam tabel. b) COUNT(kolom): Mengangsurkan suatu nama ruas sebagai sebuah argumen hanya mencacah ruas dimana nama ruas yang diacu memuat suatu nilai. Nilai null (ruas kosong) tidak akan dicacah.
Maksimum | MAX | Mencari nilai tertinggi.
Minimum | MIN | Mencari nilai terendah.
Penjumlahan | SUM | Melakukan penjumlahan pada bidang isian bersangkutan.
Kelompok | GROUP BY | Mengelompokkan data kuiri berdasarkan nama ruas yang dipilih. Fungsi akan dijalankan berdasarkan grup yang dinyatakan. Dalam SQL, opsi ini sesuai dengan klausa GROUP BY. Jika ada kriteria yang ditambahkan, tambahan ini muncul didalam SQL HAVING.

Anda juga dapat langsung memasukkan panggilan fungsi kedalam statemen SQL. Aturannya adalah:

SELECT FUNCTION(kolom) FROM tabel.

Sebagai contoh, panggilan fungsi dalam SQL untuk menghitung jumlah total adalah:

SELECT SUM("Price") FROM "Article".

Kecuali untuk fungsi Grup, fungsi-fungsi diatas disebut dengan fungsi Aggregat. Fungsi-fungsi ini menghitung data untuk menciptakan ringkasan dari hasil. Fungsi-fungsi tambahan yang tidak termasuk dalam daftar juga mungkin. Ini bergantung kepada sistem basis data yang digunakan dan status sekarang dari driver Base.

Untuk menggunakan fungsi lain yang tidak ada dalam daftar, Anda harus memasukkannya di bawah Ruas.

Anda dapat memberikan alias untuk panggilan fungsi. Jika kuirinya tidak untuk ditampilkan pada header kolom, masukkan nama panggilannya di Alias.

Fungsi yang berkaitan dalam pernyataan SQL adalah:

SELECT FUNCTION() AS alias FROM tabel

Contoh:

SELECT COUNT(*) AS count FROM "Item"

Apabila Anda menjalankan fungsi ini, Anda tidak dapat menyelipkan kolom tambahan untuk kuirinya, selain menerima kolom-kolom ini sebagai fungsi "Grup".

Contoh

Dalam contoh berikut, suatu kueri dijalankan atas dua tabel: sebuah tabel "Item" dengan ruas "Item_No" dan suatu tabel "Suppliers" dengan ruas "Supplier_Name". Sebagai tambahan, kedua tabel punya nama ruas sama "Supplier_No".

Langkah-langkah berikut diperlukan untuk membuat suatu kuiri yang memuat semua pemasok yang mengirim lebih dari tiga macam barang.

1. Menyisipkan tabel "Item" dan "Suppliers" ke dalam disain kuiri.

2. Mengait ruas "Supplier_No" dari dua tabel bila belum ada relasi bertipe ini.

3. Double-click the "Item_No" field from the "Item" table. Display the Function line using the context menu and select the Count function.

4. Enter >3 as a criterion and disable the Visible field.

5. Double-click the "Supplier_Name" field in the "Suppliers" table and choose the Group function.

6. Menjalankan kuiri.

If the "price" (for the individual price of an article) and "Supplier_No" (for the supplier of the article) fields exist in the "Item" table, you can obtain the average price of the item that a supplier provides with the following query:

1. Insert the "Item" table into the query design.

2. Double-click the "Price" and "Supplier_No" fields.

3. Enable the Function line and select the Average function from the "Price" field.

4. You can also enter "Average" in the line for the alias name (without quotation marks).

5. Choose Group for the "Supplier_No" field.

6. Menjalankan kuiri.

The following context menu commands and symbols are available:

### Fungsi

Shows or hides a row for selection of functions.

### Nama Tabel

Shows or hides the row for the table name.

### Nama Alias

Shows or hides the row for the alias name.

### Distinct Values

Applies only distinct values to the query. This applies to records containing data that appears several times in the selected fields. If the Distinct Values command is active, you will see only one record in the query (DISTINCT). Otherwise, you will see all records corresponding to the query criteria (ALL).

For example, if the name "Smith" occurs several times in your address database, you can choose the Distinct Values command to specify in the query that the name "Smith" will occur only once.

For a query involving several fields, the combination of values from all fields must be unique so that the result can be formed from a specific record. For example, you have "Smith in Chicago" once in your address book and "Smith in London" twice. With the Distinct Values command, the query will use the two fields "last name" and "city" and return the query result "Smith in Chicago" once and "Smith in London" once.

In SQL, this command corresponds to the DISTINCT predicate.

### Limit

Allows you to maximize the number of records with which query returns.

If there is added a Limit, you will get at most as many rows as the number you specify. Otherwise, you will see all records corresponding to the query criteria.

### Merumuskan kondisi penyaringan

When formulating filter conditions, various operators and commands are available to you. Apart from the relational operators, there are SQL-specific commands that query the content of database fields. If you use these commands in the LibreOffice syntax, LibreOffice automatically converts these into the corresponding SQL syntax. You can also enter the SQL command directly. The following tables give an overview of the operators and commands:

Operator | Arti | Condition is satisfied if...
= | sama dengan | ... the content of the field is identical to the indicated expression. The operator = will not be displayed in the query fields. If you enter a value without any operator, the operator = will be automatically adopted.
<> | tidak sama dengan | ... the content of the field does not correspond to the specified expression.
> | lebih besar dari | ... the content of the field is greater than the specified expression.
< | lebih kecil dari | ... the content of the field is less than the specified expression.
>= | lebih besar atau sama dengan | ... the content of the field is greater than or equal to the specified expression.
<= | lebih kecil atau sama dengan | ... the content of the field is less than or equal to the specified expression.

Perintah LibreOffice | Perintah SQL | Arti | Condition is satisfied if...
IS EMPTY | IS NULL | kosong | ... The value of the field is empty. For Yes/No fields with three states, this command automatically queries the undetermined state (neither Yes nor No).
IS NOT EMPTY | IS NOT NULL | tidak kosong | ... the field name is not empty.
LIKE (placeholder * for any number of characters placeholder ? for exactly one character) | LIKE (% placeholder for any number of characters Placeholder _ for exactly one character) | Bukan elemen dari | ... the data field contains the indicated expression. The (*) placeholder indicates whether the expression x occurs at the beginning of (x*), at the end of (*x) or inside the field content (*x*). You can enter as a placeholder in SQL queries either the SQL % character or the familiar (*) file system placeholder in the LibreOffice interface. The * or % placeholder stands for any number of characters. The question mark (?) in the LibreOffice interface or the underscore (_) in SQL queries is used to represent exactly one character.
NOT LIKE | NOT LIKE | Bukan elemen dari | ... the field name does not contain the specified expression.
BETWEEN x AND y | BETWEEN x AND y | berada di antara interval [x,y] | ... the field name contains a value that lies between the two values x and y.
NOT BETWEEN x AND y | NOT BETWEEN x AND y | Tidak berada di antara [x,y] | ... the field name contains a value that does not lie between the two values x and y.
IN (a; b; c...) Catatan: tanda titik koma digunakan sebagai pemisah untuk semua daftar nilai! | IN (a, b, c...) | mengandung a, b, c... | ... the field name contains one of the specified expressions a, b, c,... Any number of expressions can be specified, and the result of the query is determined by an Or link. The expressions a, b, c... can be either numbers or characters
NOT IN (a; b; c...) | NOT IN (a, b, c...) | tidak mengandung a, b, c... | ... the field name does not contain one of the specified expressions a, b, c,...
= TRUE | = TRUE | memiliki nilai True | ... the field name has the value True.
= FALSE | = FALSE | memiliki nilai false | ... the field name has the value false.

### Contoh

='Ms.' | returns field names with the field content "Ms."
<'2001-01-10' | returns dates that occurred before January 10, 2001
LIKE 'g?ve' | returns field names with field content such as "give" and "gave".
LIKE 'S*' | returns data fields with field contents such as "Sun".
BETWEEN 10 AND 20 | returns field names with field content between the values 10 and 20. (The fields can be either text fields or number fields).
IN (1; 3; 5; 7) | returns field names with the values 1, 3, 5, 7. If the field name contains an item number, for example, you can create a query that returns the item having the specified number.
NOT IN ('Smith') | returns field names that do not contain "Smith".

Like Escape Sequence: {escape 'escape-character'}

Example: select * from Item where ItemName like 'The *%' {escape '*'}

The example will give you all of the entries where the item name begins with 'The *'. This means that you can also search for characters that would otherwise be interpreted as placeholders, such as *, ?, _, % or the period.

Outer Join Escape Sequence: {oj outer-join}

Example: select Article.* from {oj item LEFT OUTER JOIN orders ON item.no=orders.ANR}

### Querying text fields

To query the content of a text field, you must put the expression between single quotes. The distinction between uppercase and lowercase letters depends on the database in use. LIKE, by definition, is case-sensitive (though some databases don't see it that strict).

### Querying date fields

Date fields are represented as #Date# to clearly identify them as dates. Date, time and date/time constants (literals) used in conditions can be of either the SQL Escape Syntax type, or default SQL2 syntax.

Date Type Element | SQL Escape syntax #1 - may be obsolete | SQL Escape syntax #2 | SQL2 syntax
Tanggal | {D'YYYY-MM-DD'} | {d 'YYYY-MM-DD'} | 'YYYY-MM-DD'
Waktu | {D'HH:MM:SS'} | {t 'HH:MI:SS[.SS]'} | 'HH:MI:SS[.SS]'
DateTime | {D'YYYY-MM-DD HH:MM:SS'} | {ts 'YYYY-MM-DD HH:MI:SS[.SS]'} | 'YYYY-MM-DD HH:MI:SS[.SS]'

Example: select {d '1999-12-31'} from world.years

Example: select * from mytable where years='1999-12-31'

All date expressions (literals) must be enclosed with single quotation marks. (Consult the reference for the particular database and connector you are using for more details.)

### Querying Yes/No fields

To query Yes/No fields, use the following syntax for dBASE tables:

Status | Kriteria kuiri | Contoh
Ya | for dBASE tables: not equal to any given value | =1 returns all records where the Yes/No field has the status "Yes" or "On" (selected in black),
Tidak | . | =0 returns all records for which the Yes/No field has the status "No" or "Off" (no selection).
Null | IS NULL | IS NULL returns all records for which the Yes/No field has neither of the states Yes or No (selected in gray).

The syntax depends on the database system used. You should also note that Yes/No fields can be defined differently (only 2 states instead of 3).

### Parameter queries

Parameter queries allow the user to input values at run-time. These values are used within the criteria for selecting the records to be displayed. Each such value has a parameter name associated with it, which is used to prompt the user when the query is run.

Parameter names are preceded by a colon in both the Design and SQL views of a query. This can be used wherever a value can appear. If the same value is to appear more than once in the query, the same parameter name is used.

In the simplest case, where the user enters a value which is matched for equality, the parameter name with its preceding colon is simply entered in the Criterion row. In SQL mode this should be typed as WHERE "Field" = :Parameter_name

Parameter names may not contain any of the characters <space>`!"$%^*()+={}[]@'~#<>?/,. They may not be the same as field names or SQL reserved words. They may be the same as aliases.

A useful construction for selecting records based on parts of a text field's content is to add a hidden column with "LIKE '%' || :Part_of_field || '%'" as the criterion. This will select records with an exact match. If a case-insensitive test is wanted, one solution is to use LOWER (Field_Name) as the field and LIKE LOWER ( '%' || :Part_of_field || '%' ) as the criterion. Note that the spaces in the criterion are important; if they are left out the SQL parser interprets the entire criterion as a string to be matched. In SQL mode this should be typed as LOWER ( "Field_Name" ) LIKE LOWER ( '%' || :Part_of_field || '%' ).

Parameter queries may be used as the data source for subforms, to allow the user to restrict the displayed records.

### Parameter Input

The Parameter Input dialog asks the user to enter the parameter values. Enter a value for each query parameter and confirm by clicking OK or typing Enter.

The values entered by the user may consist of any characters which are allowable for the SQL for the relevant criterion; this may depend on the underlying database system.

The user can use the SQL wild-card characters "%" (arbitrary string) or "_" (arbitrary single character) as part of the value to retrieve records with more complex criteria.

## Mode SQL

SQL stands for "Structured Query Language" and describes instructions for updating and administering relational databases.

In LibreOffice you do not need any knowledge of SQL for most queries, since you do not have to enter the SQL code. If you create a query in the query design, LibreOffice automatically converts your instructions into the corresponding SQL syntax. If, with the help of the Switch Design View On/Off button, you change to the SQL view, you can see the SQL commands for a query that has been created previously.

You can formulate your query directly in the SQL code. Note, however, that the special syntax is dependent upon the database system that you use.

If you enter the SQL code manually, you can create SQL-specific queries that are not supported by the graphical interface in Query design. These queries must be executed in native SQL mode.

By clicking the Run SQL command directly icon in the SQL view, you can formulate a query that is not processed by LibreOffice.