<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Frankline Kibet</title>
    <description>The latest articles on DEV Community by Frankline Kibet (@super_b8c82b4153dee9fab1c).</description>
    <link>https://dev.to/super_b8c82b4153dee9fab1c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3972124%2Fef97a96c-da74-468e-9f55-1d6ecdc99877.jpeg</url>
      <title>DEV Community: Frankline Kibet</title>
      <link>https://dev.to/super_b8c82b4153dee9fab1c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/super_b8c82b4153dee9fab1c"/>
    <language>en</language>
    <item>
      <title>LEARNING PYTHON</title>
      <dc:creator>Frankline Kibet</dc:creator>
      <pubDate>Fri, 18 Sep 2026 06:57:26 +0000</pubDate>
      <link>https://dev.to/super_b8c82b4153dee9fab1c/learning-python-3782</link>
      <guid>https://dev.to/super_b8c82b4153dee9fab1c/learning-python-3782</guid>
      <description>&lt;p&gt;When started this journey in tech there were a lot of noises saying python is the easiest programing language this played a very crucial role in my interest in learning python, not saying that I wanted things easily is because at that time academic pressure was killing me. After I started learning it I noticed the noises were wrong  PYTHON IS NOT THE EASIEST PROGRAMING LANAGUAGE infact  I think they meant powerful. &lt;/p&gt;

&lt;p&gt;Fast-forward I developed a habit of leaning it everyday to understand all the nitty gritty of python &lt;br&gt;
Here is what I learned from in a systematic way :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Variables&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is just a name that points to a value. &lt;/p&gt;

&lt;p&gt;example &lt;br&gt;
age =26&lt;br&gt;
name = "Frankline"&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Data type&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;a data type classification that defines the category of a value, determining how the computer stores that data and what kinds of operations can be performed on it.&lt;/p&gt;

&lt;p&gt;type of data type &lt;/p&gt;

&lt;h1&gt;
  
  
  1.Integer - whole numbers
&lt;/h1&gt;

&lt;p&gt;total_bookings = 285&lt;/p&gt;

&lt;h1&gt;
  
  
  2.Float - decimal numbers
&lt;/h1&gt;

&lt;p&gt;average_amount = 31688.42&lt;/p&gt;

&lt;h1&gt;
  
  
  3.String - text, in single or double quotes
&lt;/h1&gt;

&lt;p&gt;name = "Alice Mwangi"&lt;/p&gt;

&lt;h1&gt;
  
  
  4.Boolean - True or False
&lt;/h1&gt;

&lt;p&gt;is&amp;gt;18= False&lt;/p&gt;

&lt;h1&gt;
  
  
  5.List - an ordered, changeable collection
&lt;/h1&gt;

&lt;p&gt;scores = [78, 85, 91, 65, 72]&lt;/p&gt;

&lt;h1&gt;
  
  
  6. Dictionary - key-value pairs
&lt;/h1&gt;

&lt;p&gt;booking = {"booking_id": "BK0001", "room_type": "Deluxe", "total_amount": 25000}&lt;/p&gt;

&lt;p&gt;if you want to print the output you use &lt;br&gt;
print()&lt;br&gt;
example&lt;br&gt;
print(name),&lt;br&gt;
print(is&amp;gt;18)&lt;/p&gt;

&lt;p&gt;INPUT AND OUTPUT&lt;br&gt;
INPUT&lt;br&gt;
Pauses your program and waits for the user to type something whatever they type comes back as a string, even if it looks like a number.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzg2p2mda5lcwa4dyorhu.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzg2p2mda5lcwa4dyorhu.PNG" alt=" " width="650" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;this demonstrate how input  works plus the output when you print ()&lt;/p&gt;

&lt;p&gt;The f-string&lt;/p&gt;

&lt;p&gt;the f-string is a way to insert variables directly into print &lt;br&gt;
example&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6ezkkl673zs7cqlpw9zl.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6ezkkl673zs7cqlpw9zl.PNG" alt=" " width="612" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>learning</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>WINDOW FUNCTIONS</title>
      <dc:creator>Frankline Kibet</dc:creator>
      <pubDate>Thu, 17 Sep 2026 17:50:12 +0000</pubDate>
      <link>https://dev.to/super_b8c82b4153dee9fab1c/window-functions-im4</link>
      <guid>https://dev.to/super_b8c82b4153dee9fab1c/window-functions-im4</guid>
      <description>&lt;p&gt;Window function performs a calculation across a set of rows related to the current row The result is calculated per row, but the calculation itself can look at other rows around it.&lt;/p&gt;

