Search This Blog

Saturday, April 17, 2021

Networking Interview Questions - for Testers

Basics of Network Communication
For a network to exist, we need a minimum of two connected devices.
  • Network communication happens at different levels or layers (OSI model and TCP/IP model)
  • Each layer of network communication is responsible for passing the information on to the next layer in the stack.
  • Data transferred between layers is known as a Protocol Data Unit (PDU).
  • These network layers of communication allow for better troubleshooting.
  • The rise of the internet and new technology has changed the way devices communicate with each other and thus may require new protocols.
What is a reverse proxy?
  • A proxy is a server that accepts connections from clients, which actively configured the proxy server on their machines, in their network settings.
  • When a client makes a connection to a server, the requests always pass through that proxy server.
  • Companies and organizations can set up proxy servers to filter connections, provide more security, and log traffic. Without using the proxy, clients can’t reach the outside network. Proxy servers are also useful to provide privacy and avoid network restrictions imposed by countries governments.
  • A reverse proxy on the other hand is set up by the server. It’s completely transparent to clients, they don’t know this middleman exists, but it does a very useful job on the servers, filtering requests and sending them to the appropriate service that handles them
  • It’s common to use Nginx as a reverse proxy, and have services written for example in Node.js listening on internal ports, inaccessible from the outside.
Network Protocol Terminologies
LAN: LAN stands for “Local Area Network” and refers to a network that is not publicly accessible by the internet. Examples of this are home or office network.

WAN: WAN stands for “Wide Area Network” and generally refers to large dispersed networks and, more broadly, the internet.

ISP: ISP stands for “Internet Service Provider” and refers to the company responsible for providing you access to the internet.

NAT: Network Address Translation allows requests from outside your local network to be mapped to devices within your local network.

Firewall: A firewall is a piece of hardware or software that enforces what type of network traffic is and is not allowed. This is generally done by establishing rules for which ports should be externally accessible.

Router: A router is a network device whose main goal is to transfer data back and forth between different networks. This device allows requests to be made to the internet and for information to be sent back to the devices on a local network.

Switch: The basic function of a switch is to provide access between devices on a local network. An example is an Ethernet switch.

Network Interface: This component allows you to connect to a public or private network. It provides the software required to utilize networking hardware. An example of this is the Network Interface Cards (NICs).

Port: A port is a logically defined connection location. Ports provide a destination endpoint for communication and the transfer of data. The ports range from 0 to 65535.

Packet: A packet is the basic unit of data transferred over a network. A packet has a header that gives information about the packet (source, destination, etc) and a body or payload containing the actual data being sent.

What happens when you type something into the Google search box and press enter”.
I analyze URL requests only
  • Modern browsers have the capability of knowing if the thing you wrote in the address bar is an actual URL or a search term, and they will use the default search engine if it’s not a valid URL.
  • I assume you type an actual URL.
  • When you enter the URL and press enter, the browser first builds the full URL.
  • If you just entered a domain, like testing.com, the browser by default will prepend HTTP:// to it, defaulting to the HTTP protocol.

DNS Lookup phase
  • The browser starts the DNS lookup to get the server IP address.
  • The domain name is a handy shortcut for us humans, but the internet is organized in such a way that computers can look up the exact location of a server through its IP address, which is a set of numbers like 222.324.3.1 (IPv4).
  • First, it checks the DNS local cache, to see if the domain has already been resolved recently.
  • Chrome has a handy DNS cache visualizer you can see at chrome://net-internals/#dns
  • If nothing is found there, the browser uses the DNS resolver, using the gethostbyname POSIX system call to retrieve the host information.
gethostbyname
gethostbyname first looks in the local hosts file, which on macOS or Linux is located in /etc/hosts, to see if the system provides the information locally.

If this does not give any information about the domain, the system makes a request to the DNS server.

The address of the DNS server is stored in the system preferences.

Those are 2 popular DNS servers:
  • 8.8.8.8: the Google public DNS server
  • 1.1.1.1: the CloudFlare DNS server
Most people use the DNS server provided by their internet provider.

The browser performs the DNS request using the UDP protocol.

TCP and UDP are two of the foundational protocols of computer networking. They sit at the same conceptual level, but TCP is connection-oriented, while UDP is a connectionless protocol, more lightweight, used to send messages with little overhead.

How the UDP request is performed is not in the scope of this tutorial

  • The DNS server might have the domain IP in the cache. If not, it will ask the root DNS server. That’s a system (composed of 13 actual servers, distributed across the planet) that drives the entire internet.
  • The DNS server does not know the address of each and every domain name on the planet.
  • What it knows is where the top-level DNS resolvers are.
  • A top-level domain is the domain extension: .com, .it, .pizza and so on.
  • Once the root DNS server receives the request, it forwards the request to that top-level domain (TLD) DNS server.
  • Say you are looking for flaviocopes.com. The root domain DNS server returns the IP of the .com TLD server.
  • Now our DNS resolver will cache the IP of that TLD server, so it does not have to ask the root DNS server again for it.
  • The TLD DNS server will have the IP addresses of the authoritative Name Servers for the domain we are looking for.
How? When you buy a domain, the domain registrar sends the appropriate TDL the name servers. When you update the name servers (for example, when you change the hosting provider), this information will be automatically updated by your domain registrar.

Those are the DNS servers of the hosting provider. They are usually more than 1, to serve as backup.

For example:
  • ns1.dreamhost.com
  • ns2.dreamhost.com
  • ns3.dreamhost.com
The DNS resolver starts with the first, and tries to ask the IP of the domain (with the subdomain, too) you are looking for.

That is the ultimate source of truth for the IP address.

Now that we have the IP address, we can go on in our journey.

TCP request handshaking
  • With the server IP address available, now the browser can initiate a TCP connection to that.
  • A TCP connection requires a bit of handshaking before it can be fully initialized and you can start sending data.
  • Once the connection is established, we can send the request
Sending the request
The request is a plain text document structured in a precise way determined by the communication protocol.

It’s composed of 3 parts:
  • the request line
  • the request header
  • the request body
The request line
The request line sets, on a single line:
  • the HTTP method
  • the resource location
  • the protocol version
Example:
GET / HTTP/1.1

The request header
The request header is a set of field: value pairs that set certain values.

There are 2 mandatory fields, one of which is Host, and the other is Connection, while all the other fields are optional:

Host: testing.com
Connection: close

Host indicates the domain name which we want to target, while Connection is always set to close unless the connection must be kept open.

Some of the most used header fields are:
  • Origin
  • Accept
  • Accept-Encoding
  • Cookie
  • Cache-Control
  • Dnt
but many more exist.
The header part is terminated by a blank line.

The request body
The request body is optional, not used in GET requests but very much used in POST requests and sometimes in other verbs too, and it can contain data in JSON format.

Since we’re now analyzing a GET request, the body is blank and we’ll not look more into it.

The response
Once the request is sent, the server processes it and sends back a response.

The response starts with the status code and the status message. If the request is successful and returns a 200, it will start with:
200 OK

The request might return a different status code and message, like one of these:

404 Not Found
403 Forbidden
301 Moved Permanently
500 Internal Server Error
304 Not Modified
401 Unauthorized

The response then contains a list of HTTP headers and the response body (which, since we’re making the request in the browser, is going to be HTML)

Parse the HTML
The browser now has received the HTML and starts to parse it, and will repeat the exact same process we did for all the resources required by the page:
  • CSS files
  • images
  • the favicon
  • JavaScript files
What protocol is used by DNS name servers?
DNS uses UDP for communication between servers. It is a better choice than TCP because of the improved speed a connectionless protocol offers. Of course, transmission reliability suffers with UDP.

Explain difference between ARP and RARP
The address resolution protocol (ARP) is used to associate the 32 bit IP address with the 48 bit physical address, used by a host or a router to find the physical address of another host on its network by sending a ARP query packet that includes the IP address of the receiver. The reverse address resolution protocol (RARP) allows a host to discover its Internet address when it knows only its physical address.

Explain ICMP
ICMP is Internet Control Message Protocol, a network layer protocol of the TCP/IP suite used by hosts and gateways to send notification of datagram problems back to the sender. It uses the echo test / reply to test whether a destination is reachable and responding. It also handles both control and error messages.

What are the data units at different layers of the TCP / IP protocol suite
The data unit created at the application layer is called a message, at the transport layer the data unit created is called either a segment or an user datagram, at the network layer the data unit created is called the datagram, at the data link layer the datagram is encapsulated in to a frame and finally transmitted as signals along the transmission media

What is Network Scanning?
  • Network scanning refers to the process of obtaining additional information and performing a more detailed reconnaissance based on the collected information in the foot printing phase.
  • In this phase, a number of different procedures are used with the objective to identify hosts, ports, and services in the target network. The whole purpose is to identify vulnerabilities in communication channels and then create an attack plan.
Types of Network Scanning
Scanning has three types:
  1. Port scanning - used to list open ports and services
  2. Network scanning - used to list IP addresses
  3. Vulnerability scanning - used to discover the presence of known vulnerabilities

Scanning Techniques
Port scanning techniques are extremely useful when it comes to identifying open ports. Scanning techniques represent different categories which are used based on protocol types. They are categorized into three categories:
  1. Scanning ICMP network services
  2. Scanning TCP network services
  3. Scanning UDP network services
Scanning ICMP network services
1) ICMP Scanning
ICMP scanning is used for identifying active devices and determining whether ICMP can pass through a firewall.

2) Ping Sweep
Ping sweep is used to determine the range of IP addresses that is mapped to active devices. It allows hackers to calculate subnet masks and identify the number of present hosts in the subnet. This in turn enables them to create an inventory of active devices in the subnet.

3) ICMP Echo Scanning
ICMP Echo Scanning is used to determine which hosts are active in a target network by pinging all the machines in the network.


Scanning TCP Network Services
1) TCP Connect
TCP connect scan used for detecting open ports upon the completion of the three-way handshake. It works by establishing a full connection and then dropping it by sending a RST packet.

2) Stealth Scan
Stealth scan is used for bypassing firewall and logging mechanisms. It works by resetting the TCP connection before the three-way handshake is completed, which in turn makes the connection half open.

3) Inverse TCP Flag Scanning
Inverse TCP flag scanning works by sending TCP probe packets with or without TCP flags. Based on the response, it is possible to determine whether the port is open or closed. If there is no response, then the port is open. If the response is RST, then the port is closed.

4) Xmas Scan
Xmas scan works by sending a TCP frame with FIN, URG, and PUSH flags set to the target device. Based on the response, it is possible to determine whether the port is open or closed. If there is no response, then the port is open. If the response is RST, then the port is closed. It is important to note that this scan works only for UNIX hosts.

5) ACK Flag Probe Scanning
ACK flag probe scanning works by sending TCP probe packets with ACK flag set in order to determine whether the port is open or closed. This is done by analyzing the TTL and WINDOW field of the received RST packet’s header. The port is open if the TTL value is less than 64.

Similarly, the port is also considered to be open if the WINDOW value is not 0 (zero). Otherwise, the port is considered to be closed.

ACK flag probe is also used to determine the filtering rules of the target network. If there is no response, then that means that a stateful firewall is present. If the response is RST, then the port is not filtered.


Scanning UDP Network Services
1) IDLE/IPID Header Scan
IDLE/IPID header scan works by sending a spoofed source address to the target to determine which services are available. In this scan, hackers use IP address of a zombie machine for sending out the packets. Based on the IPID of the packer (fragment identification number), it is possible to determine whether the port is open or closed.

2) UDP Scanning
UDP scanning uses UDP protocol to test whether the port is open or closed. In this scan there is no flag manipulation. Instead, ICMP is used to determine if the port is open or not. So, if a packet is sent to a port and the ICMP port unreachable packet is returned, then that means that the port is closed. If, however, there is no response, then the port is open.

3) SSDP and List Scanning
SSDP, or Simple Service Discovery Protocol, service responds to queries sent over IPv4 and IPv6 broadcast addresses. Attackers use this scan to exploit UPnP vulnerabilities and carry out buffer overflow or DoS attacks. List scanning indirectly discovers hosts. This scan works by listing out IP addresses and names without pinging the hosts and with performing a reverse DNS resolution to identify the names of the hosts.

What is a port?
When making network requests, you use an IP address, or a host name, and a port.

Like this:

http://localhost:8080 (port 8080)
ftp://127.0.0.1:29392 (port 29392)

What is a port, exactly?
It’s a technique introduced to allow multiple applications to respond on the same computer, on the same protocol.

For example we might have a web server running on our machine. A second web server can be started on a different port.

Say the first runs on port 80, which is the default for web servers using the HTTP protocol. The same can run on any other port except port 80. It’s common to use port 8080 or port 81, for example.

HTTPS runs on port 443 by default.

Every protocol has a different default port, but programs are not required to use that. They can use any unused port between 1 and 65535 (16 bits unsigned = 2^16). Here is a list of default port numbers for all protocols based on TCP and UDP.

Historically:

FTP uses 21
Telnet uses 23
SMTP uses 25
POP3 uses 110

HTTP vs HTTPS
HTTP (Hyper Text Transfer Protocol) is the protocol that powers the web as we know it.

It sits on top of TCP, which sits on top of IP.

Web pages can either use HTTP or HTTPS (Hyper Text Transfer Protocol Secure).

How are they different? And, why is now HTTP being marked as non-secure by Chrome?

Security
When you request an HTTP page from a server, the data goes through many different networks, each controlled by a separate company or entity.

Starting from the WiFi router, which might be owned by the coffee shop or by the city public network infrastructure, every single node in the network can see the request and the response, and modify it in any way.

They might inject ads, they might inject malware, they might log any credentials you enter. A server in the middle can play as a man-in-the-middle, sending compromised information.

This also applies to any internet protocol that’s not secured.

HTTPS traffic is end-to-end encrypted, and this means there is nothing in between that can read the information exchanged between you and the server at the other side of the network.

The ports
By default, HTTP is served on port 80, while HTTPS is served on port 443. Those are the default ports, but a web server can choose to serve content on a different, random port, in which case you need to specify it in the address bar:

http://flaviocopes.com
http://flaviocopes.com:80/javascript
https://flaviocopes.com:8081/javascript

Is HTTPS slower?
No! It’s the opposite.

There is a myth around page speed. People think that the TLS handshake required for HTTPS is making page speed slower, but in reality, an HTTPS page can load up way, way faster than HTTP.

Why? Because of HTTP/2, the newest version of the HTTP protocol. HTTP/2 can serve requests in parallel, and requires a secure connection, so if your server uses a modern Web Server, which supports HTTP/2, then your web pages are going to have a significant speed bump when using HTTPS.

HTTP/2 introduces better parallelism, multiplexing, and compression, and that is an awesome update to HTTP.

Does HTTPS affect SEO?
Yes.

In particular, Google says HTTPS is going to give you an advantage in SEO terms.

Also, Google is going to officially mark HTTP sites as non-secure in its Chrome browser, and this is clearly an indication that if you care what Google wants, and you want to take advantage of that, you should switch to HTTPS, as soon as possible. The best possible time would have been 3 years ago, the next best time is today.


Is HTTPS difficult to implement?
Not at all. Thanks to free SSL certificates provided by Let’s Encrypt, the push for HTTPS had a huge impact and how every decent hosting provider is implementing it for free on all the accounts. Thanks to this, in 2018 HTTPS connections were more than the HTTP connections.

In the past having an SSL certificate for your site was a premium option that few were willing to purchase for a regular site, that was not making money or didn’t process user data.

The TCP Protocol
  • TCP means Transfer Control Protocol, and it’s the basis of the Web and other applications like Email.
  • TCP sits on top of the Internet Protocol (IP) and builds a base system upon which application-level protocols like HTTP, FTP, IMAP and many others.
  • TCP, contrary to IP and UDP, is connection oriented.
  • Before transmission can happen over TCP, a connection must be established. Data is sent, in form of little packets, and when the communication ends the connection is closed.
  • When data is transmitted over TCP, there’s a relatively complex workflow called handshake that must happen.
  • Handshake allows the end-to-end connection to happen, and this makes sure TCP can provide one of its peculiar features: reliability. Using TCP, we can always know if a packet the sender sent was received correctly by the receiver.
  • If a packet gets lost, the protocol is able to handle it and the packet is re-sent.
  • On the IP protocol, connections happen from computer to computer. In TCP, a connection happens form process to process, using a the concept of ports.
  • The port, associated to an IP address, allows to uniquely identify a process on a computer. Like this:
localhost:8080
or
google.com:1234

  • Each application protocol has a default port. For example HTTP has 80, HTTPS has 443 and FTP has 21. This is why you don’t usually have to specify the port, in the browser.
  • Programs are not required to use the default, this is why especially on your local computer, you might see ports like 1313 or 8080 when you start a new application.
  • Port numbers range from 1 to 65535 (the port number is a 16 bits unsigned, which corresponds to 2^16 possible values).
The UDP Protocol

  • UDP, User Datagram Protocol, is a transfer protocol, an alternative to TCP.
  • Its main difference from TCP is that it’s connectionless.
  • This implies that it’s faster, each packet sent is more lightweight, as it does not contain all the information needed in TCP, and it does have a lighter handshake process.
  • The drawback is that UDP is not reliable as TCP.
  • In TCP, if a packet gets lost, the protocol is able to handle it and the packet is re-sent.
  • In UDP, this is not built-in into the protocol, and must be handled at a higher level (built on top of it). There is no built-in check to control if a packet was received, and if it is received correctly.
  • Some of the most notable application protocols that rely on the UDP layer are DNS and DHCP, and more importantly is the base layer of HTTP/3, the next version of HTTP.
  • The UDP protocol uses ports to allow communication between processes, like with TCP.
How traceroute (or tracert) works?
Tracert are both command line utilities that are built into Windows
(traceroute and ping for Linux operating systems) computer systems.
Syntax : tracecert "hostname"

Discover the path: Tracert sends an ICMP echo packet, but it takes advantage
of the fact that most Internet routers will send back an ICMP ‘TTL expired in
transit’ message if the TTL field is ever decremented to zero by a router. Using
this knowledge, we can discover the path taken by IP Packets.

How tracert works: Tracert sends out an ICMP echo packet to the named host,
but with a TTL of 1; then with a TTL of 2; then with a TTL of 3 and so on.
Tracert will then get ‘TTL expired in transit’ message back from routers until the
destination host computer finally is reached and it responds with the standard
ICMP ‘echo reply’ packet.

