CONTENTS
To use SOQL and SOSL and outlines the syntax, clauses, limits, and performance considerations for both languages. It is intended for developers and assumes knowledge and experience working with APIs to interact with data.
You can use the Salesforce Object Query Language (SOQL) and Salesforce Object Search Language (SOSL) APIs to search your organization’s Salesforce data.
Which to Use:A SOQL query is the equivalent of a SELECT SQL statement and searches the org database. SOSL is a programmatic way of performing a text-based search against the search index. Whether you use SOQL or SOSL depends on whether you know which objects or fields you want to search, plus other considerations.
Use SOQL when you know which objects the data resides in, and you want to:
- Retrieve data from a single object or from multiple objects that are related to one another.
- Count the number of records that meet specified criteria.
- Sort results as part of the query.
- Retrieve data from number, date, or checkbox fields.
- Retrieve data for a specific term that you know exists within a field. Because SOSL can tokenize multiple terms within a field and build a search index from this, SOSL searches are faster and can return more relevant results.
- Retrieve multiple objects and fields efficiently where the objects might or might not be related to one another.
- Retrieve data for a particular division in an organization using the divisions feature.
Salesforce Object Query Language (SOQL): Use this Salesforce Object Query Language (SOQL) to construct simple but powerful query strings in the queryString parameter in the query() call, in Apex statements, in Visualforce controllers and getter methods, or in the Schema Explorer of the Force.com IDE.
Salesforce Object Query Language is used to query that records from the database.com based on the requirement.
There are 2 types of SOQL Statements.
- Static SOQL
- Dynamic SOQL
Static SOQL:Static SOQL means you are using some SOQL with any user input or hard code values like below query view source
The Static SOQL Statement is written in [] (Array Brackets)
This statements are similar to IINQ(Ion Integrated Query)
Example: String search for ='varma'; Contact[] contacts=[select testfield__c, FirstName, LastName from Contact Where Last Name=:search for];
Dynamic SOQL:Dynamic SOQL refers to the creation of a SOQL string at run time with Apex code.
Dynamic SOQL enables you to create more flexible application.
To create Dynamic SOQL query at run time use Database.Query() method, in one of the following ways.
Return a single sObjects when the query returns a single record.
sObjects s = Database. Query(String_limit_l);
For example, you can create a search based on input from an end user or update records with varying field names.
String name = 'Varma';
ListDynamic SOQL can't use bind variable fields in the query string.
You can instead resolve the variable field into a string and use the string in your dynamic SOQL query:
String field = myVariable.field__c;
List
Fetching Parent Object Information from the Child Object
Fetching Child Object records from the Parent Object
Salesforce Interview Quesions
- SOQL stands for”Salesforce Object Query Language”.
- It returns Records.
- Records are stores in collection. Records are pertaining to single sObject.
- Search in single sObject and it retains records.
- SOQL retrieves the data from the database using “SELECT” keyword.
- It works on multiple objects at the same time.
- SOQL is not used in Triggers and can be used only in Apex classes and anonymous block.
- SOQL against the same field will be slow.
- Using SOQL we can Search only on one object at a time.
- We can query on all fields of any datatype
- We can use SOQL in Triggers and classes.
- We can perform DML operation on query results.
- SOSL stands for "Salesforce Object Search language".
- It returns fields.
- Records are pertaining to different sObjects.
- Search in entire Org and returns fields.
- SOSL retrieves the data from the database using the keyword "FIND".
- It doesn’t work on multiple objects at the same time and need to write different SOQL queries for different objects.
- SOSL can be used in Triggers and Apex class.
- All fields are already text indexed.
- Using SOSL we can search on many objects at a time.
- We can query only on fields whose data type is text,phone and Email.
- We can use in calsses but not in Triggers.
- We cannot perform DML operation on search result
Happy!! To help you add to your knowledge. You can leave a comment to help me understand how the blog helped you. If you need further assistance, please leave a comment or contact us at: Contact us. You can click on "contact Us" on the website and share the issue with me.