&lt;p&gt;Window function has over() which  turns a normal aggregate function into a window function.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fobovlbnv1ias267i593x.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fobovlbnv1ias267i593x.PNG" alt=" " width="719" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;in this example you are able to see the average total amount compared to each room type .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftkq1coglljzhlj5zcibp.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftkq1coglljzhlj5zcibp.PNG" alt=" " width="549" height="141"&gt;&lt;/a&gt;determines the sequence rows are processed in for that window — essential for ranking functions and for anything&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;_Partition by _&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is usually written inside the over and is used to group data to the thing that you what it be grouped. It just like the group by clause but this one is for window function only, this helps that each group gets its own independent calculation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;order by&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;determines the sequence rows are processed in for that window essential for ranking functions and for anything&lt;br&gt;
also written inside over()&lt;/p&gt;

&lt;p&gt;ROW_NUMBER, RANK_NUMBER,DENSE_RANK,LAG,LEAD,&lt;/p&gt;

&lt;p&gt;Row_number&lt;br&gt;
This is just a simple count of row . I have used it multiple&lt;br&gt;
 time when the primary key is not in particular order.&lt;br&gt;
Example&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1cl2r5u59hv9d52jicg0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1cl2r5u59hv9d52jicg0.PNG" alt=" " width="651" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;RANK AND DENSE RANK &lt;br&gt;
Rank&lt;br&gt;
The rank()function assigns a rank to each row based on the ORDER BY clause in the OVER statement. Rows with the same value receive the same rank, with gaps in the ranking for duplicate values. &lt;/p&gt;

&lt;p&gt;TASK:see which jobrole has the highest daiyrate&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs28umolexw8ze4ke9vpo.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs28umolexw8ze4ke9vpo.PNG" alt=" " width="637" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dense rank&lt;br&gt;
The DENSE_RANK() function assigns ranks like RANK(), but it doesn’t skip ranks after ties&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzy5kebka9fbvuny8s038.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzy5kebka9fbvuny8s038.PNG" alt=" " width="684" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
SQL window functions like ROW_NUMBER(), RANK(), DENSE_RANK(), NTILE(), LEAD(), and LAG() provide powerful ways to analyze data by performing calculations across rows within a defined window.&lt;/p&gt;

&lt;p&gt;.&lt;/p&gt;

</description>
      <category>database</category>
      <category>sql</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>SUBQUERIES AND CTE</title>
      <dc:creator>Frankline Kibet</dc:creator>
      <pubDate>Thu, 17 Sep 2026 03:30:50 +0000</pubDate>
      <link>https://dev.to/super_b8c82b4153dee9fab1c/subqueries-and-cte-1ijf</link>
      <guid>https://dev.to/super_b8c82b4153dee9fab1c/subqueries-and-cte-1ijf</guid>
      <description>&lt;p&gt;Subqueries this are queries inside another query. Many of the times a problem cant be solved using a single query now thus where subqueries comes in .&lt;/p&gt;

&lt;p&gt;Subqueries can appear in a few different places ;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Subquery inside a where clause. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;example of use case &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyuouv1bjleiz34uc0qnc.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyuouv1bjleiz34uc0qnc.PNG" alt=" " width="713" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;subquery on select clause
used a computed column when used in the select clause.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fopq4p8nusfkytws9lbx4.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fopq4p8nusfkytws9lbx4.PNG" alt=" " width="661" height="175"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Subquery on the from&lt;br&gt;
this is treated as a temporary table.&lt;br&gt;
example &lt;/p&gt;

&lt;p&gt;CTE &lt;br&gt;
CTE is an abbreviation for Common Table Expression it typically does everything that a subquery can do but in a more presentable way. &lt;br&gt;
Most of the time I  have used cte rather than a subquery . &lt;br&gt;
how you write a cte is you use a with clause to define it then followed by () after that you call it like just a table  but it should be immediately after writing it &lt;br&gt;
 example of cte  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi3ouax7zlo6382ued5qb.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi3ouax7zlo6382ued5qb.PNG" alt=" " width="688" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also have mulitple CTE&lt;br&gt;
EXAMPLE &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F21nkn5q13pbow8255b3v.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F21nkn5q13pbow8255b3v.PNG" alt=" " width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When to Use Each&lt;/p&gt;

&lt;p&gt;Use a subquery when:&lt;/p&gt;

&lt;p&gt;You need a quick  calculated value&lt;br&gt;
The logic is simple enough to read in a single nested line&lt;br&gt;
You're only using that intermediate result once&lt;/p&gt;

&lt;p&gt;Use a CTE when:&lt;/p&gt;