Round Trip Times: Each millisecond (ms) time in the table is the round-trip
time that it took (to send the ICMP packet and to get the ICMP reply packet).
The faster (smaller) the times the better, ms times of 0 mean that the reply was
faster than the computers timer of 10 milliseconds, so the time is actually
somewhere between 0 and 10 milliseconds

Packet Loss: Packet loss kills throughput. So, having no packet loss is critical to
having a connection to the Internet that responds well. A slower connection with
zero packet loss can easily outperform a faster connection with some packet loss.
Also, packet loss on the last hop, the destination, is what is most important.
Sometimes routers in-between will not send ICMP ‘TTL expired in transit’
messages, causing what looks to be high packet loss at a particular hop, but all it
means is that the particular router is not responding to ICMP echo.

Which port number would you open on a firewall to allow access to a Windows
remote desktop server on the LAN network.
Windows remote desktop servers work on TCP port 3389, which should be opened on
the firewall for access.


What is a network / subnet mask? Explain how host A sends a message / packet to
host B when: (a) both are on same network and (b) both are on different networks.
Explain which layer makes the routing decision and how.
A mask is a bit pattern used to identify the network/subnet address. The IP address consists
of two components: the network address and the host address.
The IP addresses are categorized into different classes which are used to identify the network
address.
Example: Consider IP address 152.210.011.002. This address belongs to Class B, so:
  • Network Mask: 11111111.11111111.00000000.00000000
  • Given Address: 10011000.11010101.00001011.00000010
By ANDing Network Mask and IP Address, we get the following network address:
  • 10011000.11010101.00000000.00000000 (152.210.0.0)
  • Host address: 00001011.00000010
Similarly, a network administrator can divide any network into sub-networks by using subnet
mask. To do this, we further divide the host address into two or more subnets.

For example, if the above network is divided into 18 subnets (requiring a minimum of 5 bits
to represent 18 subnets), the first 5 bits will be used to identify the subnet address.
  • Subnet Mask: 11111111.11111111.11111000.00000000 (255.255.248.0)
  • Given Address: 10011000.11010101.00001011.00000010
So, by ANDing the subnet mask and the given address, we get the following subnet address:
10011000.11010101.00001000.00000000 (152.210.1.0)

How Host A sends a message/packet to Host B:
  • When both are on same network: the host address bits are used to identify the host within the network.
  • Both are on different networks: the router uses the network mask to identify the network and route the packet. The host can be identified using the network host address.
  • The network layer is responsible for making routing decisions. A routing table is used to store the path information and the cost involved with that path, while a routing algorithm uses the routing table to decide the path on which to route the packets.
  • Routing is broadly classified into Static and Dynamic Routing based on whether the table is fixed or it changes based on the current network condition.
Name two reasons as to why ping response is not received from the destination
The ping can fail if the destination is shutdown or it can also be a firewall on the
destination blocking the packet.

Explain a technique by which web access can be blocked on a network with a
firewall.
An ACL can be configured which would block DNS packets originating from the
network. DNS is used for resolving URL into IP address. If DNS is blocked, web
communication would fail

Does HTTPS use TLS/SSL protocol at the transport layer
HTTPS uses TCP at the transport layer. TCP port 443 is used. TLS/SSL is used by
HTTPS for encrypting the data exchanged.

Can two vlans be assigned with two subnets from the same major network.
Vlans are used for segregating networks. So two subnets irrespective of whether they
are from the same of different major networks can be used with two vlans.

Explain what happens, step by step, after you type a URL into a browser. Use as much
detail as possible.
There’s no right, or even complete, answer for this question. This question allows you to go
into arbitrary amounts of detail depending on what you’re comfortable with. Here’s a start
though:
1. Browser contacts the DNS server to find the IP address of URL.
2. DNS returns back the IP address of the site.
3. Browser opens TCP connection to the web server at port 80.
4. Browser fetches the html code of the page requested.
5. Browser renders the HTML in the display window.
6. Browser terminates the connection when window is closed

One of the most interesting steps is Step 1 and 2 - “Domain Name Resolution.” The web addresses we type are nothing but an alias to an IP address in human readable form. Mapping of domain names and their associated Internet Protocol (IP) addresses is managed by the Domain Name System (DNS), which is a distributed but hierarchical entity.

Each domain name server is divided into zones. A single server may only be responsible for
knowing the host names and IP addresses for a small subset of a zone, but DNS servers can
work together to map all domain names to their IP addresses. That means if one domain
name server is unable to find the IP addresses of a requested domain then it requests the
information from other domain name servers.

What are the differences between TCP and UDP? Explain how TCP handles reliable
delivery (explain ACK mechanism), flow control (explain TCP sender’s / receiver’s window) and congestion control.
TCP (Transmission Control Protocol): TCP is a connection-oriented protocol. A connection can
be made from client to server, and from then on any data can be sent along that connection.
  • Reliable - when you send a message along a TCP socket, you know it will get there unless the connection fails completely. If it gets lost along the way, the server will re-request the lost part. This means complete integrity; data will not get corrupted.
  • Ordered - if you send two messages along a connection, one after the other, you know the first message will get there first. You don’t have to worry about data arriving in the wrong order.
  • Heavyweight - when the low level parts of the TCP “stream” arrive in the wrong order, resend requests have to be sent. All the out of sequence parts must be put back together, which requires a bit of work.
UDP(User Datagram Protocol): UDP is connectionless protocol. With UDP you send messages
(packets) across the network in chunks.
  • Unreliable - When you send a message, you don’t know if it’ll get there; it could get lost on the way.
  • Not ordered - If you send two messages out, you don’t know what order they’ll arrive in.
  • Lightweight - No ordering of messages, no tracking connections, etc. It’s just fire and forget! This means it’s a lot quicker, and the network card / OS have to do very little work to translate the data back from the packets
Which protocol would you block on a firewall for blocking tracert
Tracert uses ICMP at the network layer. ICMP should be denied on a firewall to block
tracert.

Which is the protocol used by both traceroute and ping 
ICMP is used by both the protocols at the network layer.

Name one technique which can be used for identifying existing IP addresses on a
LAN network.
NMAP which is a scanning tool can be used to perform a scan on the network which
would display the list of available IP addresses on the network. NMAP arp ping scan
can be used for the same.

Can the username and password sent from a HTTP client be viewed in clear text
on the server.
HTTP does not encrypt data. This would cause the username and password to be
viewed in clear text on the server

Can a FTP server installed on Linux accessed by a FTP client on Windows.
FTP is a TCP/IP protocol. TCP/IP is a vendor neutral protocol. So a FTP client on
Windows can access the FTP server which is installed on Linux

How can the number of TCP connections be viewed on a Windows system.
netstat command can be used for the purpose. The command netstat –p tcp would
display all tcp connections on the system

Explain how access to FTP server on a network can be restricted using a firewall.
An access control list can be configured on the firewall which would block access to
FTP server ports which are TCP port 20 and 21.

How do two computers connected to a switch communicate with each other.
An IP header with the source and destination IP address as IP1 and IP2 is created. PC1 sends an ARP request frame to find the mac-address of PC2. This is required to construct the ethernet frame to encapsulate the IP packet. After the mac-address of PC2 is received, the frame is constructed and the IP packet encapsulated. The frame is sent to the switch and is
received on port on E0. The switch looks into the destination mac-address in the frame,
which is PC2’s mac-address and checks if the entry is available in it’s mac-address table. If yes, the frame is forwarded to the port on which PC2 is connected. If unavailable, the switch floods the frame to all ports. After PC2, receives the frame, it looks into the destination mac-address to check if the frame is intended for itself. Once verified, the destination IP address is verified with it’s own IP address. As it is a match, the ping packet is processed and the response to the ping packet created. The response packet would contain the source IP address as IP2 and the destination IP address as IP1, and a new frame would be created with the source and destination mac-address as PC2 and PC1 respectively.

How do computers connected to two different switches communicate.
PC1 and PC2 are connected to respective ports on the switch. The switches are connected to each other using the E1 ports on the respective switches. When PC1 pings PC2, an ARP request packet is generated, for identifying the mac-address of PC2. The ARP request packet is a broadcast packet, which is broadcasted to all ports on SW1. The ARP packet would be sent through the E1 interface on SW1, reach the E1 interface on SW2 and eventually reach PC2. PC2 would respond with it’s mac-address to PC1. Now on SW2, the mac-address of PC1 is added to the E1 interface on SW2, as it had received the ARP request through the interface, which had the source mac-address as that of PC1. This information would be updated in the cam table of SW1. The ARP reply would be sent out through E1 on
SW2 and E1 on SW1 and eventually would reach PC1. The next time PC1 pings PC2, the cam table of the switch would list the mac-address of PC1 on E1 on SW1. All packets would be sent to E1 on SW1, which would then be forwarded out to SW2

Name two techniques by which a single internet connection can be shared by
multiple users on a LAN.
The requirement can be achieved by the use of NAT router (Network address
translation) or a proxy server.

Name two protocols which are vulnerable to brute force attacks.
Telnet and FTP are two protocols which are vulnerable to brute force attacks.

What is a Routing Table?
Think of a routing table like a map or a set of directions for your computer or router to figure out where to send data on the internet.

Imagine your computer wants to send a message to a friend's computer. It doesn't know exactly where your friend's computer is, but it knows some general areas.

  1. Routing Table Entries: The routing table is like a list of places or neighborhoods your computer knows about. Each entry in the table represents a place your computer can send data to. These places are either specific locations or general areas on the internet.
  2. Destination Addresses: Your computer looks at the address of your friend's computer and compares it to the entries in the routing table. It's like checking if your friend lives in one of the neighborhoods listed.
  3. Next-Hop Directions: When your computer finds a match in the routing table, it also sees directions to the next "stop" on the way to your friend's computer. This next stop is usually a router or gateway device that knows how to get closer to the final destination.
  4. Choosing the Best Route: Your computer picks the routing table entry that matches the most digits in your friend's address. It's like choosing the neighborhood that's the closest match. This is called "longest prefix match."
  5. Sending the Data: Your computer sends the data to the next-hop router/gateway according to the directions in the routing table entry. The router then looks at its own routing table to figure out where to send the data next.

In a nutshell, a routing table is like a list of places your computer knows about on the internet, along with directions on how to get there. It helps your computer make smart decisions about where to send data, even if it doesn't know the exact location of the destination.

A routing table is a data structure used in computer networking to store information about the paths that data packets should take to reach their destination. It is a crucial component of routers and network devices responsible for forwarding data traffic between different networks or subnetworks.

where do we keep routing table details
Routing table details are typically stored in the memory of networking devices like routers and switches. These devices use routing tables to determine how to forward data packets from one network or host to another. Here's where you'll find routing table details:
  1. Router's Memory: Routers are key networking devices responsible for forwarding data between different networks. Each router maintains its own routing table, which is stored in its memory (RAM). This routing table contains information about routes to various destinations, next-hop routers, and associated metrics.
  2. Switches: Layer 3 switches, which can perform routing functions in addition to traditional switching, also have routing tables. These routing tables are stored in the device's memory and are used to make decisions about how to route traffic between different subnets or VLANs.
  3. Operating Systems: In the case of host devices (computers, servers, etc.), routing tables are managed by the operating system. When you run a command like "route print" (Windows) or "netstat -r" (Unix/Linux) in a command prompt or terminal, you can view the routing table for that specific host. These routing tables help the host determine where to send network traffic.
  4. Networking Equipment Configuration: Network administrators configure and manage routing tables on routers and switches. They use various protocols and commands to add, modify, or delete routing table entries. These configurations are often stored in the device's configuration files.
  5. Dynamic Routing Protocols: In many cases, routing tables are not static but dynamically updated based on the network's topology and changes. Dynamic routing protocols (e.g., OSPF, BGP, RIP) enable routers to exchange routing information with their neighboring routers, allowing the tables to adapt to network changes automatically.
  6. Routing Table Cache: Routing devices often maintain a routing table cache to speed up the routing process. This cache stores recently used routing information, allowing routers to make routing decisions more quickly. The cache is kept in memory and is updated as needed.
However, in most cases, routing table information is stored in the device's memory and can be accessed and manipulated through the device's configuration interface or command-line interface.

C:\Users\user1>route print
===========================================================================
Interface List
 16...c8 4b d6 43 62 a1 ......Intel(R) Ethernet Connection (16) I219-LM
  8...3c 21 9c e3 8d 1c ......Microsoft Wi-Fi Direct Virtual Adapter
 18...3e 21 9c e3 8d 1b ......Microsoft Wi-Fi Direct Virtual Adapter #2
  4...3c 21 9c e3 8d 1b ......Intel(R) Wi-Fi 6E AX211 160MHz
 19...3c 21 9c e3 8d 1f ......Bluetooth Device (Personal Area Network)
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1    192.168.0.104     50
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      192.168.0.0    255.255.255.0         On-link     192.168.0.104    306
    192.168.0.104  255.255.255.255         On-link     192.168.0.104    306
    192.168.0.255  255.255.255.255         On-link     192.168.0.104    306
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link     192.168.0.104    306
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link     192.168.0.104    306
===========================================================================
Persistent Routes:
  None

IPv6 Route Table
===========================================================================
Active Routes:
 If Metric Network Destination      Gateway
  1    331 ::1/128                  On-link
  4    306 fe80::7b01:698c:f8c2:a4a5/128
                                    On-link
  1    331 ff00::/8                 On-link
  4    306 ff00::/8                 On-link
===========================================================================
Persistent Routes:
  None

C:\Users\user1>














Thursday, April 15, 2021

SQL for testers

SQL Queries Set 1

1.Display the dept information from department table
select * from dept;

2.Display the details of all employees
select * from emp;

3.Display the name and job for all employees
select ename,job from emp;

4.Display name and salary for all employees
select ename,sal from emp;

5.Display employee number and total salary for each employee
select empno,sal+comm from emp;

6.Display employee name and annual salary for all employees
select empno,ename,12*sal+nvl(comm,0) annualsal from emp;

7.Display the names of all employees who are working in department number 10
select ename from emp where deptno = 10;

8.Display the names of all employees working as clerks and drawing a salary more than 3000
select ename from emp wher job = ‘CLERK’ and sal > 3000;

9.Display employee number and names for employees who earn commission
select empno,ename from emp where comm is not null and comm > 0;

10.Display names of employees who do not earn any commission
select empno,ename from emp where comm is null and comm = 0;

11.Display the names of employees who are working as clerk , salesman or analyst and drawing a salary more than 3000
select ename from emp where (job=’CLERK’ or job=’SALESMAN’ or job=’ANALYST’) and sal>3000;

12.Display the names of employees who are working in the company for the past 5 years
select ename from emp where sysdate – hiredate > 5*365;

13.Display the list of employees who have joined the company before 30 th june 90 or after 31 st dec 90
select * from emp where hiredate between ’30-jun-1990′ and ’31-dec-1990′;

14.Display current date
select sysdate from dual;

15.Display the list of users in your database (using log table)
select * from dba_users;

16.Display the names of all tables from the current user
select * from tab;

17.Display the name of the current user
show user;

18.Display the names of employees working in department number 10 or 20 or 40 or employees working as clerks , salesman or analyst
select ename from emp where deptno in (10,20,40) or job in (‘CLERK’,’SALESMAN’,’ANALYST’);

19.Display the names of employees whose name starts with alphabet S
select ename from emp where ename like ‘S%’;

20.Display employee name from employees whose name ends with alphabet S
select ename from emp where ename like ‘%S’;

21.Display the names of employees whose names have sencond alphabet A in their names
select ename from emp where ename like ‘_S%’;

22.Display the names of employees whose name is exactly five characters in length
select ename from emp where length(ename)=5;
or
select ename from emp where ename like ‘_____’;

23.Display the names of employees who are not working as managers
select * from emp minus (select * from emp where empno in (select mgr from emp));
or
select * from emp where empno not in (select mgr from emp where mgr is not null);
or
select * from emp e where empno not in (select mgr from emp where e.empno=mgr);

24.Display the names of employees who are not working as SALESMAN or CLERK or ANALYST
select job from emp where job not in (‘CLERK’,’ANALYST’,’SALESMAN’);

25.Display all rows from emp table. The system should wait after every screen full of information
set pause on;

26.Display the total number of employees working in the company
select count(*) from emp;

27.Display the total salary and total commission to all employees
select sum(sal), sum(nvl(comm,0)) from emp;

28.Display the maximum salary from emp table
select max(sal) from emp;

29.Display the minimum salary from emp table
select min(sal) from emp;

30.Display the average salary from emp table
select avg(sal) from emp;

31.Display the maximum salary being paid to CLERK
select max(sal) from emp where job=’CLERK’;

32.Display the maximum salary being paid in dept no 20
select max(sal) from emp where deptno=20;

33.Display the minimum salary being paid to any SALESMAN
select min(sal) from emp where job=’SALESMAN’;

34.Display the average salary drawn by managers
select avg(sal) from emp where job=’MANAGER’;

35.Display the total salary drawn by analyst working in dept no 40
select sum(sal)+sum(nvl(comm,0)) from emp where deptno=40;

36.Display the names of employees in order of salary i.e. the name of the employee earning lowest salary shoud appear first
select ename from emp order by sal;

37.Display the names of employees in descending order of salary
select ename from emp order by sal desc;

38.Display the details from emp table in order of emp name
select ename from emp order by ename;

39.Display empnno,ename,deptno and sal. Sort the output first based on name and within name by deptno and witdhin deptno by sal;
select * from emp order by ename,deptno,sal;

40) Display the name of employees along with their annual salary(sal*12).
the name of the employee earning highest annual salary should appear first?
Ans:select ename,sal,sal*12 “Annual Salary” from emp order by “Annual Salary” desc;

41) Display name,salary,Hra,pf,da,TotalSalary for each employee.
The out put should be in the order of total salary ,hra 15% of salary ,DA 10% of salary .pf 5% salary Total Salary
will be (salary+hra+da)-pf?
Ans: select ename,sal SA,sal*0.15 HRA,sal*0.10 DA,sal*5/100 PF, sal+(sal*0.15)+(sal*0.10)-(sal*.05) TOTALSALARY
from emp ORDER BY TOTALSALARY DESC;

42) Display Department numbers and total number of employees working in each Department?
Ans: select deptno,count(*) from tvsemp group by deptno;

43) Display the various jobs and total number of employees working in each job group?
Ans: select job,count(*) from tvsemp group by job;

44)Display department numbers and Total Salary for each Department?
Ans: select deptno,sum(sal) from tvsemp group by deptno;

45)Display department numbers and Maximum Salary from each Department?
Ans: select deptno,max(Sal) from tvsemp group by deptno;

