Wednesday, May 27, 2026

SQL 2025 master class LAB vector distance

SQL 2025 master class LAB graph db

--step 1

 -- Create a GraphDemo database
IF NOT EXISTS (SELECT * FROM sys.databases WHERE NAME = 'graphdemo')
    CREATE DATABASE GraphDemo;
GO

USE GraphDemo;
GO

-- Create NODE tables
CREATE TABLE Person (
  ID INTEGER PRIMARY KEY,
  name VARCHAR(100)
) AS NODE;

CREATE TABLE Restaurant (
  ID INTEGER NOT NULL,
  name VARCHAR(100),
  city VARCHAR(100)
) AS NODE;

CREATE TABLE City (
  ID INTEGER PRIMARY KEY,
  name VARCHAR(100),
  stateName VARCHAR(100)
) AS NODE;

-- Create EDGE tables.
CREATE TABLE likes (rating INTEGER) AS EDGE;
CREATE TABLE friendOf AS EDGE;
CREATE TABLE livesIn AS EDGE;
CREATE TABLE locatedIn AS EDGE;

--step 2

-- Insert data into node tables. Inserting into a node table is same as inserting into a regular table
INSERT INTO Person (ID, name)
    VALUES (1, 'John')
         , (2, 'Mary')
         , (3, 'Alice')
         , (4, 'Jacob')
         , (5, 'Julie');

INSERT INTO Restaurant (ID, name, city)
    VALUES (1, 'Taco Dell','Bellevue')
         , (2, 'Ginger and Spice','Seattle')
         , (3, 'Noodle Land', 'Redmond');

INSERT INTO City (ID, name, stateName)
    VALUES (1,'Bellevue','WA')
         , (2,'Seattle','WA')
         , (3,'Redmond','WA');

-- Insert into edge table. While inserting into an edge table,
-- you need to provide the $node_id from $from_id and $to_id columns.
/* Insert which restaurants each person likes */
INSERT INTO likes
    VALUES ((SELECT $node_id FROM Person WHERE ID = 1), (SELECT $node_id FROM Restaurant WHERE ID = 1), 9)
         , ((SELECT $node_id FROM Person WHERE ID = 2), (SELECT $node_id FROM Restaurant WHERE ID = 2), 9)
         , ((SELECT $node_id FROM Person WHERE ID = 3), (SELECT $node_id FROM Restaurant WHERE ID = 3), 9)
         , ((SELECT $node_id FROM Person WHERE ID = 4), (SELECT $node_id FROM Restaurant WHERE ID = 3), 9)
         , ((SELECT $node_id FROM Person WHERE ID = 5), (SELECT $node_id FROM Restaurant WHERE ID = 3), 9);

/* Associate in which city live each person*/
INSERT INTO livesIn
    VALUES ((SELECT $node_id FROM Person WHERE ID = 1), (SELECT $node_id FROM City WHERE ID = 1))
         , ((SELECT $node_id FROM Person WHERE ID = 2), (SELECT $node_id FROM City WHERE ID = 2))
         , ((SELECT $node_id FROM Person WHERE ID = 3), (SELECT $node_id FROM City WHERE ID = 3))
         , ((SELECT $node_id FROM Person WHERE ID = 4), (SELECT $node_id FROM City WHERE ID = 3))
         , ((SELECT $node_id FROM Person WHERE ID = 5), (SELECT $node_id FROM City WHERE ID = 1));

/* Insert data where the restaurants are located */
INSERT INTO locatedIn
    VALUES ((SELECT $node_id FROM Restaurant WHERE ID = 1), (SELECT $node_id FROM City WHERE ID =1))
         , ((SELECT $node_id FROM Restaurant WHERE ID = 2), (SELECT $node_id FROM City WHERE ID =2))
         , ((SELECT $node_id FROM Restaurant WHERE ID = 3), (SELECT $node_id FROM City WHERE ID =3));