&lt;p&gt;The query has multiple steps that build on each other&lt;br&gt;
You want to reference the same intermediate result more than once&lt;br&gt;
You're working with recursive data&lt;br&gt;
Readability matters CTEs make complex queries much easier for someone else  to follow especially when you are working in a large organization . &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>SQL JOINS WITH EXAMPLES OF EACH</title>
      <dc:creator>Frankline Kibet</dc:creator>
      <pubDate>Wed, 16 Sep 2026 03:07:38 +0000</pubDate>
      <link>https://dev.to/super_b8c82b4153dee9fab1c/sql-joins-with-examples-of-each-21ol</link>
      <guid>https://dev.to/super_b8c82b4153dee9fab1c/sql-joins-with-examples-of-each-21ol</guid>
      <description>&lt;p&gt;A join combines rows from two or more tables based on a related column between them. Instead of running separate queries and manually matching up results yourself, a join does that matching for you, in a single query&lt;br&gt;
When working with databases, your data is often stored in more than one table. This is way join are important &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;TYPES OF JOINS *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;1.&lt;em&gt;** Inner join**&lt;/em&gt;&lt;br&gt;
This is a type of join that returns only the rows that have a match in both tables.&lt;br&gt;
example&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq5xald1yypgj79jgnyba.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq5xald1yypgj79jgnyba.PNG" alt=" " width="730" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Left jOIN&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Returns all rows from the left table plus matching rows from the right table.&lt;/p&gt;

&lt;p&gt;Where there's no match the right table's columns come back as null&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbrp1dktx5f6zak6safe9.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbrp1dktx5f6zak6safe9.PNG" alt=" " width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3*&lt;em&gt;_.Right join _&lt;/em&gt;*&lt;br&gt;
Returns all rows from the right table plus matching rows from the left.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ebjo8yib2vrjmhiq9ql.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ebjo8yib2vrjmhiq9ql.PNG" alt=" " width="738" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.&lt;strong&gt;_ Full outer join _&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Return all row from all table.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ktrmvzn3gq10nent4qj.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ktrmvzn3gq10nent4qj.PNG" alt=" " width="725" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I used it when when you need a complete view of the table example like in this scenario above I need to check the results table and the subject table to identify areas of improvement.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;_self join _&lt;/strong&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a practical&lt;br&gt;
use of self join that really help be in my project. it let me pair each book with it author with ease. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flkf0pnco1qty4yiw9m60.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flkf0pnco1qty4yiw9m60.PNG" alt=" " width="745" height="520"&gt;&lt;/a&gt; &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>database</category>
      <category>sql</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>DDL and DML WHAT ARE THEY?</title>
      <dc:creator>Frankline Kibet</dc:creator>
      <pubDate>Mon, 14 Sep 2026 12:33:56 +0000</pubDate>
      <link>https://dev.to/super_b8c82b4153dee9fab1c/ddl-and-dml-what-are-they-2g98</link>
      <guid>https://dev.to/super_b8c82b4153dee9fab1c/ddl-and-dml-what-are-they-2g98</guid>
      <description>&lt;p&gt;DDL &lt;br&gt;
DDL  is an abbreviation for data definition language  used to define, modify, and manage the structure of a database.&lt;br&gt;
Common DDL commands &lt;br&gt;
Create - Creates a new table, database, index, or view &lt;br&gt;
Example &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjwgsk70rh0z0pomg7vac.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjwgsk70rh0z0pomg7vac.PNG" alt=" " width="331" height="120"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fprzc5dv0lbzcuss1iya4.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fprzc5dv0lbzcuss1iya4.PNG" alt=" " width="497" height="141"&gt;&lt;/a&gt;&lt;br&gt;
Alter&lt;br&gt;
Used to modify the exiting table &lt;br&gt;
Alter can be  used to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Remove column&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add column &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcdhbjvycw5mtbsqvuoe3.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcdhbjvycw5mtbsqvuoe3.PNG" alt=" " width="498" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Truncate – it empties all rows from a table but keeps its structure&lt;/p&gt;

&lt;p&gt;truncate table safari.student;&lt;/p&gt;