46)Display various jobs and Total Salary for each job?
Ans: select job,sum(sal) from tvsemp group by job;

47)Display each job along with min of salary being paid in each job group?
Ans: select job ,min(sal) from tvsemp group by job;

48) Display the department Number with more than three employees in each department?
Ans: select deptno ,count(*) from tvsemp group by deptno having count(*)>3;

49) Display various jobs along with total salary for each of the job where total salary is greater than 40000?
Ans: select job,sum(sal) from tvsemp group by job having sum(SAl)>40000;

50) Display the various jobs along with total number of employees in each job.The
output should contain only those jobs with more than three employees?
Ans: select job,count(*) from tvsemp group by job having count(*)>3;

51) Display the name of employees who earn Highest Salary?
Ans: select ename, sal from tvsemp where sal>=(select max(sal) from tvsemp );

52) Display the employee Number and name for employee working as clerk and earning highest salary among the clerks?
Ans: select ename,empno from tvsemp where sal=(select max(sal) from tvsemp where job=’CLERK’) and job=’CLERK’ ;

53) Display the names of salesman who earns a salary more than the Highest Salary of the clerk?
Ans: select ename,sal from tvsemp where sal>(select max(sal) from tvsemp where job=’CLERK’) AND job=’SALESMAN’;

54) Display the names of clerks who earn a salary more than the lowest Salary of any salesman?
Ans: select ename,sal from tvsemp where sal>(select min(sal) from tvsemp where job=’SALESMAN’) and job=’CLERK’;

55) Display the names of employees who earn a salary more than that of jones or that of salary greater than that of scott?
Ans: select ename,sal from tvsemp where sal>all(select sal from tvsemp where ename=’JONES’ OR ename=’SCOTT’);

56) Display the names of employees who earn Highest salary in their respective departments?
Ans: select ename,sal,deptno from tvsemp where sal in (select max(sal) from tvsemp group by deptno);

57) Display the names of employees who earn Highest salaries in their respective job Groups?
Ans: select ename,job from tvsemp where sal in (select max(sal) from tvsemp group by job);

58) Display employee names who are working in Accounting department?
Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’ACCOUNTING’;

59) Display the employee names who are Working in Chicago?
Ans: select e.ename,d.loc from emp e,tvsdept d where e.deptno=d.deptno and d.loc=’CHICAGO’;

60) Display the job groups having Total Salary greater than the maximum salary for Managers?
Ans: select job ,sum(sal) from tvsemp group by job having sum(sal) >(select max(sal) from tvsemp where job=’MANAGER’);

61) Display the names of employees from department number 10 with salary greater than that of ANY employee working in other departments?
Ans: select ename,deptno from tvsemp where sal>any(select min(sal) from tvsemp where deptno!=10 group by deptno) and deptno=10 ;

62) Display the names of employees from department number 10 with salary greater than that of ALL employee working in other departments?
Ans: select ename,deptno from tvsemp where sal>all(select max(sal) from tvsemp where deptno!=10 group by deptno) and deptno=10 ;

63) Display the names of mployees in Upper Case?
Ans: select upper(ename) from tvsemp;

64) Display the names of employees in Lower Case?
Ans: select Lower(ename) from tvsemp;

65) Display the names of employees in Proper case?
Ans: select InitCap(ename)from tvsemp;

Q:66) Find the length of your name using Appropriate Function?
Ans: select lentgh(‘RAMA’) from dual;

67) Display the length of all the employee names?
Ans: select length(ename) from tvsemp;

68) Display the name of employee Concatinate with Employee Number?
Ans: select ename||’ ‘||empno from tvsemp;

69) Use appropriate function and extract 3 characters starting from 2 characters from the following string ‘Oracle’ i.e., the out put should be ac?
Ans: select substr(‘Oracle’,3,2) from dual;

70) Find the first occurance of character a from the following string Computer Maintenance Corporation?
Ans: select lstr(‘Computer Maintenance Corporation’,’a’ ) from dual;

71) Replace every occurance of alphabet A with B in the string .Alliens (Use Translate function)?
Ans: select translate(‘Alliens’,’A’,’B’) from Dual;

72) Display the information from the employee table . where ever job Manager is found it should be displayed as Boss?
Ans: select ename ,replace(job,’MANAGER’,’BOSS’) from tvsemp;

73) Display empno,ename,deptno from tvsemp table. Instead of display department numbers
display the related department name(Use decode function)?
Ans: select empno,ename,deptno,Decode(deptno,10,’ACCOUNTING’
,20,’RESEARCH’,30,’SALES’,’OPERATIONS’)DName from tvsemp;

74) Display your Age in Days?
Ans: select sysdate-to_date(’30-jul-1977′) from dual;

75) Display your Age in Months?
Ans: select months_between(sysdate,to_date(’30-jul-1977′)) from dual;

76) Display current date as 15th August Friday Nineteen Nienty Seven?
Ans: select To_char(sysdate,’ddth Month Day year’) from dual;

77) Display the following output for each row from tvsemp table?
Ans: Q:78

78) Scott has joined the company on 13th August ninteen ninety?
Ans: select empno,ename,to_char(Hiredate,’Day ddth Month year’) from tvsemp;

79) Find the nearest Saturday after Current date?
Ans: select next_day(sysdate,’Saturday’) from dual;

80) Display the current time?
Ans: select To_Char(sysdate,’HH:MI:SS’) from dual;

81) Display the date three months before the Current date?
Ans: select Add_months(sysdate,-3) from dual

82) Display the common jobs from department number 10 and 20?
Ans: select job from tvsemp where job in (select job from tvsemp where deptno=20) and deptno=10;

83) Display the jobs found in department 10 and 20 Eliminate duplicate jobs?
Ans: select Distinct job from tvsemp where deptno in(10,20);

84) Display the jobs which are unique to department 10?
Ans: select job from tvsemp where deptno=10;

85) Display the details of those employees who do not have any person working under him?
Ans: select empno,ename,job from tvsemp where empno not in (select mgr from tvsemp where mgr is not null );

86) Display the details of those employees who are in sales department and grade is 3?
Ans: select e.ename,d.dname,grade from emp e,dept d ,salgrade where e.deptno=d.deptno and dname=’SALES’ and grade=3;

87) Display thoes who are not managers?
Ans: select ename from tvsemp where job!=’MANAGER’;

88) Display those employees whose name contains not less than 4 characters?
Ans: select ename from tvsemp where length(ename)>=4

89) Display those department whose name start with”S” while location name ends with “K”?
Ans: select e.ename,d.loc from tvsemp e ,tvsdept d where d.loc like(‘%K’) and ename like(‘S%’)

90) Display those employees whose manager name is Jones?
Ans: select e.ename Superior,e1.ename Subordinate from tvsemp e,e1 where e.empno=e1.mgr and e.ename=’JONES’;

91) Display those employees whose salary is more than 3000 after giving 20% increment?
Ans: select ename,sal,(sal+(sal*0.20)) from tvsemp where (sal+(sal*0.20))>3000;

92) Display all employees with their department names?
Ans: select e.ename,d.dname from tvsemp e, tvsdept d where e.deptno=d.deptno

93) Display ename who are working in sales department?
Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’SALES’;

94) Display employee name,dept name,salary,and commission for those sal in between 2000
to 5000 while location is Chicago?
Ans: Select e.ename,d.dname,e.sal,e.comm from tvsemp e,dept d where e.deptno=d.deptno and sal between 2000 and 5000;

95) Display those employees whose salary is greater than his managers salary?
Ans: Select e.ename,e.sal,e1.ename,e1.sal from tvsemp e,e1 where e.mgr=e1.empno and e.sal>e1.sal;

96) Display those employees who are working in the same dept where his manager is work?
Ans: select e.ename,e.deptno,e1.ename,e1.deptno from tvsemp e,e1 where e.mgr=e1.empno and e.deptno=e1.deptno;

97) Display those employees who are not working under any Manager?
Ans: select ename from tvsemp where mgr is null;

98) Display the grade and employees name for the deptno 10 or 30 but grade is not 4 while
joined the company before 31-DEC-82?
Ans: select ename,grade,deptno,sal from tvsemp ,salgrade where ( grade,sal) in
( select grade,sal from salgrade,tvsemp where sal between losal and hisal)
and grade!=4 and deptno in (10,30) and hiredate<’31-Dec-82

99) Update the salary of each employee by 10% increment who are not eligible for commission?
Ans: update tvsemp set sal= (sal+(sal*0.10)) where comm is null;

100) Delete those employees who joined the company before 31-Dec-82 while their department Location is New York or Chicago?
Ans: select e.ename,e.hiredate,d.loc from tvsemp e,tvsdept d where
e.deptno=d.deptno and hiredate<’31-Dec-82′ and d.loc in(‘NEW YORK’,’CHICAGO’);

Sql Queries2

101) Display employee name ,job,deptname,loc for all who are working as manager?

Ans: select e.ename,e.job,d.dname,d.loc from tvsemp e,tvsdept d where e.deptno=d.deptno

and e.empno in (select mgr from tvsemp where mgr is not null);102) Display those employees whose manager name is jones and also display their manager

name?

Ans: select e.ename sub,e1.ename from tvsemp e,e1 where e.mgr=e1.empno and e1.ename=’JONES’;

103) Display name and salary of ford if his salary is equal to hisal of his grade?

Ans: select ename,grade,hisal,sal from emp,salgrade where ename=’FORD’ and sal=hisal;

OR

select grade,sal,hisal from tvsemp,salgrade where ename=’FORD’ and sal between losal and hisal;

OR

select ename,sal,hisal,grade from tvsemp,salgrade where ename=’FORD’

and (grade,sal) in (select grade,hisal from salgrade,tvsemp where

sal between losal and hisal);


104) Display employee name ,job,deptname,his manager name ,his grade and make an

under department wise?

Ans: select e.ename sub,e1.ename sup,e.job,d.dname ,grade from tvsemp e,e1,salgrade,tvsdept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno group by d.deptno,e.ename,e1.ename,e.job,d.dname,grade;

OR

select e.ename sub,e1.ename sup,e.job,d.dname ,grade from tvsemp e,e1,salgrade,tvsdept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno


105) List out all the employee names ,job,salary,grade and deptname for every one in a company except ‘CLERK’ . Sort on salary display the highest salary?

Ans: select e.ename ,e.job,e.sal,d.dname ,grade from tvsemp e,salgrade,tvsdept d where (e.deptno=d.deptno and e.sal between losal and hisal ) order by e.sal desc


106) Display employee name,job abd his manager .Display also employees who are with out

managers?

Ans: select e.ename ,e1.ename,e.job,e.sal,d.dname from tvsemp e,e1,tvsdept d where e.mgr=e1.empno(+) and e.deptno=d.deptno107) Display Top 5 employee of a Company?

Ans:

108) Display the names of those employees who are getting the highest salary?

Ans: select ename,sal from tvsemp where sal in (select max(sal) from tvsemp)


109) Display those employees whose salary is equal to average of maximum and minimum?

Ans: select * from tvsemp

where sal=(select (max(sal)+min(sal))/2 from tvsemp)


110) Select count of employees in each department where count >3?

Ans: select count(*) from tvsemp group by deptno having count(*)>3


111) Display dname where atleast three are working and display only deptname?

Ans: select d.dname from tvsdept d, tvsemp e where e.deptno=d.deptno group by d.dname having count(*)>3;


112) Display name of those managers name whose salary is more than average salary of

Company?

Ans: select distinct e1.ename,e1.sal from tvsemp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal> (select avg(sal) from tvsemp);


113) Display those managers name whose salary is more than average salary salary of his

employees?

Ans: select distinct e1.ename,e1.sal from tvsemp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal>any (select avg(sal) from tvsemp group by deptno);


114) Display employee name,sal,comm and netpay for those employees whose netpay is

greater than or equal to any other employee salary of the company?

Ans: select ename,sal,NVL(comm,0),sal+NVL(comm,0) from tvsemp where

sal+NVL(comm,0) >any (select e.sal from tvsemp e );


115) Display those employees whose salary is less than his manager but more than salary of

other managers?

Ans: select e.ename sub,e.sal from tvsemp e,e1,tvsdept d where


e.deptno=d.deptno and e.mgr=e1.empno

and e.sal<e1.sal

and e.sal >any (select e2.sal from tvsemp e2, e,tvsdept d1 where

e.mgr=e2.empno and d1.deptno=e.deptno);

116) Display all employees names with total sal of company with each employee name?

Ans:

117) Find the last 5(least) employees of company?

Ans:

118) Find out the number of employees whose salary is greater than their managers salary?

Ans: select e.ename,e.sal,e1.ename,e1.sal from tvsemp e,e1,tvsdept d where e.deptno=d.deptno and e.mgr=e1.empno and e.sal>e1.sal

119) Display the manager who are not working under president but they are working under

any other manager?

Ans: select e2.ename from emp e1,emp e2,emp e3 where e1.mgr=e2.empno and e2.mgr=e3.empno and e3.job!=’PRESIDENT’;

120) Delete those department where no employee working?

Ans: delete from tvsemp where empno is null;

121) Delete those records from emp table whose deptno not available in dept table?

Ans: delete from tvsemp e where e.deptno not in (select deptno from tvsdept)

122) Display those enames whose salary is out of grade available in salgrade table?

Ans: select empno,sal from tvsemp where sal<(select min(LOSAL) from salgrade )

OR sal>(select max(hisal) from salgrade)

123) Display employee name,sal,comm and whose netpay is greater than any othere in the

company?

Ans: select ename,sal,comm,sal+comm from tvsemp where sal+comm>any

(select sal+comm from tvsemp )

124) Display name of those employees who are going to retire 31-Dec-99 if maximum job period

is 30 years?

Ans: select empno, hiredate,sysdate, to_char(sysdate,’yyyy’) – to_char(hiredate,’yyyy’)

from tvsemp where to_char(sysdate,’yyyy’) – to_char(hiredate,’yyyy’)=30

125) Display those employees whose salary is odd value?

Ans: select ename ,sal from tvsemp where mod(sal,2)!=0

126) Display those employees whose salary contains atleast 3 digits?

Ans: select ename,sal from tvsemp where length(sal)=3

127) Display those employees who joined in the company in the month of Dec?

Ans: Select empno,ename from tvsemp where trim(to_char(hiredate,’Mon’))=trim(‘DEC’)

128) Display those employees whose name contains A?

Ans: select ename from tvsemp where ename like(‘%A%’)

129) Display those employees whose deptno is available in salary?

Ans: select ename,sal from tvsemp where deptno in (select distinct sal from tvsemp);

130) Display those employees whose first 2 characters from hiredate – last 2 characters sal?

Ans: select empno,hiredate,sal from tvsemp where trim(substr(hiredate,1,2))=trim(substr(sal,-2,2));

or

select hiredate,sal from tvsemp where to_Char(hiredate,’dd’)=trim(substr(sal,-2,2))

131) Display those employeess whose 10% of salary is equal to the year joining?

Ans: select ename ,sal,0.10*sal from tvsemp where 0.10*sal=trim(to_char(hiredate,’yy’))

132) Display those employees who are working in sales or research?

Ans: select e.ename from tvsemp e ,tvsdept d where e.deptno=d.deptno and d.dname in(‘SALES’,’RESEARCH’);

133) Display the grade of jones?

Ans: select ename,grade from tvsemp,salgrade where ( grade,sal) =

(select grade,sal from salgrade,tvsemp where sal between losal and hisal and ename=’JONES’)

134) Display those employees who joined the company before 15th of the month?

Ans: select ename ,hiredate from tvsemp where hiredate<’15-Jul-02′ and hiredate >=’01-jul-02′;

135) Display those employees who has joined before 15th of the month?

Ans: select ename ,hiredate from tvsemp where hiredate<’15-Jul-02′

136) Delete those records where no of employees in particular department is less than 3?

Ans: delete from tvsemp where deptno in (select deptno from tvsemp group by deptno having count(*) ❤

137A) Delete those employeewho joined the company 10 years back from today?

Ans: delete from tvsemp where empno in (select empno from tvsemp

where to_char(sysdate,’yyyy’)- to_char(hiredate,’yyyy’)>=10)

137B) Display the deptname the number of characters of which is equal to no of employee

in any other department?

Ans:

138) Display the deptname where no employee is working?

Ans: select deptno from tvsemp where empno is null;

139) Display those employees who are working as manager?

Ans: select e2.ename from tvsemp e1,e2 where e1.mgr=e2.empno and e2.empno is not null

140) Count th number of employees who are working as managers (Using set opetrator)?

Ans: select d.dname from tvsdept d where length(d.dname) in (select count(*) from tvsemp e where e.deptno!=d.deptno group by e.deptno)

141) Display the name of the dept those employees who joined the company on the same date?

Ans: select a.ename,b.ename from tvsemp a,tvsemp b where a.hiredate=b.hiredate and a.empno!=b.empno

142) Display those employees whose grade is equal to any number of sal but not equal to first number of sal?

Ans: select ename,sal,grade ,substr(sal,grade,1) from tvsemp,salgrade where

grade!=substr(sal,1,1) and grade = substr(sal,grade,1)

and sal between losal and hisal

143) Count the no of employees working as manager using set operation?

Ans: Select count(empno) from tvsemp where

empno in (select a.empno from tvsemp a

intersect

select b.mgr from tvsemp b)

144) Display the name of employees who joined the company on the same date?

Ans: select a.ename,b.ename from tvsemp a,tvsemp b where a.hiredate=b.hiredate and a.empno!=b.empno;

145) Display the manager who is having maximum number of employees working under him?

Ans: select e2.ename,count(*) from tvsemp e1,e2 where e1.mgr=e2.empno group by e2.ename Having count(*)=(select max(count(*)) from tvsemp e1,e2 where e1.mgr=e2.empno group by e2.ename)

146) List out the employee name and salary increased by 15% and express as whole number of Dollars?

Ans: select ename,sal,lpad(translate(sal,sal,((sal +(sal*0.15))/50)),5,’$’) from tvsemp

147) Produce the output of the emptable “EMPLOYEE_AND JOB” for ename and job ?

Ans: select ename”EMPLOYEE_AND”,job”JOB” FROM TVSEMP;

148) Lust of employees with hiredate in the format of ‘June 4 1988’?

Ans: select ename,to_char(hiredate,’Month dd yyyy’) from tvsemp;

149) print list of employees displaying ‘Just salary’ if more than 1500 if exactly 1500

display ‘on taget’ if less than 1500 display below 1500?