/* Insert data into the friendOf edge */
INSERT INTO friendOf
    VALUES ((SELECT $NODE_ID FROM Person WHERE ID = 1), (SELECT $NODE_ID FROM Person WHERE ID = 2))
         , ((SELECT $NODE_ID FROM Person WHERE ID = 2), (SELECT $NODE_ID FROM Person WHERE ID = 3))
         , ((SELECT $NODE_ID FROM Person WHERE ID = 3), (SELECT $NODE_ID FROM Person WHERE ID = 1))
         , ((SELECT $NODE_ID FROM Person WHERE ID = 4), (SELECT $NODE_ID FROM Person WHERE ID = 2))
         , ((SELECT $NODE_ID FROM Person WHERE ID = 5), (SELECT $NODE_ID FROM Person WHERE ID = 4));

--step 3

-- Find Restaurants that John likes
SELECT Restaurant.name
FROM Person, likes, Restaurant
WHERE MATCH (Person-(likes)->Restaurant)
AND Person.name = 'John';

-- Find Restaurants that John's friends like
SELECT Restaurant.name
FROM Person person1, Person person2, likes, friendOf, Restaurant
WHERE MATCH(person1-(friendOf)->person2-(likes)->Restaurant)
AND person1.name='John';

-- Find people who like a restaurant in the same city they live in
SELECT Person.name
FROM Person, likes, Restaurant, livesIn, City, locatedIn
WHERE MATCH (Person-(likes)->Restaurant-(locatedIn)->City AND Person-(livesIn)->City);

 --step 4

-- Find friends-of-friends-of-friends, excluding those cases where the relationship "loops back".
-- For example, Alice is a friend of John; John is a friend of Mary; and Mary in turn is a friend of Alice.
-- This causes a "loop" back to Alice. In many cases, it is necessary to explicitly check for such loops and exclude the results.
SELECT CONCAT(Person.name, '->', Person2.name, '->', Person3.name, '->', Person4.name)
FROM Person, friendOf, Person as Person2, friendOf as friendOffriend, Person as Person3, friendOf as friendOffriendOfFriend, Person as Person4
WHERE MATCH (Person-(friendOf)->Person2-(friendOffriend)->Person3-(friendOffriendOfFriend)->Person4)
AND Person2.name != Person.name
AND Person3.name != Person2.name
AND Person4.name != Person3.name
AND Person.name != Person4.name; 

 

SQL 2025 master class LAB localDB

By default, LocalDB system databases are stored in your hidden AppData folder. The exact path to your files is:
C:\Users\[Your-Windows-Username]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\mssqllocaldb

  Press Windows Key + R, type cmd, and hit Enter.

  Type sqllocaldb info to see the exact instance names (usually MSSQLLocalDB or ProjectsV13).

  Type sqllocaldb info "YourInstanceName" to see the exact file paths of your databases. [1, 2, 3]

 

SqlLocalDB.exe create LocalDBApp1

SqlLocalDB.exe start LocalDBApp1

REM Gather information about the instance of LocalDB

SqlLocalDB.exe" info LocalDBApp1

sqllocaldb stop MSSQLLocalDB
sqllocaldb delete MSSQLLocalDB
 
Enter Server Name: In the "Server name" field, type the following:
  • Default Instance: (localdb)\MSSQLLocalDB.
  • Named Instance: (localdb)\YourInstanceName (e.g., (localdb)\v11.0)
 

 

Tuesday, May 26, 2026

SQL 2025 master class LAB best practices assessment

 

Powershell as admin

 Install-PackageProvider -Name NuGet -Force

Install-Module -Name SqlServer -force -allowclobber

Import-Module -Name SqlServer -force  

$srv = New-Object Microsoft.SqlServer.Management.Smo.Server("windows")

$srv.databases 

Get-SqlAssessmentItem $srv

Invoke-SqlAssessment $srv| Out-File -FilePath "C:\SQL_Assessment_Report.html"

if needed import-module sqlps

get-psprovider

cd sqlserver:\

dir

cd sql

cd windows

dir

-- 1. Allow the use of advanced configuration options
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

-- 2. Enable the xp_cmdshell feature
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

-- 3. (Optional) Hide advanced options again
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE;

SQL 2025 master class LAB Installation

 

Please install a SQL Server Database Instance with the following settings:

• Instance Name: Sever2025 Lab

Authentication Mode: Windows

TempDB: In a separate folder c:\TempDB

Server Agent : Automatic

When reaching Ready to Install, note configuration file path.

Cancel and use Advanced in Installation Center to Install based on configuration file