&lt;p&gt;DML&lt;br&gt;
DML  is an abbreviation  for data manipulation language,&lt;br&gt;
These are the commands that work with the actual data stored inside tables exmple adding rows, reading rows, updating values, and deleting rows. &lt;br&gt;
Example of commands &lt;br&gt;
Select  reads data from one or more tables&lt;br&gt;
Example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft106g7iz8jgcjxt2id46.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft106g7iz8jgcjxt2id46.PNG" alt=" " width="356" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Insert&lt;br&gt;
Adds new rows to a table&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0btl4hu2ocbdt1shbh85.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0btl4hu2ocbdt1shbh85.PNG" alt=" " width="686" height="85"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Update 
Is used to modifies existing rows.
example&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F28ukzmltoh2z97xzqgt1.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F28ukzmltoh2z97xzqgt1.PNG" alt=" " width="526" height="61"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Delete
is used to removes rows from a table&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgz4nyk652tc03k9b84u5.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgz4nyk652tc03k9b84u5.PNG" alt=" " width="681" height="70"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diffence&lt;br&gt;
The main difference: DDL defines and changes the structure of a table  using  commands like CREATE, ALTER, DROP while  DML works with the actual data inside that structure  commands like SELECT, INSERT, UPDATE, DELETE.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>database</category>
      <category>sql</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>ANALYZING HOTEL BOOKING DATA: A TEMBO HOTEL SQL + POWER BI CASE STUDY</title>
      <dc:creator>Frankline Kibet</dc:creator>
      <pubDate>Mon, 14 Sep 2026 04:29:45 +0000</pubDate>
      <link>https://dev.to/super_b8c82b4153dee9fab1c/analyzing-hotel-booking-data-a-tembo-hotel-sql-power-bi-case-study-239l</link>
      <guid>https://dev.to/super_b8c82b4153dee9fab1c/analyzing-hotel-booking-data-a-tembo-hotel-sql-power-bi-case-study-239l</guid>
      <description>&lt;p&gt;Tembo Hotel had been tracking all of their bookings in Excel, but the data had grown messy over time  inconsistent formatting, duplicate entries, and mixed date formats made it impossible to get reliable answers out of it. I was tasked with cleaning the dataset and turning it into something the CEO could actually use to understand the business.&lt;/p&gt;

&lt;p&gt;Here's how I approached it, from raw CSV to a working Power BI dashboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foswwpbjzqdm9etjbigc1.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foswwpbjzqdm9etjbigc1.PNG" alt=" " width="499" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The cleaning process started by deleting duplicates .&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmidwzs79hx00k8q06fmx.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmidwzs79hx00k8q06fmx.PNG" alt=" " width="800" height="333"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Then standardization values and trimming to remove extra space.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fst8i6kazqm7j58wfli4u.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fst8i6kazqm7j58wfli4u.PNG" alt=" " width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;the changing the data format and data type from text to data &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6e1kiq6pkcnuad41nlcp.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6e1kiq6pkcnuad41nlcp.PNG" alt=" " width="698" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;after the cleaning process is over I loaded the clean data on table which I will use for analysis.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flrquzjk7umovy3awrdmd.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flrquzjk7umovy3awrdmd.PNG" alt=" " width="607" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CEO wanted to know about his business . Analysis started by answering   major business questions&lt;br&gt;
&lt;strong&gt;ANALYSIS&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Revenue analysis &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu5s28ab2x02ag5zv74xu.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu5s28ab2x02ag5zv74xu.PNG" alt=" " width="799" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Guest insighs &lt;/li&gt;
&lt;li&gt;staff performance&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx4cdux4jbqr1meoym8eu.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx4cdux4jbqr1meoym8eu.PNG" alt=" " width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cancellation and revenue lost &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of the more important findings: a meaningful share of potential revenue was lost specifically to cancellations, concentrated in certain room types more than others.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff6cldnakwpa8frgng2ob.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff6cldnakwpa8frgng2ob.PNG" alt=" " width="703" height="181"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I created it as view so that it so that it could be easy to import then on power bi for visulation &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Presenting the outcome&lt;/strong&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Dashboard
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fev7uc9snsdep78zv4r68.PNG" alt=" " width="800" height="371"&gt;
2.The revenue analysis 
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fls8kii2k5ypuwd1n7e5p.PNG" alt=" " width="799" height="363"&gt;
&lt;/li&gt;
&lt;li&gt;Guest insight &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F03hwif5hsyfjx8fowg78.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F03hwif5hsyfjx8fowg78.PNG" alt=" " width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;cancelation and revenue lost on it .&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyf4xistdfygpuq244iu8.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyf4xistdfygpuq244iu8.PNG" alt=" " width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;REPORT&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faxbhrepe04zt3o2ebp3b.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faxbhrepe04zt3o2ebp3b.PNG" alt=" " width="752" height="429"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvhthsuwa05ivfkqc4xqk.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvhthsuwa05ivfkqc4xqk.PNG" alt=" " width="762" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>database</category>
      <category>sql</category>
    </item>
    <item>
      <title>Data</title>
      <dc:creator>Frankline Kibet</dc:creator>
      <pubDate>Mon, 07 Sep 2026 11:58:42 +0000</pubDate>
      <link>https://dev.to/super_b8c82b4153dee9fab1c/data-1f4f</link>
      <guid>https://dev.to/super_b8c82b4153dee9fab1c/data-1f4f</guid>
      <description></description>
    </item>
  </channel>
</rss>