Ans: select ename,sal,

(

case when sal < 1500 then

‘Below_Target’

when sal=1500 then

‘On_Target’

when sal > 1500 then

‘Above_Target’

else

‘kkkkk’

end

)

from tvsemp

150) Which query to calculate the length of time any employee has been with the company

Ans: select hiredate,to_char(hiredate,’ HH:MI:SS’) FROM tvsemp

151) Given a string of the format ‘nn/nn’ . Verify that the first and last 2 characters are numbers .And that the middle character is ‘/’ Print the expressions ‘Yes’ IF valid

‘NO’ of not valid . Use the following values to test your solution’12/54′,01/1a,’99/98′?

Ans:

152) Employes hire on OR Before 15th of any month are paid on the last friday of that month

those hired after 15th are paid the last friday of th following month .print a list of employees .their hiredate and first pay date sort those who se salary contains first

digit of their deptno?

Ans: select ename,hiredate, LAST_DAY ( next_day(hiredate,’Friday’)),

(

case when to_char(hiredate,’dd’) <=(’15’) then

LAST_DAY ( next_day(hiredate,’Friday’))

when to_char(hiredate,’dd’)>(’15’) then

LAST_DAY( next_day(add_months(hiredate,1),’Friday’))

end

)

from tvsemp

153) Display those managers who are getting less than his employees salary?

Ans: select a.empno,a.ename ,a.sal,b.sal,b.empno,b.ename from tvsemp a, tvsemp b where a.mgr=b.empno and a.sal>b.sal

154) Print the details of employees who are subordinates to BLAKE?

Ans: select a.empno,a.ename ,b.ename from tvsemp a, tvsemp b where a.mgr=b.empno

and b.ename=’BLAKE’

151.Display those who working as manager using co related sub query

select * from emp where empno in (select mgr from emp);

152.Display those employees whose manager name is JONES and also with his manager name

select * from emp where mgr=(select empno from emp where ename=’JONES’) union select * from emp where empno =

(select mgr from emp where ename=’JONES’);

153.Define variable representing the expressions used to calculate on employees total annual renumaration

define emp_ann_sal=(sal+nvl(comm,0))*.12;

154.Use the variable in a statement which finds all employees who can earn 30000 a year or more

select * from emp where &emp_ann_sal>30000;

155.Find out how many managers are there with out listing them

select count(*) from emp where empno in (select mgr from emp);

156.Find out the avg sal and avg total remuneration for each job type remember salesman earn commission

select job,avg(sal+nvl(comm,0)),sum(sal+nvl(comm,0)) from emp group by job;

157.Check whether all employees number are indeed unique

select count(empno) ,count(distinct(empno)) from emp having count(empno)=(count(distinct(empno));

158.List out the lowest paid employees working for each manager, exclude any groups where minsal is less than

1000 sort the output by sal

select e.ename,e.mgr,e.sal from emp e where sal in (select min(sal) from emp where mgr=e.mgr) and

e.sal>1000 order by sal;

159.List ename,job,annual sal,depno,dname and grade who earn 30000 per year and who are not clerks

select e.ename,e.job,(e.sal+nvl(e.comm,0))*12,e.deptno,d.dname,s.grade from emp e,salgrade s,dept d

where e.sal between s.losal and s.hisal and e.deptno=d.deptno and (e.sal+nvl(comm,0))*12 > 30000

and e.job<>’CLERK’;

160.Find out th job that was falled in the first half of 1983 and the same job that was falled during the

same period on 1984

161.Find out the all employees who joined the company before their manager

select * from emp e where hiredate <(select hiredate from emp where empno=e.mgr);

162.List out the all employees by name and number along with their manager’s name and number also display

‘NO MANAGER’ who has no manager

select e.empno,e.ename,m.empno Manager,m.ename ManagerName from emp e,emp m where e.mgr=m.empno

union

select empno,ename,mgr,’NO Manager’ from emp where mgr is null;

163.Find out the employees who earned the highest sal in each job typed sort in descending sal order

select * from emp e where sal=(select max(sal) from emp where job=e.job);

164.Find out the employees who earned the min sal for their job in ascending order

select * from emp e where sal=(select min(sal) from emp where job=e.job) order by sal;

165.Find out the most recently hired employees in each dept order by hire date

select * from emp order by deptno,hiredate desc;

166.Display ename,sal and deptno for each employee who earn a sal greater than the avg of their department

order by deptno

select ename,sal,deptno from emp e where sal>(select avg(sal) from emp where deptno=e.deptno) order by deptno;

167.Display the department where there are no employees

select deptno,dname from dept where deptno not in (select distinct(deptno) from emp);

168.Display the dept no with highest annual remuneration bill as compensation

select deptno,sum(sal) from emp group by deptno having sum(sal)=(select max(sum(sal)) from emp group by deptno);

169.In which year did most people join the company. Display the year and number of employees

select count(*),to_char(hiredate,’yyyy’) from emp group by to_char(hiredate,’yyyy’);

170.Display avg sal figure for the dept

select deptno,avg(sal) from emp group by deptno;

171.Write a query of display against the row of the most recently hierd employee.display ename hire date

and column max date showing

select empno,hiredate from emp wher hiredate=(select max(hiredate) from emp);

172.Display employees who can earn more than lowest sal in dept no 30

select * from emp where sal > (select min(sal) from emp where deptno=30);

173.Find employees who can earn more than every employees in dept no 30

select * from emp where sal>(select max(sal) from emp where deptno=30);

select * from emp where sal>all(select sal from emp where deptno=30);

174.select dept name and deptno and sum of sal

break on deptno on dname;

select e.deptno,d.dname,sal from emp e,dept d where e.deptno=d.deptno order by e.deptno;

175.Find out avg sal and avg total remainders for each job type

176.Find all dept’s which have more than 3 employees

select deptno from emp group by deptno having count(*)>3;

177.If the pay day is next Friday after 15th and 30th of every month. What is the next pay day from

their hire date for employee in emp table

178.If an employee is taken by you today in your organization and is a policy in your company to have a

review after 9 months the joined date (and of 1st of next month after 9 months) how many days from today

your employee has to wait for a review

179.Display employee name and his sal whose sal is greater than highest avg of deptno

180.Display the 10 th record of emp table (without using rowid)

181.Display the half of the enames in upper case and remaining lower case

select concat(upper(substr(ename,0,length(ename)/2),lower(substr(ename,length(ename)/2+1,length(ename)))) from

emp;

182.Display the 10th record of emp table without using group by and rowid

183.Delete the 10th record of emp table

184.Create a copy of emp table

create table emp1 as select * from emp;

185.select ename if ename exists more than once

select distinct(ename) from emp e where ename in (select ename from emp where e.empno<>empno);

186.Display all enames in reverse order

select ename from emp order by ename desc;

187.Display those employee whose joining of month and grade is equal

select empno,ename from emp e,salgrade s where e.sal between s.losal and s.hisal and to_char(hiredate,

‘mm’)=grade;

188.Display those employee whose joining date is available in deptno

select * from emp where to_char(hiredate,’dd’) =deptno;

189.Display those employee name as follows A ALLEN, B BLAKE

select substr(ename,1,1)||”||ename from emp;

190.List out the employees ename,sal,pf from emp

select ename,sal,sal*15/100 pf from emp;

191.Display RSPS from emp without using updating,inserting

192.Create table emp with only one column empno

create table emp (empno number(5));

193.Add this column to emp table ename varchar2(20)

alter table emp add ename varchar2(20) not null;

194.OOPSI i forget to give the primary key constraint. Add it now

alter table emp add constraint emp_empno primary key (empno);

195.Now increase the length of ename column to 30 characters

alter table emp modify ename varchar2(30);

196.Add salary column to emp table

alter table emp add sal number(7,2);

197.I want to give a validation saying that sal can not be greater 10000(note give a name to this column)

alter table emp add constraint emp_sal_check check(sal<10000);

198.For the time being i have decided that i will not impose this validation. My boss has agreed to pay

more than 10000

alter table emp disable constraint emp_sal_check;

199.My boss has changed his mind. Now he doesn’t want to pay more than 10000 So revoke that salary constraint

alter table emp enable constraint emp_sal_check;

200.Add column called as mgr to your emp table

alter table emp add mgr number(5);


Sql Queries3

Q:1) Display the name of employees along with their annual salary(sal*12).

the name of the employee earning highest annual salary should appear first?

Ans: select ename,sal,sal*12 “Annual Salary” from emp order by “Annual Salary” desc;Q:2)Display name,salary,Hra,pf,da,TotalSalary for each employee.

The out put should be in the order of total salary ,hra 15% of salary ,

DA 10% of salary .pf 5% salary Total Salary will be (salary+hra+da)-pf?

Ans: select ename,sal SA,sal*0.15 HRA,sal*0.10 DA,sal*5/100 PF,

sal+(sal*0.15)+(sal*0.10)-(sal*.05) TOTALSALARY from emp ORDER BY TOTALSALARY DESC;

Q:3) Display Department numbers and total number of employees working in each Department?

Ans: select deptno,count(*) from emp group by deptno;


Q:4) Display the various jobs and total number of employees working in each job group?

Ans: select job,count(*) from emp group by job;


Q:5) Display department numbers and Total Salary for each Department?

Ans: select deptno,sum(sal) from emp group by deptno;


Q:6) Display department numbers and Maximum Salary from each Department?

Ans: select deptno,max(sal) from emp group by deptno;


Q:7) Display various jobs and Total Salary for each job?

Ans: select job,sum(sal) from emp group by job;


Q:8) Display each job along with min of salary being paid in each job group?

Ans: select job ,min(sal) from emp group by job;


Q:9) Display the department Number with more than three employees in each department?

Ans: select deptno ,count(*) from emp group by deptno having count(*)>3;


Q:10) Display various jobs along with total salary for each of the job

where total salary is greater than 40000?

Ans: select job,sum(sal) from emp group by job having sum(sal)>40000;


Q:11) Display the various jobs along with total number of employees in each job.The output should contain only those jobs with more than three employees?

Ans: select job,count(*) from emp group by job having count(*)>3;


Q:12) Display the name of employee who earn Highest Salary?

Ans: select ename, sal from emp where sal>=(select max(sal) from emp );


Q:13) Display the employee Number and name for employee working as clerk and earning highest salary among the clerks?

Ans: select ename,empno from emp where sal=(select max(sal) from emp where

job=’CLERK’) and job=’CLERK’ ;


Q:14) Display the names of salesman who earns a salary more than the Highest Salary of the Clerk?

Ans: select ename,sal from emp where sal>(select max(sal) from emp

where job=’CLERK’) AND job=’SALESMAN’;


Q:15) Display the names of clerks who earn a salary more than the lowest Salary of any Salesman?

Ans: select ename,sal from emp where sal>(select min(sal) from emp where job=’SALESMAN’) and job=’CLERK’;


Q:16) Display the names of employees who earn a salary more than that of jones or that of salary greater than that of scott?

Ans: select ename,sal from emp where sal>all(select sal from emp where

ename=’JONES’ OR ename=’SCOTT’);


Q:17) Display the names of employees who earn Highest salary in their respective departments?

Ans: select ename,sal,deptno from emp where sal in (select max(sal) from emp group by deptno);


Q:18) Display the names of employees who earn Highest salaries in their respective job Groups?

Ans: select ename,job from emp where sal in (select max(sal) from emp group by job);


Q:19) Display employee names who are working in Accounting department?

Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’ACCOUNTING’;


Q:20) Display the employee names who are Working in Chicago?

Ans: select e.ename,d.loc from emp e,dept d where e.deptno=d.deptno and d.loc=’CHICAGO’;


Q:21) Display the job groups having Total Salary greater than the maximum salary for Managers?

Ans: select job ,sum(sal) from emp group by job having sum(sal) >(select max(sal) from emp where job=’MANAGER’);


Q:22) Display the names of employees from department number 10 with salary greater than that of ANY employee working in other departments?

Ans: select ename,deptno from emp where sal>any(select min(sal) from emp where deptno!=10 group by deptno) and deptno=10 ;


Q:23) Display the names of employees from department number 10 with salary greater than that of ALL employee working in other departments?

Ans: select ename,deptno from emp where sal>all(select max(sal) from emp where deptno!=10 group by deptno) and deptno=10 ;


Q:24) Display the names of employees in Upper Case?

Ans: select upper(ename) from emp;


Q:25) Display the names of employees in Lower Case?

Ans: select Lower(ename) from emp;


Q:26) Display the names of employees in Proper case?

Ans: select InitCap(ename)from emp;


Q:27) Find the length of your name using Appropriate Function?

Ans: select lentgh(‘SRINIVASARAO’) from dual;


Q:28) Display the length of all the employee names?

Ans: select length(ename) from emp;


Q:29) Display the name of employee Concatinate with Employee Number?

Ans: select ename||’ ‘||empno from emp;


Q:30) Use appropriate function and extract 3 characters starting from 2 characters from the following string ‘Oracle’ i.e., the out put should be ac?

Ans: select substr(‘Oracle’,3,2) from dual;


Q:31) Find the first occurance of character a from the following string Computer Maintenance Corporation?

Ans: select lstr(‘Computer Maintenance Corporation’,’a’ ) from dual;


Q:32) Replace every occurance of alphabet A with B in the string .Alliens (Use Translate function)?

Ans: select translate(‘Alliens’,’A’,’B’) from Dual;


Q:33) Display the information from the employee table . where ever job Manager is found it should be displayed as Boss?

Ans: select ename ,replace(job,’MANAGER’,’BOSS’) from emp;


Q:34) Display empno,ename,deptno from emp table. Instead of display department numbers display the related department name(Use decode function)?

Ans: select empno,ename,deptno,Decode(deptno,10,’ACCOUNTING’

,20,’RESEARCH’,30,’SALES’,’OPERATIONS’)DName from emp;


Q:35) Display your Age in Days?

Ans: select sysdate-to_date(’30-jul-1977′) from dual;


Q:36) Display your Age in Months?

Ans: select months_between(sysdate,to_date(’30-jul-1977′)) from dual;


Q:37) Display current date as 15th August Friday Nineteen Nienty Seven?

Ans: select To_char(sysdate,’ddth Month Day year’) from dual;


Q:38) Display the following output for each row from emp table?

Ans: Q:39


Q:39) Scott has joined the company on 13th August ninteen ninety?

Ans: select empno,ename,to_char(Hiredate,’Day ddth Month year’) from emp;


Q:40) Find the nearest Saturday after Current date?

Ans: select next_day(sysdate,’Saturday’) from dual;


Q:41) Display the current time?

Ans: select To_Char(sysdate,’HH:MI:SS’) from dual;


Q:42) Display the date three months before the Current date?

Ans: select Add_months(sysdate,-3) from dual;


Q:43) Display the common jobs from department number 10 and 20?

Ans: select job from emp where job in (select job from emp where deptno=20) and deptno=10;


Q:44) Display the jobs found in department 10 and 20 Eliminate duplicate jobs?

Ans: select Distinct job from emp where deptno in(10,20);


Q:45) Display the jobs which are unique to department 10?

Ans: select job from emp where deptno=10;


Q:46) Display the details of those employees who do not have any person working under him?

Ans: select empno,ename,job from emp where empno not in (select mgr from emp where mgr is not null );


Q:47)Display the details of those employees who are in sales department and grade is 3?

Ans: select e.ename,d.dname,grade from emp e,dept d ,salgrade where e.deptno=d.deptno and dname=’SALES’ and grade=3;


Q:48) Display those who are not managers?

Ans: select ename from emp where job!=’MANAGER’;


Q:49) Display those employees whose name contains not less than 4 characters?

Ans: select ename from emp where length(ename)>=4;


Q:50) Display those department whose name start with”S” while location name ends with “K”?

Ans: select e.ename,d.loc from emp e ,dept d where d.loc like(‘%K’) and ename like(‘S%’);


Q:51) Display those employees whose manager name is Jones?

Ans: select e.ename Superior,e1.ename Subordinate from emp e,e1 where e.empno=e1.mgr and e.ename=’JONES’;


Q:52) Display those employees whose salary is more than 3000 after giving 20% increment?

Ans: select ename,sal,(sal+(sal*0.20)) from emp where (sal+(sal*0.20))>3000;


Q:53) Display all employees with their department names?

Ans: select e.ename,d.dname from emp e, dept d where e.deptno=d.deptno;


Q:54) Display ename who are working in sales department?

Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’SALES’;


Q:56) Display employee name,dept name,salary,and commission for those sal in between 2000 to 5000 while location is Chicago?

Ans: Select e.ename,d.dname,e.sal,e.comm from emp e,dept d where e.deptno=d.deptno and sal between 2000 and 5000;


Q:57) Display those employees whose salary is greater than his managers salary?

Ans: Select e.ename,e.sal,e1.ename,e1.sal from emp e,e1 where e.mgr=e1.empno and e.sal>e1.sal;


Q:58) Display those employees who are working in the same dept where his manager is work?

Ans: select e.ename,e.deptno,e1.ename,e1.deptno from emp e,e1 where e.mgr=e1.empno and e.deptno=e1.deptno;


Q:59) Display those employees who are not working under any Manager?

Ans: select ename from emp where mgr is null;


Q:60) Display the grade and employees name for the deptno 10 or 30 but grade is not 4 while joined the company before 31-DEC-82?

Ans: select ename,grade,deptno,sal from emp ,salgrade where ( grade,sal) in

( select grade,sal from salgrade,emp where sal between losal and hisal)

and grade!=4 and deptno in (10,30) and hiredate<’31-Dec-82′;


Q:61) Update the salary of each employee by 10% increment who are not eligible for commission?

Ans: update emp set sal= (sal+(sal*0.10)) where comm is null;


Q:62) Delete those employees who joined the company before 31-Dec-82 while their department Location is New York or Chicago?

Ans: select e.ename,e.hiredate,d.loc from emp e,dept d where

e.deptno=d.deptno and hiredate<’31-Dec-82′ and d.loc in(‘NEW YORK’,’CHICAGO’);


Q:63) Display employee name ,job,deptname,loc for all who are working as manager?

Ans: select e.ename,e.job,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno

and e.empno in (select mgr from emp where mgr is not null);


Q:64) Display those employees whose manager name is jones and also display their manager name?

Ans: select e.ename sub,e1.ename from emp e,e1 where e.mgr=e1.empno and e1.ename=’JONES’;


Q:65) Display name and salary of ford if his salary is equal to hisal of his grade?

Ans: select ename,grade,hisal,sal from emp,salgrade where ename=’FORD’ and sal=hisal;

OR

select grade,sal,hisal from emp,salgrade where ename=’FORD’ and sal between losal and hisal;

OR

select ename,sal,hisal,grade from emp,salgrade where ename=’FORD’

and (grade,sal) in (select grade,hisal from salgrade,emp where

sal between losal and hisal);


Q66) Display employee name ,job,deptname,his manager name ,his grade and make an under department wise?

Ans: select e.ename sub,e1.ename sup,e.job,d.dname ,grade from emp e,e1,salgrade,dept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno group by d.deptno,e.ename,e1.ename,e.job,d.dname,grade;

OR

select e.ename sub,e1.ename sup,e.job,d.dname ,grade from emp e,e1,salgrade,tvsdept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno;


Q:67) List out all the employee names ,job,salary,grade and deptname for every one in a company except ‘CLERK’ . Sort on salary display the highest salary?

Ans: select e.ename ,e.job,e.sal,d.dname ,grade from emp e,salgrade,dept d where (e.deptno=d.deptno and e.sal between losal and hisal ) order by e.sal desc;


Q:68) Display employee name,job abd his manager .Display also employees who are with out managers?

Ans: select e.ename ,e1.ename,e.job,e.sal,d.dname from emp e,e1,dept d where e.mgr=e1.empno(+) and e.deptno=d.deptno;


Q:69) Display Top 5 employee of a Company?

Ans:


Q:70) Display the names of those employees who are getting the highest salary?

Ans: select ename,sal from emp where sal in (select max(sal) from emp);


Q:71) Display those employees whose salary is equal to average of maximum and minimum?

Ans: select * from emp

where sal=(select (max(sal)+min(sal))/2 from emp);


Q:72) Select count of employees in each department where count >3?

Ans: select count(*) from emp group by deptno having count(*)>3


Q:73) Display dname where atleast three are working and display only deptname?

Ans: select d.dname from dept d, emp e where e.deptno=d.deptno group by d.dname having count(*)>3;


Q:74) Display name of those managers name whose salary is more than average salary of Company?

Ans: select distinct e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal> (select avg(sal) from emp);


Q:75) Display those managers name whose salary is more than average salary salary of his employees?

Ans: select distinct e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal>any (select avg(sal) from emp group by deptno);


Q:76) Display employee name,sal,comm and netpay for those employees whose netpay is greater than or equal to any other employee salary of the company?

Ans: select ename,sal,NVL(comm,0),sal+NVL(comm,0) from emp where

sal+NVL(comm,0) >any (select e.sal from emp e );


Q:77) Display those employees whose salary is less than his manager but more than salary of other managers?

Ans: select e.ename sub,e.sal from emp e,e1,dept d where

e.deptno=d.deptno and e.mgr=e1.empno

and e.sal<e1.sal

and e.sal >any (select e2.sal from emp e2, e,dept d1 where

e.mgr=e2.empno and d1.deptno=e.deptno);


Q:78) Display all employees names with total sal of company with each employee name?

Ans:


Q:79) Find the last 5(least) employees of company?

Ans:


Q:80) Find out the number of employees whose salary is greater than their  managers salary?

Ans: select e.ename,e.sal,e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e.sal>e1.sal;


Q:81) Display the manager who are not working under president but they are working under any other manager?

Ans: select e2.ename from emp e1,emp e2,emp e3 where e1.mgr=e2.empno and e2.mgr=e3.empno and e3.job!=’PRESIDENT’;


Q:82) Delete those department where no employee working?

Ans: delete from emp where empno is null;


Q:83) Delete those records from emp table whose deptno not available in dept table?

Ans: delete from emp e where e.deptno not in (select deptno from dept);


Q:84) Display those enames whose salary is out of grade available in salgrade table?

Ans: select empno,sal from emp where sal<(select min(LOSAL) from salgrade )

OR sal>(select max(hisal) from salgrade);


Q:85) Display employee name,sal,comm and whose netpay is greater than any other in the company?

Ans: select ename,sal,comm,sal+comm from emp where sal+comm>any

(select sal+comm from emp );


Q:86) Display name of those employees who are going to retire 31-Dec-99 if maximum job period is 30 years?

Ans: select empno, hiredate,sysdate, to_char(sysdate,’yyyy’) – to_char(hiredate,’yyyy’)

from emp where to_char(sysdate,’yyyy’) – to_char(hiredate,’yyyy’)=30;


Q:87) Display those employees whose salary is odd value?

Ans: select ename ,sal from emp where mod(sal,2)!=0;


Q:88) Display those employees whose salary contains atleast 3 digits?

Ans: select ename,sal from emp where length(sal)=3;


Q:89) Display those employees who joined in the company in the month of Dec?

Ans: Select empno,ename from emp where trim(to_char(hiredate,’Mon’))=trim(‘DEC’);


Q:90) Display those employees whose name contains A?

Ans: select ename from emp where ename like(‘%A%’);


Q:91) Display those employees whose deptno is available in salary?

Ans: select ename,sal from emp where deptno in (select distinct sal from emp);


Q:92) Display those employees whose first 2 characters from hiredate – last 2 characters sal?

Ans: select empno,hiredate,sal from emp where trim(substr(hiredate,1,2))=trim(substr(sal,-2,2));

or

select hiredate,sal from emp where to_Char(hiredate,’dd’)=trim(substr(sal,-2,2));


Q:93) Display those employeess whose 10% of salary is equal to the year joining?

Ans: select ename ,sal,0.10*sal from emp where 0.10*sal=trim(to_char(hiredate,’yy’));


Q:94) Display those employees who are working in sales or research?

Ans: select e.ename from emp e ,dept d where e.deptno=d.deptno and d.dname in(‘SALES’,’RESEARCH’);


Q:95) Display the grade of jones?

Ans: select ename,grade from emp,salgrade where ( grade,sal) =

(select grade,sal from salgrade,emp where sal between losal and hisal and ename=’JONES’);


Q:96) Display those employees who joined the company before 15th of the month?

Ans: select ename ,hiredate from emp where hiredate<’15-Jul-02′ and hiredate >=’01-jul-02′;


Q:97) Display those employees who has joined before 15th of the month?

Ans: select ename ,hiredate from emp where hiredate<’15-Jul-02′


Q:98) Delete those records where no of employees in particular department is less than 3?

Ans: delete from emp where deptno in (select deptno from emp group by deptno having count(*)  ;


Q:99A) Delete those employeewho joined the company 10 years back from today?

Ans: delete from emp where empno in (select empno from emp

where to_char(sysdate,’yyyy’)- to_char(hiredate,’yyyy’)>=10);


Q:99B) Display the deptname the number of characters of which is equal to no of employee in any other department?

Ans:


Q:100) Display the deptname where no employee is working?

Ans: select deptno from emp where empno is null;


Most Common SQL Commands

SQL statements can be grouped in different categories:

Data Definition Language(DDL) Commands

  • CREATE: creates a new database object, such as a table.
  • ALTER: used to modify the database object
  • DROP: used to delete the objects.

Data Manipulation Language(DML) Commands

  • INSERT: used to insert a new data row record in a table.
  • UPDATE: used to modify an existing record in a table.
  • DELETE: used delete a record from the table.

Data Query Language(DQL) Commands
  • SELECT: it is the DQL command to select data from the database.
Data Control Language(DCL) Commands
  • GRANT: used to assign permission to users to access database objects.
  • REVOKE: used to deny permission to users to access database objects.
Data Transfer Language(DTL) Commands
  • COMMIT: used to save any transaction into the database permanently.
  • ROLLBACK: restores the database to the last committed state.

CREATE DATABASE
The first thing we need to do to work with SQL is to create a database. The CREATE DATABASE statement does exactly that.

Example:

CREATE DATABASE testDB

CREATE TABLE
The CREATE TABLE statement creates a new table in a database.

Example:

CREATE TABLE Employees (
    EmployeeID int,
    FirstName varchar(255),
    LastName varchar(255),
    Department varchar(255)
);

INSERT INTO
The INSERT INTO statement inserts new rows of data into a table

Example:

INSERT INTO Employees (FirstName, LastName, Department)
VALUES ('Sam', 'Burger', 'IT');

SELECT
SELECT is one of the main and most used SQL command. It selects data from a database and returns the table of results, called the result-set.

Example:

SELECT firstName, lastName
FROM Employees;

SELECT *
The SELECT command when used with an asterisk * operator, selects all records from a specified table.

Example:

SELECT * FROM Employees

SELECT DISTINCT
SELECT DISTINCT returns only the data that is distinct; i.e. does not include duplicate entries.

Example:

SELECT DISTINCT Department FROM Employees;

SELECT INTO
The SELECT INTO statement selects specified data from a table and copies it to another table.

Example:

SELECT firstName, entryGraduated INTO StudentAlumni
FROM Students;

SELECT TOP
SELECT TOP specifies the maximum number or percentage of data entries to return in a result-set.

SELECT TOP 50 PERCENT * FROM Customers;

WHERE
The WHERE clause is used to filter results based on a specified condition.

Example:

SELECT * FROM Employees
WHERE department = 'IT';

GROUP BY
The GROUP BY command arranges identical data from different rows into groups, thus creating summarizing rows.

Example:

SELECT COUNT(Department), Department
FROM Employees
GROUP BY Department;

HAVING
The HAVING clause performs the same as the WHERE clause, but the difference is that HAVING only works with aggregate functions. Likewise, WHERE clause doesn’t work with aggregate functions.

Example:

SELECT COUNT(Department), Department
FROM Employees
GROUP BY Department
HAVING COUNT(Department) > 2;

IN
The IN operator includes multiple values into the WHERE clause.

Example:

SELECT * FROM Employees
WHERE Department IN ('IT', 'Graphics', 'Marketing');

BETWEEN
BETWEEN operator filters the results and returns only the ones that fit the specified range.

Example:

SELECT * FROM Employees
WHERE JoiningDate BETWEEN '01-01-2015' AND `01-01-2020`;

AND / OR
The AND and OR are conditional statements. In AND, all conditions must meet a specified criteria. In OR any of the conditions that satisfy a given criteria returns a result.

Example AND:

SELECT * FROM Employees
WHERE Department = 'IT' AND JoiningDate > '01-01-2015';
Example OR:

SELECT * FROM Employees
WHERE Department ='IT' OR Department = 'Graphics';

AS (Alias)
AS works as an alias. With AS, we can rename a column to something more meaningful or shorter in the query, without having to change the name in the database.

Example:

SELECT FirstName AS fname, LastName AS lname
FROM Employees;

INNER JOIN
INNER JOIN combines rows from different tables.

Example:

SELECT Orders.ID, Customers.Name
FROM Orders
INNER JOIN Customers ON Orders.ID = Customers.ID;

LEFT JOIN
LEFT JOIN retrieves records from the left table that match records in the right table.

Example:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;

RIGHT JOIN
Opposite of the LEFT JOIN, the RIGHT JOIN retrieves records from the right table that match records in the left table.

Example:

SELECT Orders.OrderID, Employees.LastName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;

FULL JOIN
FULL JOIN returns all the records that match either in left or right tables.

Example:

SELECT Customers.Name, CustomerOrders.ID
FROM Customers
FULL OUTER JOIN Orders ON Customers.ID = CustomerOrders.customerID
ORDER BY Customers.Name;

DELETE
The DELETE statement removes certain rows from the table that meet a specified condition.

Example:

DELETE FROM Employees
WHERE FirstName = 'Sam' AND LastName = 'Burger';

ALTER TABLE
We use ALTER TABLE to add or remove columns from a table.

Example:

ALTER TABLE Employees
ADD JoiningDate date;

TRUNCATE TABLE
TRUNCATE TABLE removes data entries from a table in a database, but keeps the table structure.

Example:

TRUNCATE TABLE temp_table

DROP TABLE
DROP TABLE statement deletes the whole table with its column parameters and datatype settings.

Example:

DROP TABLE temp_table

DROP DATABASE
DROP DATABASE deletes the whole specified database together with all its parameters and data.

Be extra cautious when using this command.

Example:

DROP DATABASE temp_db


How to use the SQL Drop, Truncate and Delete Statements

The SQL DELETE statement is used to delete records from a table whereas the DROP statement is used to delete a table or a database.

The TRUNCATE TABLE statement can also be used to delete records from a table.

Deleting Records From a Table
The DELETE statement in SQL is used to delete records from a database table. We can remove all records from a table or delete specific records using the WHERE clause.

DELETE FROM table_name
WHERE condition;

SQL DELETE Statement Examples
Let’s assume we have a table called “Employees” with the following records:

+------------+-----------+----------+------------+
| EmployeeID | FirstName | LastName | Department |
+------------+-----------+----------+------------+
| 1          | Mark      | Otto     | Finance    |
| 2          | Jacob     | Thornton | IT         |
| 3          | Su        | Bird     | Marketing  |
| 4          | Sam       | Burger   | IT         |
+------------+-----------+----------+------------+

Delete a Single Record
The following code removes “Jacob Thornton” from the “Employees” table:

DELETE FROM Employees
WHERE FirstName = 'Jacob'
AND LastName = 'Thornton';

Note: In the above example, we use two conditions, WHERE and AND, i.e. by first name and last name. This is to ensure we delete the correct record, in case there is another employee with the same first name.

Delete All Records From a Table
The following code deletes all records from the “Employees” table:

DELETE * FROM Employees;
Note: The DELETE statement removes the records from a table, but does not delete the table itself.

SQL TRUNCATE TABLE Statement
The TRUNCATE TABLE statement can also be used to delete records from a table, but not the table instead.

Example:

TRUNCATE TABLE table_name;


SQL Drop Statement
The DROP statement in SQL is used to delete a table or a database.

How to Drop a Table in SQL
The following code drops a table called “Employees”:

DROP TABLE "Employees";
Note: Take extra care when using the DROP statement. When dropping a table, it will delete all records inside the table as well.


How to Drop a Database in SQL
The following code drops a database called “EmployeesDB”:

DROP DATABASE "EmployeesDB";
Note: Take extra care when using the DROP statement. When dropping a database, it will delete all tables inside the database.


SQL Queries Set 4

Q:1) Display the name of employees along with their annual salary(sal*12). the name of the employee earning highest annual salary should appear first?
Ans: select ename,sal,sal*12 “Annual Salary” from emp order by “Annual Salary” desc;Q:2)Display name,salary,Hra,pf,da,TotalSalary for each employee. The out put should be in the order of total salary ,hra 15% of salary , DA 10% of salary .pf 5% salary Total Salary will be (salary+hra+da)-pf?
Ans: select ename,sal SA,sal*0.15 HRA,sal*0.10 DA,sal*5/100 PF,sal+(sal*0.15)+(sal*0.10)-(sal*.05) TOTALSALARY from emp ORDER BY TOTALSALARY DESC;
Q:3) Display Department numbers and total number of employees working in each Department?
Ans: select deptno,count(*) from emp group by deptno;

Q:4) Display the various jobs and total number of employees working in each job group?
Ans: select job,count(*) from emp group by job;

Q:5) Display department numbers and Total Salary for each Department?
Ans: select deptno,sum(sal) from emp group by deptno;

Q:6) Display department numbers and Maximum Salary from each Department?
Ans: select deptno,max(sal) from emp group by deptno;

Q:7) Display various jobs and Total Salary for each job?
Ans: select job,sum(sal) from emp group by job;

Q:8) Display each job along with min of salary being paid in each job group?

Q:9) Display the department Number with more than three employees in each department?
Ans: select deptno ,count(*) from emp group by deptno having count(*)>3;

Q:10) Display various jobs along with total salary for each of the job
where total salary is greater than 40000?
Ans: select job,sum(sal) from emp group by job having sum(sal)>40000;

Q:11) Display the various jobs along with total number of employees in each job.The output should contain only those jobs with more than three employees?
Ans: select job,count(*) from emp group by job having count(*)>3;

Q:12) Display the name of employee who earn Highest Salary?
Ans: select ename, sal from emp where sal>=(select max(sal) from emp );

Q:13) Display the employee Number and name for employee working as clerk and earning highest salary among the clerks?

Ans: select ename,empno from emp where sal=(select max(sal) from emp where
job=’CLERK’) and job=’CLERK’ ;

Q:14) Display the names of salesman who earns a salary more than the Highest Salary of the Clerk?
Ans: select ename,sal from emp where sal>(select max(sal) from emp
where job=’CLERK’) AND job=’SALESMAN’;

Q:15) Display the names of clerks who earn a salary more than the lowest Salary of any Salesman?
Ans: select ename,sal from emp where sal>(select min(sal) from emp where job=’SALESMAN’) and job=’CLERK’;

Q:16) Display the names of employees who earn a salary more than that of jones or that of salary greater than that of scott?
Ans: select ename,sal from emp where sal>all(select sal from emp where
ename=’JONES’ OR ename=’SCOTT’);

Q:17) Display the names of employees who earn Highest salary in their respective departments?
Ans: select ename,sal,deptno from emp where sal in (select max(sal) from emp group by deptno);

Q:18) Display the names of employees who earn Highest salaries in their respective job Groups?
Ans: select ename,job from emp where sal in (select max(sal) from emp group by job);

Q:19) Display employee names who are working in Accounting department?
Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’ACCOUNTING’;

Q:20) Display the employee names who are Working in Chicago?
Ans: select e.ename,d.loc from emp e,dept d where e.deptno=d.deptno and d.loc=’CHICAGO’;

Q:21) Display the job groups having Total Salary greater than the maximum salary for Managers?
Ans: select job ,sum(sal) from emp group by job having sum(sal) >(select max(sal) from emp where job=’MANAGER’);

Q:22) Display the names of employees from department number 10 with salary greater than that of ANY employee working in other departments?
Ans: select ename,deptno from emp where sal>any(select min(sal) from emp where deptno!=10 group by deptno) and deptno=10 ;

Q:23) Display the names of employees from department number 10 with salary greater than that of ALL employee working in other departments?
Ans: select ename,deptno from emp where sal>all(select max(sal) from emp where deptno!=10 group by deptno) and deptno=10 ;

Q:24) Display the names of employees in Upper Case?
Ans: select upper(ename) from emp;

Q:25) Display the names of employees in Lower Case?
Ans: select Lower(ename) from emp;

Q:26) Display the names of employees in Proper case?
Ans: select InitCap(ename)from emp;

Q:27) Find the length of your name using Appropriate Function?
Ans: select lentgh(‘SRINIVASARAO’) from dual;

Q:28) Display the length of all the employee names?
Ans: select length(ename) from emp;

Q:29) Display the name of employee Concatinate with Employee Number?
Ans: select ename||’ ‘||empno from emp;

Q:30) Use appropriate function and extract 3 characters starting from 2 characters from the following string ‘Oracle’ i.e., the out put should be ac?
Ans: select substr(‘Oracle’,3,2) from dual;

Q:31) Find the first occurance of character a from the following string Computer Maintenance Corporation?
Ans: select lstr(‘Computer Maintenance Corporation’,’a’ ) from dual;

Q:32) Replace every occurance of alphabet A with B in the string .Alliens (Use Translate function)?
Ans: select translate(‘Alliens’,’A’,’B’) from Dual;

Q:33) Display the information from the employee table . where ever job Manager is found it should be displayed as Boss?
Ans: select ename ,replace(job,’MANAGER’,’BOSS’) from emp;

Q:34) Display empno,ename,deptno from emp table. Instead of display department numbers display the related department name(Use decode function)?
Ans: select empno,ename,deptno,Decode(deptno,10,’ACCOUNTING’

,20,’RESEARCH’,30,’SALES’,’OPERATIONS’)DName from emp;

Q:35) Display your Age in Days?
Ans: select sysdate-to_date(’30-jul-1977′) from dual;

Q:36) Display your Age in Months?
Ans: select months_between(sysdate,to_date(’30-jul-1977′)) from dual;

Q:37) Display current date as 15th August Friday Nineteen Nienty Seven?
Ans: select To_char(sysdate,’ddth Month Day year’) from dual;

Q:38) Display the following output for each row from emp table?
Ans: Q:39

Q:39) Scott has joined the company on 13th August ninteen ninety?
Ans: select empno,ename,to_char(Hiredate,’Day ddth Month year’) from emp;

Q:40) Find the nearest Saturday after Current date?
Ans: select next_day(sysdate,’Saturday’) from dual;

Q:41) Display the current time?
Ans: select To_Char(sysdate,’HH:MI:SS’) from dual;

Q:42) Display the date three months before the Current date?
Ans: select Add_months(sysdate,-3) from dual;

Q:43) Display the common jobs from department number 10 and 20?
Ans: select job from emp where job in (select job from emp where deptno=20) and deptno=10;

Q:44) Display the jobs found in department 10 and 20 Eliminate duplicate jobs?
Ans: select Distinct job from emp where deptno in(10,20);

Q:45) Display the jobs which are unique to department 10?
Ans: select job from emp where deptno=10;

Q:46) Display the details of those employees who do not have any person working under him?
Ans: select empno,ename,job from emp where empno not in (select mgr from emp where mgr is not null );

Q:47)Display the details of those employees who are in sales department and grade is 3?
Ans: select e.ename,d.dname,grade from emp e,dept d ,salgrade where e.deptno=d.deptno and dname=’SALES’ and grade=3;

Q:48) Display those who are not managers?
Ans: select ename from emp where job!=’MANAGER’;

Q:49) Display those employees whose name contains not less than 4 characters?
Ans: select ename from emp where length(ename)>=4;

Q:50) Display those department whose name start with”S” while location name ends with “K”?
Ans: select e.ename,d.loc from emp e ,dept d where d.loc like(‘%K’) and ename like(‘S%’);

Q:51) Display those employees whose manager name is Jones?
Ans: select e.ename Superior,e1.ename Subordinate from emp e,e1 where e.empno=e1.mgr and e.ename=’JONES’;

Q:52) Display those employees whose salary is more than 3000 after giving 20% increment?
Ans: select ename,sal,(sal+(sal*0.20)) from emp where (sal+(sal*0.20))>3000;

Q:53) Display all employees with their department names?
Ans: select e.ename,d.dname from emp e, dept d where e.deptno=d.deptno;

Q:54) Display ename who are working in sales department?
Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’SALES’;

Q:56) Display employee name,dept name,salary,and commission for those sal in between 2000 to 5000 while location is Chicago?
Ans: Select e.ename,d.dname,e.sal,e.comm from emp e,dept d where e.deptno=d.deptno and sal between 2000 and 5000;

Q:57) Display those employees whose salary is greater than his managers salary?
Ans: Select e.ename,e.sal,e1.ename,e1.sal from emp e,e1 where e.mgr=e1.empno and e.sal>e1.sal;

Q:58) Display those employees who are working in the same dept where his manager is work?
Ans: select e.ename,e.deptno,e1.ename,e1.deptno from emp e,e1 where e.mgr=e1.empno and e.deptno=e1.deptno;

Q:59) Display those employees who are not working under any Manager?
Ans: select ename from emp where mgr is null;

Q:60) Display the grade and employees name for the deptno 10 or 30 but grade is not 4 while joined the company before 31-DEC-82?
Ans: select ename,grade,deptno,sal from emp ,salgrade where ( grade,sal) in
( select grade,sal from salgrade,emp where sal between losal and hisal)
and grade!=4 and deptno in (10,30) and hiredate<’31-Dec-82′;

Q:61) Update the salary of each employee by 10% increment who are not eligible for commission?
Ans: update emp set sal= (sal+(sal*0.10)) where comm is null;

Q:62) Delete those employees who joined the company before 31-Dec-82 while their department Location is New York or Chicago?
Ans: select e.ename,e.hiredate,d.loc from emp e,dept d where
e.deptno=d.deptno and hiredate<’31-Dec-82′ and d.loc in(‘NEW YORK’,’CHICAGO’);

Q:63) Display employee name ,job,deptname,loc for all who are working as manager?
Ans: select e.ename,e.job,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno
and e.empno in (select mgr from emp where mgr is not null);

Q:64) Display those employees whose manager name is jones and also display their manager name?
Ans: select e.ename sub,e1.ename from emp e,e1 where e.mgr=e1.empno and e1.ename=’JONES’;

Q:65) Display name and salary of ford if his salary is equal to hisal of his grade?
Ans: select ename,grade,hisal,sal from emp,salgrade where ename=’FORD’ and sal=hisal;
OR
select grade,sal,hisal from emp,salgrade where ename=’FORD’ and sal between losal and hisal;
OR
select ename,sal,hisal,grade from emp,salgrade where ename=’FORD’
and (grade,sal) in (select grade,hisal from salgrade,emp where
sal between losal and hisal);

Q66) Display employee name ,job,deptname,his manager name ,his grade and make an under department wise?
Ans: select e.ename sub,e1.ename sup,e.job,d.dname ,grade from emp e,e1,salgrade,dept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno group by d.deptno,e.ename,e1.ename,e.job,d.dname,grade;
OR
select e.ename sub,e1.ename sup,e.job,d.dname ,grade from emp e,e1,salgrade,tvsdept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno;

Q:67) List out all the employee names ,job,salary,grade and deptname for every one in a company except ‘CLERK’ . Sort on salary display the highest salary?
Ans: select e.ename ,e.job,e.sal,d.dname ,grade from emp e,salgrade,dept d where (e.deptno=d.deptno and e.sal between losal and hisal ) order by e.sal desc;

Q:68) Display employee name,job abd his manager .Display also employees who are with out managers?
Ans: select e.ename ,e1.ename,e.job,e.sal,d.dname from emp e,e1,dept d where e.mgr=e1.empno(+) and e.deptno=d.deptno;

Q:69) Display Top 5 employee of a Company?
Ans:

Q:70) Display the names of those employees who are getting the highest salary?
Ans: select ename,sal from emp where sal in (select max(sal) from emp);

Q:71) Display those employees who are working as manager?
Ans: select e2.ename from emp e1,e2 where e1.mgr=e2.empno and e2.empno is not null;

Q:72) Count th number of employees who are working as managers (Using set opetrator)?
Ans: select d.dname from dept d where length(d.dname) in (select count(*) from emp e where e.deptno!=d.deptno group by e.deptno);

Q:73) Display the name of the dept those employees who joined the company on the same date?
Ans: select a.ename,b.ename from emp a,emp b where a.hiredate=b.hiredate and a.empno!=b.empno;

Q:74) Display those employees whose grade is equal to any number of sal but not equal to first number of sal?
Ans: select ename,sal,grade ,substr(sal,grade,1) from emp,salgrade where
grade!=substr(sal,1,1) and grade = substr(sal,grade,1)
and sal between losal and hisal;

Q:75) Count the no of employees working as manager using set operation?
Ans: Select count(empno) from emp where
empno in (select a.empno from emp a
intersect
select b.mgr from emp b);

Q:76) Display the name of employees who joined the company on the same date?
Ans: select a.ename,b.ename from emp a,emp b where a.hiredate=b.hiredate and a.empno!=b.empno;

Q:77) Display the manager who is having maximum number of employees working under him?
Ans: select e2.ename,count(*) from emp e1,e2 where e1.mgr=e2.empno group by e2.ename Having count(*)=(select max(count(*)) from emp e1,e2 where e1.mgr=e2.empno group by e2.ename);

Q:78) List out the employee name and salary increased by 15% and express as whole number of Dollars?
Ans: select ename,sal,lpad(translate(sal,sal,((sal +(sal*0.15))/50)),5,’$’) from emp;

Q:79) Produce the output of the emptable “EMPLOYEE_AND JOB” for ename and job ?
Ans: select ename”EMPLOYEE_AND”,job”JOB” FROM EMP;

Q:80) Lust of employees with hiredate in the format of ‘June 4 1988′?
Ans: select ename,to_char(hiredate,’Month dd yyyy’) from emp;

Q:81) print list of employees displaying ‘Just salary’ if more than 1500 if exactly 1500 display ‘on taget’ if less than 1500 display below 1500?
Ans: select ename,sal,
(
case when sal < 1500 then
‘Below_Target’
when sal=1500 then
‘On_Target’
when sal > 1500 then
‘Above_Target’
else
‘kkkkk’
end
)
from emp;

Q:82) Which query to calculate the length of time any employee has been with the company
Ans: select hiredate,to_char(hiredate,’ HH:MI:SS’) FROM emp;

Q:83) Given a string of the format ‘nn/nn’ . Verify that the first and last 2 characters are numbers .And that the middle character is ‘/’ Print the expressions ‘Yes’ IF valid ‘NO’ of not valid . Use the following values to test your solution’12/54′,01/1a,’99/98′?
Ans:

Q:84) Employes hire on OR Before 15th of any month are paid on the last friday of that month those hired after 15th are paid the last friday of th following month .print a list of employees .their hiredate and first pay date sort those who se salary contains first digit of their deptno?
Ans: select ename,hiredate, LAST_DAY ( next_day(hiredate,’Friday’)),
(
case when to_char(hiredate,’dd’) <=(’15’) then
LAST_DAY ( next_day(hiredate,’Friday’))
when to_char(hiredate,’dd’)>(’15’) then
LAST_DAY( next_day(add_months(hiredate,1),’Friday’))
end
)
from emp;

Q:85) Display those managers who are getting less than his employees salary?
Ans: select a.empno,a.ename ,a.sal,b.sal,b.empno,b.ename from emp a, emp b where a.mgr=b.empno and a.sal>b.sal;

Q:86) Print the details of employees who are subordinates to BLAKE?
Ans: select a.empno,a.ename ,b.ename from emp a, emp b where a.mgr=b.empno
and b.ename=’BLAKE’;

Q:87) Display those employees whose salary is equal to average of maximum and minimum?
Ans: select * from emp
where sal=(select (max(sal)+min(sal))/2 from emp);

Q:89) Select count of employees in each department where count >3?
Ans: select count(*) from emp group by deptno having count(*)>3

Q:90) Display dname where atleast three are working and display only deptname?
Ans: select d.dname from dept d, emp e where e.deptno=d.deptno group by d.dname having count(*)>3;

Q:91) Display name of those managers name whose salary is more than average salary of Company?
Ans: select distinct e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal> (select avg(sal) from emp);

Q:92) Display those managers name whose salary is more than average salary salary of his employees?
Ans: select distinct e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal>any (select avg(sal) from emp group by deptno);

Q:93) Display employee name,sal,comm and netpay for those employees whose netpay is greater than or equal to any other employee salary of the company?
Ans: select ename,sal,NVL(comm,0),sal+NVL(comm,0) from emp where
sal+NVL(comm,0) >any (select e.sal from emp e );

Q:94) Display those employees whose salary is less than his manager but more than salary of other managers?
Ans: select e.ename sub,e.sal from emp e,e1,dept d where
e.deptno=d.deptno and e.mgr=e1.empno
and e.sal<e1.sal
and e.sal >any (select e2.sal from emp e2, e,dept d1 where
e.mgr=e2.empno and d1.deptno=e.deptno);

Q:95) Display all employees names with total sal of company with each employee name?
Ans:

Q:96) Find the last 5(least) employees of company?
Ans:

Q:97) Find out the number of employees whose salary is greater than their managers salary?
Ans: select e.ename,e.sal,e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e.sal>e1.sal;

Q:98) Display the manager who are not working under president but they are working under any other manager?
Ans: select e2.ename from emp e1,emp e2,emp e3 where e1.mgr=e2.empno and e2.mgr=e3.empno and e3.job!=’PRESIDENT’;

Q:99) Delete those department where no employee working?
Ans: delete from emp where empno is null;

Q:100) Delete those records from emp table whose deptno not available in dept table?
Ans: delete from emp e where e.deptno not in (select deptno from dept);

SQL Queries Set 5

Q:1) Display those enames whose salary is out of grade available in salgrade table?
Ans: select empno,sal from emp where sal<(select min(LOSAL) from salgrade )
OR sal>(select max(hisal) from salgrade);Q:2) Display employee name,sal,comm and whose netpay is greater than any other in the company?
Ans: select ename,sal,comm,sal+comm from emp where sal+comm>any
(select sal+comm from emp );

Q:3) Display name of those employees who are going to retire 31-Dec-99 if maximum job period is 30 years?
Ans: select empno, hiredate,sysdate, to_char(sysdate,’yyyy’) -to_char(hiredate,’yyyy’) from emp where to_char(sysdate,’yyyy’) – to_char(hiredate,’yyyy’)=30;

Q:4) Display those employees whose salary is odd value?
Ans: select ename ,sal from emp where mod(sal,2)!=0;

Q:5) Display those employees whose salary contains atleast 3 digits?
Ans: select ename,sal from emp where length(sal)=3;

Q:6) Display those employees who joined in the company in the month of Dec?
Ans: Select empno,ename from emp where trim(to_char(hiredate,’Mon’))=trim(‘DEC’);

Q:7) Display those employees whose name contains A?
Ans: select ename from emp where ename like(‘%A%’);

Q:8) Display those employees whose deptno is available in salary?
Ans: select ename,sal from emp where deptno in (select distinct sal from emp);

Q:9) Display those employees whose first 2 characters from hiredate – last 2 characters sal?
Ans: select empno,hiredate,sal from emp where trim(substr(hiredate,1,2))=trim(substr(sal,-2,2));
or
select hiredate,sal from emp where to_Char(hiredate,’dd’)=trim(substr(sal,-2,2));

Q:10) Display those employeess whose 10% of salary is equal to the year joining?
Ans: select ename ,sal,0.10*sal from emp where 0.10*sal=trim(to_char(hiredate,’yy’));

Q:11) Display those employees who are working in sales or research?
Ans: select e.ename from emp e ,dept d where e.deptno=d.deptno and d.dname in(‘SALES’,’RESEARCH’);

Q:12) Display the grade of jones?
Ans: select ename,grade from emp,salgrade where ( grade,sal) =
(select grade,sal from salgrade,emp where sal between losal and hisal and ename=’JONES’);

Q:13) Display those employees who joined the company before 15th of the month?
Ans: select ename ,hiredate from emp where hiredate<’15-Jul-02′ and hiredate >=’01-jul-02′;

Q:14) Display those employees who has joined before 15th of the month?
Ans: select ename ,hiredate from emp where hiredate<’15-Jul-02′

Q:15) Delete those records where no of employees in particular department is less than 3?
Ans: delete from emp where deptno in (select deptno from emp group by deptno having count(*)  ;

Q:16) Delete those employeewho joined the company 10 years back from today?
Ans: delete from emp where empno in (select empno from emp
where to_char(sysdate,’yyyy’)- to_char(hiredate,’yyyy’)>=10);

Q:16B) Display the deptname the number of characters of which is equal to no of employee in any other department?
Ans:

Q:17) Display the deptname where no employee is working?
Ans: select deptno from emp where empno is null;

Q:18) Display those employees who are working as manager?
Ans: select e2.ename from emp e1,e2 where e1.mgr=e2.empno and e2.empno is not null;

Q:19) Count th number of employees who are working as managers (Using set opetrator)?
Ans: select d.dname from dept d where length(d.dname) in (select count(*) from emp e where e.deptno!=d.deptno group by e.deptno);

Q:20) Display the name of the dept those employees who joined the company on the same date?
Ans: select a.ename,b.ename from emp a,emp b where a.hiredate=b.hiredate and a.empno!=b.empno;

Q:21) Display those employees whose grade is equal to any number of sal but not equal to first number of sal?
Ans: select ename,sal,grade ,substr(sal,grade,1) from emp,salgrade where
grade!=substr(sal,1,1) and grade = substr(sal,grade,1)
and sal between losal and hisal;

Q:22) Count the no of employees working as manager using set operation?
Ans: Select count(empno) from emp where
empno in (select a.empno from emp a
intersect
select b.mgr from emp b);

Q:23) Display the name of employees who joined the company on the same date?
Ans: select a.ename,b.ename from emp a,emp b where a.hiredate=b.hiredate and a.empno!=b.empno;

Q:24) Display the manager who is having maximum number of employees working under him?
Ans: select e2.ename,count(*) from emp e1,e2 where e1.mgr=e2.empno group by e2.ename Having count(*)=(select max(count(*)) from emp e1,e2 where e1.mgr=e2.empno group by e2.ename);

Q:25) List out the employee name and salary increased by 15% and express as whole number of Dollars?
Ans: select ename,sal,lpad(translate(sal,sal,((sal +(sal*0.15))/50)),5,’$’) from emp;

Q:26) Produce the output of the emptable “EMPLOYEE_AND JOB” for ename and job ?
Ans: select ename”EMPLOYEE_AND”,job”JOB” FROM EMP;

Q:27) Lust of employees with hiredate in the format of ‘June 4 1988′?
Ans: select ename,to_char(hiredate,’Month dd yyyy’) from emp;

Q:28) print list of employees displaying ‘Just salary’ if more than 1500 if exactly 1500 display ‘on taget’ if less than 1500 display below 1500?
Ans: select ename,sal,
(
case when sal < 1500 then
‘Below_Target’
when sal=1500 then
‘On_Target’
when sal > 1500 then
‘Above_Target’
else
‘kkkkk’
end
)
from emp;

Q:29) Which query to calculate the length of time any employee has been with the company
Ans: select hiredate,to_char(hiredate,’ HH:MI:SS’) FROM emp;

Q:30) Given a string of the format ‘nn/nn’ . Verify that the first and last 2 characters are numbers .And that the middle character is ‘/’ Print the expressions ‘Yes’ IF valid ‘NO’ of not valid . Use the following values to test your solution’12/54′,01/1a,’99/98′?
Ans:

Q:31) Employes hire on OR Before 15th of any month are paid on the last friday of that month those hired after 15th are paid the last friday of th following month .print a list of employees .their hiredate and first pay date sort those who se salary contains first digit of their deptno?
Ans: select ename,hiredate, LAST_DAY ( next_day(hiredate,’Friday’)),
(
case when to_char(hiredate,’dd’) <=(’15’) then
LAST_DAY ( next_day(hiredate,’Friday’))
when to_char(hiredate,’dd’)>(’15’) then
LAST_DAY( next_day(add_months(hiredate,1),’Friday’))
end
)
from emp;

Q:32) Display those managers who are getting less than his employees salary?
Ans: select a.empno,a.ename ,a.sal,b.sal,b.empno,b.ename from emp a, emp b where a.mgr=b.empno and a.sal>b.sal;

Q:33) Print the details of employees who are subordinates to BLAKE?
Ans: select a.empno,a.ename ,b.ename from emp a, emp b where a.mgr=b.empno
and b.ename=’BLAKE



******************************************************************************

What is DBMS ?
The database management system is a collection of programs that enables user to store, retrieve, update and delete information from a database.

2. What is RDBMS ?
Relational Database Management system (RDBMS) is a database management system (DBMS) that is based on the relational model. Data from relational database can be accessed or reassembled in many different ways without having to reorganize the database tables. Data from relational database can be accessed using an API , Structured Query Language (SQL).

3. What is SQL ?

Structured Query Language(SQL) is a language designed specifically for communicating with databases. SQL is an ANSI (American National Standards Institute) standard.

4. What are the different type of SQL’s statements ?

This is one of the most frequently asked SQL Interview Questions for freshers. SQL statements are broadly classified into three. They are
1. DDL – Data Definition Language
DDL is used to define the structure that holds the data. For example, Create, Alter, Drop and Truncate table.

2. DML– Data Manipulation Language
DML is used for manipulation of the data itself. Typical operations are Insert, Delete, Update and retrieving the data from the table. The Select statement is considered as a limited version of the DML, since it can’t change the data in the database. But it can perform operations on data retrieved from the DBMS, before the results are returned to the calling function.

3. DCL– Data Control Language
DCL is used to control the visibility of data like granting database access and set privileges to create tables, etc. Example – Grant, Revoke access permission to the user to access data in the database.

5. What are the Advantages of SQL ?

1. SQL is not a proprietary language used by specific database vendors. Almost every major DBMS supports SQL, so learning this one language will enable programmers to interact with any database like ORACLE, SQL ,MYSQL etc.

2. SQL is easy to learn. The statements are all made up of descriptive English words, and there aren’t that many of them.

3. SQL is actually a very powerful language and by using its language elements you can perform very complex and sophisticated database operations.

6. what is a field in a database ?

A field is an area within a record reserved for a specific piece of data.
Examples: Employee Name, Employee ID, etc.
Must Read – Top 100+ SQL Query Interview Questions and Answers and SQL Tutorial
7. What is a Record in a database ?

A record is the collection of values / fields of a specific entity: i.e. an Employee, Salary etc.
8. What is a Table in a database ?

A table is a collection of records of a specific type. For example, employee table, salary table etc.

9. What is a database transaction?

Database transaction takes database from one consistent state to another. At the end of the transaction the system must be in the prior state if the transaction fails or the status of the system should reflect the successful completion if the transaction goes through.

10. What are properties of a transaction?
Expect this SQL Interview Questions as a part of an any interview, irrespective of your experience. Properties of the transaction can be summarized as ACID Properties.
1. Atomicity
A transaction consists of many steps. When all the steps in a transaction get completed, it will get reflected in DB or if any step fails, all the transactions are rolled back.

2. Consistency
The database will move from one consistent state to another, if the transaction succeeds and remain in the original state, if the transaction fails.

3. Isolation
Every transaction should operate as if it is the only transaction in the system.

4. Durability
Once a transaction has completed successfully, the updated rows/records must be available for all other transactions on a permanent basis.

11. What is a Database Lock ?

Database lock tells a transaction, if the data item in questions is currently being used by other transactions.
12. What are the type of locks ?

1. Shared Lock
When a shared lock is applied on data item, other transactions can only read the item, but can’t write into it.

2. Exclusive Lock
When an exclusive lock is applied on data item, other transactions can’t read or write into the data item.
Database Normalization Interview Questions

13. What are the different type of normalization?

In database design, we start with one single table, with all possible columns. A lot of redundant data would be present since it’s a single table. The process of removing the redundant data, by splitting up the table in a well defined fashion is called normalization.

1. First Normal Form (1NF)
A relation is said to be in first normal form if and only if all underlying domains contain atomic values only. After 1NF, we can still have redundant data.

2. Second Normal Form (2NF)
A relation is said to be in 2NF if and only if it is in 1NF and every non key attribute is fully dependent on the primary key. After 2NF, we can still have redundant data.

3. Third Normal Form (3NF)
A relation is said to be in 3NF, if and only if it is in 2NF and every non key attribute is non-transitively dependent on the primary key.
Database Keys and Constraints SQL Interview Questions

14. What is a primary key?

A primary key is a column whose values uniquely identify every row in a table. Primary key values can never be reused. If a row is deleted from the table, its primary key may not be assigned to any new rows in the future. To define a field as primary key, following conditions had to be met :

1. No two rows can have the same primary key value.
2. Every row must have a primary key value.
3. The primary key field cannot be null.
4. Value in a primary key column can never be modified or updated, if any foreign key refers to that primary key.

 

15. What is a Composite Key ?

A Composite primary key is a type of candidate key, which represents a set of columns whose values uniquely identify every row in a table.

For example – if “Employee_ID” and “Employee Name” in a table is combined to uniquely identify a row its called a Composite Key.

16. What is a Composite Primary Key ?
A Composite primary key is a set of columns whose values uniquely identify every row in a table. What it means is that, a table which contains composite primary key will be indexed based on the columns specified in the primary key. This key will be referred in Foreign Key tables.

For example – if the combined effect of columns, “Employee_ID” and “Employee Name” in a table is required to uniquely identify a row, its called a Composite Primary Key. In this case, both the columns will be represented as primary key.

17. What is a Foreign Key ?

When a “one” table’s primary key field is added to a related “many” table in order to create the common field which relates the two tables, it is called a foreign key in the “many” table.

For example, the salary of an employee is stored in salary table. The relation is established via foreign key column “Employee_ID_Ref” which refers “Employee_ID” field in the Employee table.
18. What is a Unique Key ?

Unique key is same as primary with the difference being the existence of null. Unique key field allows one value as NULL value.
SQL Insert, Update and Delete Commands Interview Questions

19. Define SQL Insert Statement ?

SQL INSERT statement is used to add rows to a table. For a full row insert, SQL Query should start with “insert into “ statement followed by table name and values command, followed by the values that need to be inserted into the table. The insert can be used in several ways:

1. To insert a single complete row.
2. To insert a single partial row.

20. Define SQL Update Statement ?

SQL Update is used to update data in a row or set of rows specified in the filter condition.

The basic format of an SQL UPDATE statement is, Update command followed by table to be updated and SET command followed by column names and their new values followed by filter condition that determines which rows should be updated.

21. Define SQL Delete Statement ?

SQL Delete is used to delete a row or set of rows specified in the filter condition.

The basic format of an SQL DELETE statement is, DELETE FROM command followed by table name followed by filter condition that determines which rows should be updated.

 

22. What are wild cards used in database for Pattern Matching ?

SQL Like operator is used for pattern matching. SQL ‘Like’ command takes more time to process. So before using “like” operator, consider suggestions given below on when and where to use wild card search.

1) Don’t overuse wild cards. If another search operator will do, use it instead.
2) When you do use wild cards, try not to use them at the beginning of the search pattern, unless absolutely necessary. Search patterns that begin with wild cards are the slowest to process.
3) Pay careful attention to the placement of the wild card symbols. If they are misplaced, you might not return the data you intended.


23. Define Join and explain different type of joins?
Another frequently asked SQL Interview Questions on Joins. In order to avoid data duplication, data is stored in related tables. Join keyword is used to fetch data from related tables. “Join” return rows when there is at least one match in both table. Type of joins are

Right Join
Return all rows from the right table, even if there are no matches in the left table.

Outer Join

Left Join
Return all rows from the left table, even if there are no matches in the right table.

Full Join
Return rows when there is a match in one of the tables.

24. What is Self-Join?

Self-join is query used to join a table to itself. Aliases should be used for the same table comparison.

25. What is Cross Join?

Cross Join will return all records where each row from the first table is combined with each row from the second table.
Database Views Interview Questions

26. What is a view?

The views are virtual tables. Unlike tables that contain data, views simply contain queries that dynamically retrieve data when used.

27. What is a materialized view?

Materialized views are also a view but are disk based. Materialized views get updates on specific duration, base upon the interval specified in the query definition. We can index materialized view.

28. What are the advantages and disadvantages of views in a database?

Advantages:
1. Views don’t store data in a physical location.
2. The view can be used to hide some of the columns from the table.
3. Views can provide Access Restriction, since data insertion, update and deletion is not possible with the view.

Disadvantages:
1. When a table is dropped, associated view become irrelevant.
2. Since the view is created when a query requesting data from view is triggered, its a bit slow.
3. When views are created for large tables, it occupies more memory.

29. What is a stored procedure?

Stored Procedure is a function which contains a collection of SQL Queries. The procedure can take inputs , process them and send back output.

30. What are the advantages of a stored procedure?
Stored Procedures are precomplied and stored in the database. This enables the database to execute the queries much faster. Since many queries can be included in a stored procedure, round trip time to execute multiple queries from source code to database and back is avoided.

31. What is a trigger?

Database triggers are sets of commands that get executed when an event(Before Insert, After Insert, On Update, On delete of a row) occurs on a table, views.

32. Explain the difference between DELETE , TRUNCATE and DROP commands?

Once delete operation is performed, Commit and Rollback can be performed to retrieve data.

Once the truncate statement is executed, Commit and Rollback statement cannot be performed. Where condition can be used along with delete statement but it can’t be used with truncate statement.

Drop command is used to drop the table or keys like primary,foreign from a table.

33. What is the difference between Cluster and Non cluster Index?

A clustered index reorders the way records in the table are physically stored. There can be only one clustered index per table. It makes data retrieval faster.

A non clustered index does not alter the way it was stored but creates a completely separate object within the table. As a result insert and update command will be faster.

34. What is Union, minus and Interact commands?

MINUS operator is used to return rows from the first query but not from the second query. INTERSECT operator is used to return rows returned by both the queries.

—————————————————————————————————————————————————-

What does UNION do? What is the difference between UNION and UNION ALL?

UNION merges the contents of two structurally-compatible tables into a single combined table. The difference between UNION andUNION ALL is that UNION will omit duplicate records whereas UNION ALL will include duplicate records.

It is important to note that the performance of UNION ALL will typically be better than UNION, since UNION requires the server to do the additional work of removing any duplicates. So, in cases where is is certain that there will not be any duplicates, or where having duplicates is not a problem, use of UNION ALL would be recommended for performance reasons.

List and explain the different types of JOIN clauses supported in ANSI-standard SQL.

ANSI-standard SQL specifies five types of JOIN clauses as follows:

  • INNER JOIN (a.k.a. “simple join”): Returns all rows for which there is at least one match in BOTH tables. This is the default type of join if no specific JOIN type is specified.
  • LEFT JOIN (or LEFT OUTER JOIN): Returns all rows from the left table, and the matched rows from the right table; i.e., the results will contain all records from the left table, even if the JOIN condition doesn’t find any matching records in the right table. This means that if the ON clause doesn’t match any records in the right table, the JOIN will still return a row in the result for that record in the left table, but with NULL in each column from the right table.
  • RIGHT JOIN (or RIGHT OUTER JOIN): Returns all rows from the right table, and the matched rows from the left table. This is the exact opposite of a LEFT JOIN; i.e., the results will contain all records from the right table, even if the JOIN condition doesn’t find any matching records in the left table. This means that if the ON clause doesn’t match any records in the left table, the JOIN will still return a row in the result for that record in the right table, but with NULL in each column from the left table.
  • FULL JOIN (or FULL OUTER JOIN): Returns all rows for which there is a match in EITHER of the tables. Conceptually, a FULL JOIN combines the effect of applying both a LEFT JOIN and a RIGHT JOIN; i.e., its result set is equivalent to performing aUNION of the results of left and right outer queries.
  • CROSS JOIN: Returns all records where each row from the first table is combined with each row from the second table (i.e., returns the Cartesian product of the sets of rows from the joined tables). Note that a CROSS JOIN can either be specified using the CROSS JOIN syntax (“explicit join notation”) or (b) listing the tables in the FROM clause separated by commas without using a WHERE clause to supply join criteria (“implicit join notation”).

Consider the following two query results:

SELECT count(*) AS total FROM orders;

+-------+
| total |
+-------+
|  100  |
+-------+

SELECT count(*) AS cust_123_total FROM orders WHERE customer_id = '123';

+----------------+
| cust_123_total |
+----------------+
|       15       |
+----------------+

Given the above query results, what will be the result of the query below?

SELECT count(*) AS cust_not_123_total FROM orders WHERE customer_id <> '123'

The obvious answer is 85 (i.e, 100 – 15). However, that is not necessarily correct. Specifically, any records with a customer_id of NULL will not be included in either count (i.e., they won’t be included in cust_123_total, nor will they be included in cust_not_123_total). For example, if exactly one of the 100 customers has a NULLcustomer_id, the result of the last query will be:

+--------- ----------+
| cust_not_123_total |
+--------------------+
|         84         |
+--------------------+

What will be the result of the query below? Explain your answer and provide a version that behaves correctly.

select case when null = null then 'Yup' else 'Nope' end as Result;

This query will actually yield “Nope”, seeming to imply that null is not equal to itself! The reason for this is that the proper way to compare a value to null in SQL is with the is operator, not with =.

Accordingly, the correct version of the above query that yields the expected result (i.e., “Yup”) would be as follows:

select case when null is null then 'Yup' else 'Nope' end as Result;

Given the following tables:

sql> SELECT * FROM runners;
+----+--------------+
| id | name         |
+----+--------------+
|  1 | John Doe     |
|  2 | Jane Doe     |
|  3 | Alice Jones  |
|  4 | Bobby Louis  |
|  5 | Lisa Romero  |
+----+--------------+

sql> SELECT * FROM races;
+----+----------------+-----------+
| id | event          | winner_id |
+----+----------------+-----------+
|  1 | 100 meter dash |  2        |
|  2 | 500 meter dash |  3        |
|  3 | cross-country  |  2        |
|  4 | triathalon     |  NULL     |
+----+----------------+-----------+

What will be the result of the query below?

SELECT * FROM runners WHERE id NOT IN (SELECT winner_id FROM races)

Explain your answer and also provide an alternative version of this query that will avoid the issue that it exposes.

Surprisingly, given the sample data provided, the result of this query will be an empty set. The reason for this is as follows: If the set being evaluated by the SQL NOT IN condition contains any values that are null, then the outer query here will return an empty set, even if there are many runner ids that match winner_ids in the races table.

Knowing this, a query that avoids this issue would be as follows:

SELECT * FROM runners WHERE id NOT IN (SELECT winner_id FROM races WHERE winner_id IS NOT null)

Given two tables created and populated as follows:

CREATE TABLE dbo.envelope(id int, user_id int);
CREATE TABLE dbo.docs(idnum int, pageseq int, doctext varchar(100));

INSERT INTO dbo.envelope VALUES
  (1,1),
  (2,2),
  (3,3);

INSERT INTO dbo.docs(idnum,pageseq) VALUES
  (1,5),
  (2,6),
  (null,0);

What will the result be from the following query:

UPDATE docs SET doctext=pageseq FROM docs INNER JOIN envelope ON envelope.id=docs.idnum
WHERE EXISTS (
  SELECT 1 FROM dbo.docs
  WHERE id=envelope.id
);

Answer:-

The result of the query will be as follows:

idnum  pageseq  doctext
1      5        5
2      6        6
NULL   0        NULL

The EXISTS clause in the above query is a red herring. It will always be true since ID is not a member of dbo.docs. As such, it will refer to the envelope table comparing itself to itself!

The idnum value of NULL will not be set since the join of NULL will not return a result when attempting a match with any value of envelope.

What is wrong with this SQL query? Correct it so it executes properly.

SELECT Id, YEAR(BillingDate) AS BillingYear 
FROM Invoices
WHERE BillingYear >= 2010;

The expression BillingYear in the WHERE clause is invalid. Even though it is defined as an alias in the SELECT phrase, which appears before the WHERE phrase, the logical processing order of the phrases of the statement is different from the written order. Most programmers are accustomed to code statements being processed generally top-to-bottom or left-to-right, but T-SQL processes phrases in a different order.

The correct query should be:

SELECT Id, YEAR(BillingDate) AS BillingYear
FROM Invoices
WHERE YEAR(BillingDate) >= 2010;

Given these contents of the Customers table:

Id	Name			ReferredBy
1	John Doe		NULL
2	Jane Smith		NULL
3	Anne Jenkins		2
4	Eric Branford		NULL
5	Pat Richards		1
6	Alice Barnes		2

Here is a query written to return the list of customers not referred by Jane Smith:

SELECT Name FROM Customers WHERE ReferredBy <> 2;

What will be the result of the query? Why? What would be a better way to write it?

Although there are 4 customers not referred by Jane Smith (including Jane Smith herself), the query will only return one: Pat Richards. All the customers who were referred by nobody at all (and therefore have NULL in their ReferredBy column) don’t show up. But certainly those customers weren’t referred by Jane Smith, and certainly NULL is not equal to 2, so why didn’t they show up?

SQL Server uses three-valued logic, which can be troublesome for programmers accustomed to the more satisfying two-valued logic (TRUE or FALSE) most programming languages use. In most languages, if you were presented with two predicates: ReferredBy = 2 and ReferredBy <> 2, you would expect one of them to be true and one of them to be false, given the same value of ReferredBy. In SQL Server, however, if ReferredBy is NULL, neither of them are true and neither of them are false. Anything compared to NULL evaluates to the third value in three-valued logic: UNKNOWN.

The query should be written:

SELECT Name FROM Customers WHERE ReferredBy IS NULL OR ReferredBy <> 2

Watch out for the following, though!

SELECT Name FROM Customers WHERE ReferredBy = NULL OR ReferredBy <> 2

This will return the same faulty set as the original. Why? We already covered that: Anything compared to NULL evaluates to the third value in the three-valued logic: UNKNOWN. That “anything” includes NULL itself! That’s why SQL Server provides the IS NULL and IS NOT NULL operators to specifically check for NULL. Those particular operators will always evaluate to true or false.

Even if a candidate doesn’t have a great amount of experience with SQL Server, diving into the intricacies of three-valued logic in general can give a good indication of whether they have the ability learn it quickly or whether they will struggle with it.

Considering the database schema displayed in the SQLServer-style diagram below, write a SQL query to return a list of all the invoices. For each invoice, show the Invoice ID, the billing date, the customer’s name, and the name of the customer who referred that customer (if any). The list should be ordered by billing date.

SELECT i.Id, i.BillingDate, c.Name, r.Name AS ReferredByName
FROM Invoices i
 JOIN Customers c ON i.CustomerId = c.Id
 LEFT JOIN Customers r ON c.ReferredBy = r.Id
ORDER BY i.BillingDate;

This question simply tests the candidate’s ability take a plain-English requirement and write a corresponding SQL query. There is nothing tricky in this one, it just covers the basics:

  • Did the candidate remember to use a LEFT JOIN instead of an inner JOIN when joining the customer table for the referring customer name? If not, any invoices by customers not referred by somebody will be left out altogether.
  • Did the candidate alias the tables in the JOIN? Most experienced T-SQL programmers always do this, because repeating the full table name each time it needs to be referenced gets tedious quickly. In this case, the query would actually break if at least the Customer table wasn’t aliased, because it is referenced twice in different contexts (once as the table which contains the name of the invoiced customer, and once as the table which contains the name of the referring customer).
  • Did the candidate disambiguate the Id and Name columns in the SELECT? Again, this is something most experienced programmers do automatically, whether or not there would be a conflict. And again, in this case there would be a conflict, so the query would break if the candidate neglected to do so.

Note that this query will not return Invoices that do not have an associated Customer. This may be the correct behavior for most cases (e.g., it is guaranteed that every Invoice is associated with a Customer, or unmatched Invoices are not of interest). However, in order to guarantee that all Invoices are returned no matter what, the Invoices table should be joined with Customers using LEFT JOIN:

SELECT i.Id, i.BillingDate, c.Name, r.Name AS ReferredByName
FROM Invoices i
 LEFT JOIN Customers c ON i.CustomerId = c.Id
 LEFT JOIN Customers r ON c.ReferredBy = r.Id
ORDER BY i.BillingDate;

Assume a schema of Emp ( Id, Name, DeptId ) , Dept ( Id, Name).

If there are 10 records in the Emp table and 5 records in the Dept table, how many rows will be displayed in the result of the following SQL query:

Select * From Emp, Dept

Explain your answer.

The query will result in 50 rows as a “cartesian product” or “cross join”, which is the default whenever the ‘where’ clause is omitted.

Given a table SALARIES, such as the one below, that has m = male and f = femalevalues. Swap all f and m values (i.e., change all f values to m and vice versa) with a single update query and no intermediate temp table.

Id  Name  Sex  Salary
1   A     m    2500
2   B     f    1500
3   C     m    5500
4   D     f    500
UPDATE SALARIES SET sex = CASE sex WHEN 'm' THEN 'f' ELSE 'm' END

Given two tables created as follows

create table test_a(id numeric);

create table test_b(id numeric);

insert into test_a(id) values
  (10),
  (20),
  (30),
  (40),
  (50);

insert into test_b(id) values
  (10),
  (30),
  (50);

Write a query to fetch values in table test_a that are and not in test_bwithout using the NOT keyword.

 

In SQL Server, PostgreSQL, and SQLite, this can be done using the except keyword as follows:

select * from test_a
except
select * from test_b;

In Oracle, the minus keyword is used instead.

MySQL does not support the except function, so it is necessary to use not in.

Given a table TBL with a field Nmbr that has rows with the following values:

1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1

Write a query to add 2 where Nmbr is 0 and add 3 where Nmbr is 1.

 

This can be done as follows:

update TBL set Nmbr = case when Nmbr > 0 then Nmbr+3 else Nmbr+2 end;

Write a SQL query to find the 10th highest employee salary from an Employee table. Explain your answer.

(Note: You may assume that there are at least 10 records in the Employee table.)

This can be done as follows:

SELECT TOP (1) Salary FROM
(
    SELECT DISTINCT TOP (10) Salary FROM Employee ORDER BY Salary DESC
) AS Emp ORDER BY Salary

This works as follows:

First, the SELECT DISTINCT TOP (10) Salary FROM Employee ORDER BY Salary DESC query will select the top 10 salaried employees in the table. However, those salaries will be listed in descending order. That was necessary for the first query to work, but now picking the top 1 from that list will give you the highest salary not the the 10th highest salary.

Therefore, the second query reorders the 10 records in ascending order (which the default sort order) and then selects the top record (which will now be the lowest of those 10 salaries).

Not all databases support the TOP keyword. For example, MySQL and PostreSQL use the LIMIT keyword, as follows:

SELECT Salary FROM
(
    SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 10
) AS Emp ORDER BY Salary LIMIT 1

Write a SQL query using UNION ALL (not UNION) that uses the WHERE clause to eliminate duplicates. Why might you want to do this?

You can avoid duplicates using UNION ALL and still run much faster than UNION DISTINCT (which is actually same as UNION) by running a query like this:

SELECT * FROM mytable WHERE a=X UNION ALL SELECT * FROM mytable WHERE b=Y AND a!=X

The key is the AND a!=X part. This gives you the benefits of the UNION (a.k.a., UNION DISTINCT) command, while avoiding much of its performance hit.

Given the following tables:

SELECT * FROM users;

user_id  username
1        John Doe                                                                                            
2        Jane Don                                                                                            
3        Alice Jones                                                                                         
4        Lisa Romero

SELECT * FROM training_details;

user_training_id  user_id  training_id  training_date
1                 1        1            "2015-08-02"
2                 2        1            "2015-08-03"
3                 3        2            "2015-08-02"
4                 4        2            "2015-08-04"
5                 2        2            "2015-08-03"
6                 1        1            "2015-08-02"
7                 3        2            "2015-08-04"
8                 4        3            "2015-08-03"
9                 1        4            "2015-08-03"
10                3        1            "2015-08-02"
11                4        2            "2015-08-04"
12                3        2            "2015-08-02"
13                1        1            "2015-08-02"
14                4        3            "2015-08-03"

Write a query to to get the list of users who took the a training lesson more than once in the same day, grouped by user and training lesson, each ordered from the most recent lesson date to oldest date.

SELECT
      u.user_id,
      username,
      training_id,
      training_date,
      count( user_training_id ) AS count
  FROM users u JOIN training_details t ON t.user_id = u.user_id
  GROUP BY user_id,
           training_id,
           training_date
  HAVING count( user_training_id ) > 1
  ORDER BY training_date DESC;
user_id  username      training_id  training_date             count
4        Lisa Romero   2            August, 04 2015 00:00:00  2
4        Lisa Romero   3            August, 03 2015 00:00:00  2
1        John Doe      1            August, 02 2015 00:00:00  3
3        Alice Jones   2            August, 02 2015 00:00:00  2

What is an execution plan? When would you use it? How would you view the execution plan?

Answer:-

An execution plan is basically a road map that graphically or textually shows the data retrieval methods chosen by the SQL server’s query optimizer for a stored procedure or ad hoc query. Execution plans are very useful for helping a developer understand and analyze the performance characteristics of a query or stored procedure, since the plan is used to execute the query or stored procedure.

In many SQL systems, a textual execution plan can be obtained using a keyword such as EXPLAIN, and visual representations can often be obtained as well. In Microsoft SQL Server, the Query Analyzer has an option called “Show Execution Plan” (located on the Query drop down menu). If this option is turned on, it will display query execution plans in a separate window when a query is run.

 

List and explain each of the ACID properties that collectively guarantee that database transactions are processed reliably.

ACID (Atomicity, Consistency, Isolation, Durability) is a set of properties that guarantee that database transactions are processed reliably. They are defined as follows:

  • Atomicity. Atomicity requires that each transaction be “all or nothing”: if one part of the transaction fails, the entire transaction fails, and the database state is left unchanged. An atomic system must guarantee atomicity in each and every situation, including power failures, errors, and crashes.
  • Consistency. The consistency property ensures that any transaction will bring the database from one valid state to another. Any data written to the database must be valid according to all defined rules, including constraints, cascades, triggers, and any combination thereof.
  • Isolation. The isolation property ensures that the concurrent execution of transactions results in a system state that would be obtained if transactions were executed serially, i.e., one after the other. Providing isolation is the main goal of concurrency control. Depending on concurrency control method (i.e. if it uses strict – as opposed to relaxed – serializability), the effects of an incomplete transaction might not even be visible to another transaction.
  • Durability. Durability means that once a transaction has been committed, it will remain so, even in the event of power loss, crashes, or errors. In a relational database, for instance, once a group of SQL statements execute, the results need to be stored permanently (even if the database crashes immediately thereafter). To defend against power loss, transactions (or their effects) must be recorded in a non-volatile memory.

What is a key difference between Truncate and Delete?

Truncate is used to delete table content and the action can not be rolled back, whereas Delete is used to delete one or more rows in the table and can be rolled back.

Given a table dbo.users where the column user_id is a unique identifier, how can you efficiently select the first 100 odd user_id values from the table?

(Assume the table contains well over 100 records with odd user_id values.)

SELECT TOP 100 user_id FROM dbo.users WHERE user_id % 2 = 1 ORDER BY user_id

How can you select all the even number records from a table? All the odd number records?

To select all the even number records from a table:

Select * from table where id % 2 = 0 

To select all the odd number records from a table:

Select * from table where id % 2 != 0

What are the NVL and the NVL2 functions in SQL? How do they differ?

Both the NVL(exp1, exp2) and NVL2(exp1, exp2, exp3) functions check the value exp1 to see if it is null.

With the NVL(exp1, exp2) function, if exp1 is not null, then the value of exp1 is returned; otherwise, the value of exp2 is returned, but case to the same data type as that of exp1.

With the NVL2(exp1, exp2, exp3) function, if exp1 is not null, then exp2 is returned; otherwise, the value of exp3 is returned.

What is the difference between the RANK() and DENSE_RANK() functions? Provide an example.

The only difference between the RANK() and DENSE_RANK() functions is in cases where there is a “tie”; i.e., in cases where multiple values in a set have the same ranking. In such cases, RANK() will assign non-consecutive “ranks” to the values in the set (resulting in gaps between the integer ranking values when there is a tie), whereas DENSE_RANK() will assign consecutive ranks to the values in the set (so there will be no gaps between the integer ranking values in the case of a tie).

For example, consider the set {25, 25, 50, 75, 75, 100}. For such a set, RANK() will return {1, 1, 3, 4, 4, 6} (note that the values 2 and 5 are skipped), whereas DENSE_RANK() will return {1,1,2,3,3,4}.

What is the difference between the WHERE and HAVING clauses?

When GROUP BY is not used, the WHERE and HAVING clauses are essentially equivalent.

However, when GROUP BYis used:

  • The WHERE clause is used to filter records from a result. The filtering occurs before any groupings are made.
  • The HAVING clause is used to filter values from a group (i.e., to check conditions after aggregation into groups has been performed).



**********************************8**********

1) What is data-base testing?

Data base testing is segmented into four different categories.

  • Testing of Data Integrity
  • Testing of Data Validity
  • Data base related performance
  • Testing of functions, procedure and triggers

2) In database testing, what do we need to check normally?

Normally, the things that we check in database testing are:

  • Constraint Check
  • Validation of a Field size
  • Stored procedure
  • Matching application field size to database
  • Indexes for performance based issues

3) Explain what is data driven test?

In a data-table, to test the multi numbers of data, data-driven test is used.  By using this it can easily replace the parameters at the same time from different locations.

4) What are joins and mention different types of joins?

Join is used to display two or more than two table and the types of joins are:

  • Natural Join
  • Inner Join
  • Outer Join
  • Cross Join

The outer join is divided again in two:

  • Left outer join
  • Right outer join

5) What are indexes and mention different types of indexes?

Indexes are database objects and they are created on columns. To fetch data quickly they are frequently accessed. Different types of indexes are:

  • B-Tree index
  • Bitmap index
  • Clustered index
  • Covering index
  • Non-unique index
  • Unique index

Database Testing

 

6) While testing stored procedures what are the steps does a tester takes?

The tester will check the standard format of the stored procedures and also it checks the fields are correct like updates, joins, indexes, deletions as mentioned in the stored procedure.

7) How would you know for database testing, whether trigger is fired or not?

On querying the common audit log you would know, whether, a trigger is fired or not. It is in audit log where you can see the triggers fired.

8) In data base testing, what are the steps to test data loading?

Following steps need to follow to test data loading

  • Source data should be known
  • Target data should be known
  • Compatibility of source and target should be checked
  • In SQL Enterprise manager, run the DTS package after opening the corresponding DTS package
  • You have to compare the columns  of target and data source
  • Number of rows of target and source should be checked
  • After updating data in the source, check whether the changes appears in the target or not.
  • Check NULLs and junk characters

9) Without using Database Checkpoints, how you test a SQL Query in QTP?

By writing scripting procedure in VBScript, we can connect to database and can test the queries and database.

10) Explain how to use SQL queries in QTP ?

In QTP using output database check point and database check, you have to select the SQL manual queries option. After selecting the manual queries option, enter the “select” queries to fetch the data in the database and then compare the expected and actual.

11) What is the way of writing testcases for database testing?

Writing a testcases is like functional testing. First you have to know the functional requirement of the application. Then you have to decide the parameters for writing testcases like

  • Objective: Write the objective that you would like to test
  • Input method: Write the method of action or input you want to execute
  • Expected: how it should appear in the database

12) To manage and manipulate the test table what are the SQL statements that you have used in Database testing?

The statements like SELECT, INSERT, UPDATE, DELETE are used to manipulate the table, while ALTER TABLE, CREATE TABLE and DELETE TABLE are used to manage table.

13) How to test database procedures and triggers?

 

To test database procedures and triggers, input and output parameters must be known. EXEC statement can be used to run the procedure and examine the behaviour of the tables.

  • Open the database project in solution explorer
  • Now in View menu, click the database schema
  • Open the project folder from schema View menu
  • Right click on the object that has to be tested, and then click on the dialog box that says Create Unit Tests
  • After that create a new language test project
  • Select either a) Insert the unit test or b) Create a new test and then click OK
  • Project that has to be configured will be done by clicking on the Project Configuration dialog box.
  • Once it configured click on OK

14) How you can write testcases from requirements and do the requirements represents exact functionality of AUT (Application Under Test)?

To write a testcases from requirements, you need to analyse the requirements thoroughly in terms of functionality. Thereafter you think about the appropriate testcases design techniques like Equivalence partitioning, Black box design, Cause effect graphing etc. for writing the testcases.
Yes, the requirements represent exact functionality of AUT.

15) What is DBMS?

DBMS stand for Database management system, there are different types of DBMS

  • Network Model
  • Hierarchical Model
  • Relational Model

16) What is DML?

DML stands for Data Manipulation Language, It is used to manage data with schema objects. It is a subset of SQL.

17) What are DCL commands? What are the two types of commands used by DCL?

DCL stands for Data Control Language, it is used to control data.

The two types of DCL Commands are:

Grant: By using this command user can access privilege to database

Revoke: By using this command user cannot access the database

18) What is white box testing and black box testing?

Black box testing means testing the software for the outputs on giving particular inputs.  This testing is usually performed to see if the software meets the user’s requirements.  There is no specific functional output expected for running this test.

The white box testing is done to check the accuracy of code and logic of the program.  This testing is done by the programmer who knows the logical flow of the system.

19) How does QTP evaluate test results?

Once the testing is done, QTP will generate a report.  This report will show the checkpoints, system message and error that were detected while testing.  The test results window will show any mismatches encountered at the checkpoints.

20) Explain the QTP testing process?

  • QTP testing process is based on following steps:
  • Creating GUI (Graphical User Interface) Map files : Identifies the GUI object which has to be tested
  • Creating test scripts:  Test scripts are recorded
  • Debug tests: Test should be debugged
  • Run tests: Testcases should be run.
  • View results: The results reflects the success or failure of the tests
  • Report detects: If the test is failed, the reasons will be recorded in the report detect file

21) What is load testing and give some examples of it?

To measure the system response, load testing is done.  If the load exceeds the users pattern it is known as stress testing.  Examples of load testing are downloading the set of large files, executing multiple applications on a single computer, subjecting a server to large number of e-mails and allotting many tasks to a printer one after another.

22) How to test database manually?

Testing the database manually involves checking the data at the back end and to see whether the addition of data in front end is affecting the back end or not, and same for delete, update, insert etc.

23) What RDBMS stands for and what are the important RDMBS that SQL use?

RDBMS stands for Relational Database Management Systems that use SQL, and the important RDBMS that SQL uses are Sybase, Oracle, Access ,Ingres, Microsoft SQL server etc.

24) What is performance testing and what are the bottlenecks of performance testing?

Performance testing determines the speed of the computer system performance. It includes the quantitative tests like response time measurement. The problem in performance testing is that you always need a well-trained and experienced man power also the tools you use are expensive.

25) What is DDL and what are their commands?

To define database structure, DDL is used.  DDL stands for Data Definition Language.  The various DDL commands include Create, Truncate, Drop, Alter, Comment and Rename.


Different Types of SQL JOINs
Here are the different types of the JOINs in SQL:

(INNER) JOIN: Returns records that have matching values in both tables
LEFT (OUTER) JOIN: Returns all records from the left table, and the matched records from the right table
RIGHT (OUTER) JOIN: Returns all records from the right table, and the matched records from the left table
FULL (OUTER) JOIN: Returns all records when there is a match in either left or right table