SlideShare a Scribd company logo
‫خدا‬ ‫نام‬ ‫به‬
‫اطلاعاتی‬ ‫بانک‬ ‫با‬ ‫آشنایی‬ ‫سمینار‬
PostgreSQL
‫دوم‬ ‫بخش‬
‫مشهد‬ ‫برق‬ ‫نیروی‬ ‫توزیع‬ ‫شرکت‬
‫پاییز‬۱۳۹۴
Common Table Expressions (CTE)
● Basic CTE , Writable CTE , Recursive CTE
●
‫نوع‬basic‫کارایی‬ ‫بردن‬ ‫بال‬ ‫یا‬ ‫کویری‬ ‫کردن‬ ‫خوانا‬ ‫جهت‬
  WITH  
    T1 as ( Select * from table1  ),
    T2 as ( Select * from table2  )
  Select  T1.f1 , T2.f2  from  T1  
    inner join T2  on ( T1.f1,T2.f1);
●
‫نوع‬writable!‫دیگر‬ ‫جدول‬ ‫در‬ ‫درج‬ ‫همزمان‬ ‫جدول‬ ‫یک‬ ‫های‬ ‫رکورد‬ ‫حذف‬ :
WITH t AS (
DELETE FROM ONLY logs_2011 WHERE log_ts < '2011­03­01' RETURNING  *
)
INSERT INTO logs_2011_01_02 SELECT * FROM t; 
Common Table Expressions
● Recursive statement
with recursive fib as (
    select 0 as a, 1 as b
    union all
    select b as a, a+b from fib where a < 100
) select a from fib;
Recursive CTE
id parent_id title
1 0 ‫دانشگاه‬
2 1 ‫ادبیات‬ ‫دانشکده‬
3 1 ‫مهندسی‬ ‫دانشکده‬
4 2 ‫فارسی‬ ‫ادبیات‬ ‫گروه‬
5 2 ‫مکانیک‬ ‫مهندسی‬ ‫گروه‬
6 4 ‫فارسی‬ ‫زبان‬
7 4 ‫تاریخ‬
8 5 ‫سیالت‬
9 5 ‫جامدات‬
Recursive CTE
title
‫دانشگاه‬
‫دانشگاه‬ -> ‫ادبیات‬ ‫دانشکده‬
‫دانشگاه‬ -> ‫مهندسی‬ ‫دانشکده‬
‫دانشگاه‬ -> ‫ادبیات‬ ‫دانشکده‬ -> ‫فارسی‬ ‫ادبیات‬ ‫گروه‬
‫دانشگاه‬ -> ‫مهندسی‬ ‫دانشکده‬ ->‫مکانیک‬ ‫مهندسی‬ ‫گروه‬
-> ‫ادبیات‬ ‫دانشکده‬ -> ‫فارسی‬ ‫ادبیات‬ ‫>-گروه‬ ‫فارسی‬ ‫زبان‬
‫دانشگاه‬
‫دانشگاه‬ -> ‫ادبیات‬ ‫دانشکده‬ -> ‫فارسی‬ ‫ادبیات‬ ‫>-گروه‬ ‫تاریخ‬
-> ‫مهندسی‬ ‫دانشکده‬ -> ‫مکانیک‬ ‫مهندسی‬ ‫گروه‬ ->‫سیالت‬
‫دانشگاه‬
-> ‫مهندسی‬ ‫دانشکده‬ ->‫مکانیک‬ ‫مهندسی‬ ‫گروه‬ ->‫جامدات‬
‫دانشگاه‬
WITH Recursive
with recursive  tree ( id , parent_id  , _unit_name ) as
(
  select  u1.id , u1.parent_id , u1._name::text  
    from university u1
  where parent_id = 0
  union all
  select u2.id,2.parent_id,u2._name || '­>' ||t1._unit_name
    from university u2
    inner join tree t1 on t1.id = u2.parent_id
  )
  select  _unit_name from tree
Window functions
● row_number , avg , sum , rank
Select row_number() over(order by stno),stno from grades;
SELECT faculty,stno,grade,rank()  
  OVER ( PARTITION BY faculty order by grade desc ) 
  FROM grades; 
SELECT salary, sum(salary) OVER () FROM empsalary;
SELECT salary, sum(salary) OVER (ORDER BY salary)
  FROM empsalary;
SELECT sum(salary) OVER w, avg(salary) OVER w
  FROM empsalary
  WINDOW w AS (PARTITION BY depname ORDER BY salary DESC);
ARRAY datatype
● Integer   integer[]→
● Varchar   varchar[]→
● Json   json[]→
● Text   text[][]→
‫بعدی‬ ‫دو‬ ‫آرایه‬
Integer[3][3] : '{{1,2,3},{4,5,6},{7,8,9}}'
ARRAY datatype & Functions
INSERT INTO sal_emp
    VALUES ('Bill',
    '{10000, 10000, 10000, 10000}',
    '{{"meeting", "lunch"}, {"training", "presentation"}}');
INSERT INTO sal_emp   VALUES ('Bill',
    ARRAY[10000, 10000, 10000, 10000],
    ARRAY[['meeting', 'lunch'], ['training', 'presentation']]);
SELECT pay_by_quarter[3] FROM sal_emp;
SELECT array_prepend(1, ARRAY[2,3]);
SELECT array_cat(ARRAY[1,2], ARRAY[3,4]);
‫تبدیل‬‫سطر‬ ‫به‬ ‫آرایه‬:
Select unnest(ARRAY[1,2]) ;    
Select * from unnest(ARRAY[1,2],ARRAY['foo','bar','baz'])
ARRAY operators
●
@> , >@@> , >@
– ARRAY[1,4,3] @> ARRAY[3,1]
●
< , >< , >
– ARRAY[1,2,3] < ARRAY[1,2,4]
●
&&&& (overlap)
– ARRAY[1,4,3] && ARRAY[2,1]
●
==
– ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3]
●
||||
– ARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]] , 3 || ARRAY[4,5,6]
JSON & JSONB datatype
Json : stores an exact copy of the input text , slow function
processing because of reparse of each execution.
Jsonb : faster process , store data as decompose binary.
SELECT '{"reading": 1.230e­5}'::json, '{"reading": 1.230e­5}'::jsonb;
         json          |          jsonb          
­­­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­
 {"reading": 1.230e­5} | {"reading": 0.00001230}
(1 row)
JSON & JSONB datatype
CREATE TABLE persons (person_id serial 
PRIMARY KEY, relations jsonb);
Insert into persons(relations) values (
'{"name":"abbas","members":[
{"relation":"father" , "name":"ali"},
{"relation":"child" , "name":"mostafa"},
{"relation":"child" , "name":"mahdieh"}]}');
    
JSON Queries
  select   relations­>'name' from persons;
  select   relations­>'members' from persons;
    
  select   jsonb_extract_path(relations,'name')  from persons;
  select   jsonb_extract_path(relations,'members')  from persons;
  select   jsonb_extract_path(relations,'members')­>1  
     from persons;
  select   jsonb_extract_path(relations,'members')­>1­>'name'      
     from persons;
  select   relations­>'members'­>1­>'name'  from persons;
    
JSONB Operator
●
Jsonb Containment and Existence(@> , ?)
SELECT '[1, 2, 3]'::jsonb @> '[1, 3]'::jsonb;
SELECT ’{"product": "PostgreSQL", "version": 9.4, 
"jsonb":true}’::jsonb @> ’{"version":9.4}’;
SELECT ’["foo", "bar", "baz"]’::jsonb ? ’bar’;
SELECT ’{"foo": "bar"}’::jsonb ? ’foo’;
SELECT ’{"foo": "bar"}’::jsonb ? ’bar’;
JSON Indexing
GIN : Generalized Inverted Index :
For full text search and jsonb
 CREATE INDEX idxgin ON persons  USING gin (relations);
Hstore datatype
● Create extension hstore;
● Hstore is a Key-value datatype
● Each key in an hstore is unique
– SELECT 'a=>1,a=>2'::hstore;
CREATE TABLE products (
     id serial PRIMARY KEY,
     name varchar(20),
     attributes hstore
   );
INSERT INTO products (name, attributes) VALUES (
    '‫برق‬ ‫,'تابلوی‬
    'length => "10",width => 20,Color=> "red"');
INSERT INTO products (name, attributes) VALUES (
    '‫,'رایانه‬
    'processor=> "Intel",storage=>'250GB',ram=>"8GB"');
INSERT INTO products (name, attributes) VALUES (
    '‫,'کتاب‬
    'author=>"Ali",pages=>368,price=>10000');
Hstore datatype
select  * from products  
  where attributes­>'pages' = '368';
select  attributes­>'pages' from products  
SELECT name, attributes­>'pages' 
   FROM products
   WHERE attributes ? 'pages'
Hstore Functions
● select * from each('a=>1,b=>2');
● Select hstore_to_matrix('a=>1,b=>2');
● Select hstore_to_array('a=>1,b=>2');
● Select svals('a=>1,b=>2') ;
● Select skeys('a=>1,b=>2');
● Select hstore('a', 'b');
● Select hstore(ARRAY['a','b'], ARRAY['1','2']);
● Select hstore(ROW(1,2));
● Select exist('a=>1','a');
● delete('a=>1,b=>2','b');
● delete('a=>1,b=>2','a=>4,b=>2'::hstore)
HStore add & update
● UPDATE tab SET h = h || hstore('c', '3');
● UPDATE tab SET h = delete(h, 'k1');
Full Text Search
● Tsvector
SELECT 'a fat cat sat on a mat and ate a fat rat'::tsvector;
SELECT 'a:1 fat:2 cat:3 sat:4 on:5 a:6 mat:7 and:8 ate:9 a:10 fat:11 
rat:12'::tsvector;
● Tsquery
select  to_tsquery( 'containment:*' );
Select to_tsquery( 'postgres:*' );
SELECT to_tsvector( 'postgraduate' ) @@ to_tsquery( 'postgres:*' );
Functions
●
. ‫تابع‬ ‫تعریف‬ ‫هنگام‬ ‫در‬ ‫ها‬ ‫متغییر‬ ‫نام‬ ‫به‬ ‫نیاز‬ ‫عدم‬
●
. ‫نها‬‌‫ه‬ ‫آ‬ ‫از‬ ‫استفاده‬ ‫هنگام‬ ‫در‬ ‫ها‬ ‫متغییر‬ ‫نام‬ ‫به‬ ‫نیاز‬ ‫عدم‬
●
. ‫آرایه‬ ‫بصورت‬ ‫ها‬ ‫پارامتر‬ ‫تعریف‬
●
‫و‬ ‫پایتون‬ ‫مثل‬ ‫ای‬ ‫پیشرفته‬ ‫نهای‬‌‫ه‬ ‫زبا‬ ‫تهای‬‌‫ه‬ ‫قابلی‬ ‫از‬ ‫استفاده‬
. ‫اسکریپت‬ ‫جاوا‬
●
)‫برگشتی‬ ‫و‬ ‫ورودی‬ ‫مقادیر‬ ‫نوع‬ ‫بودن‬ ‫نامشخص‬Pseudo-
Types(
Functions
CREATE OR REPLACE FUNCTION get_cities()
  RETURNS cities AS
'select * from cities;'
  LANGUAGE sql VOLATILE
CREATE OR REPLACE FUNCTION get_cities()
  RETURNS setof cities AS
'select * from cities;'
  LANGUAGE sql VOLATILE
select   get_cities();
select   * from  get_cities();
select   row_to_json(get_cities());
select   row_to_json(get_cities())­>'name';
Functions
CREATE FUNCTION add(integer, integer) RETURNS integer
    AS 'select $1 + $2;'
    LANGUAGE SQL
    IMMUTABLE
    RETURNS NULL ON NULL INPUT;
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
        BEGIN
                RETURN i + 1;
        END;
$$ LANGUAGE plpgsql;
CREATE FUNCTION dup(in int, out f1 int, out f2 text)
    AS $$ SELECT $1, CAST($1 AS text) || ' is text' $$
    LANGUAGE SQL;
SELECT * FROM dup(42);
CREATE TYPE dup_result AS (f1 int, f2 text);
CREATE FUNCTION dup1(int) RETURNS dup_result
    AS $$ SELECT $1, CAST($1 AS text) || ' is text' $$
    LANGUAGE SQL;
Functions
CREATE OR REPLACE FUNCTION unnest_v(VARIADIC arr anyarray)
RETURNS SETOF anyelement AS $$
BEGIN
  RETURN QUERY SELECT unnest(arr);
END;
$$ LANGUAGE plpgsql;
select unnest_v('11',2,3,4,7,8,9,10000,'400');
Python Functions
CREATE OR REPLACE FUNCTION list_incoming_files()
RETURNS SETOF text AS
$$
  import os
  return os.listdir('/home/baniasadi')
$$
LANGUAGE 'plpython2u' VOLATILE SECURITY DEFINER;
Python Functions
CREATE OR REPLACE FUNCTION postgresql_help_search
                                       (param_search     text)
RETURNS text AS
$$
  import urllib, re
  response = urllib.urlopen(
  'http://www.postgresql.org/search/?u=%2Fdocs%2Fcurrent%2F&q=' +     
   param_search)
  raw_html = response.read()
  result = raw_html[raw_html.find("<!­­ docbot goes here ­­>") :     
  raw_html.find("<!­­ pgContentWrap ­­>") ­ 1]
  result = re.sub('<[^<]+?>', '', result).strip()
  return result
$$
LANGUAGE plpython2u SECURITY DEFINER STABLE;
Java Script Functions
CREATE OR REPLACE FUNCTION validate_email(email text) 
returns boolean as
$$
  var re = /S+@S+.S+/;
  return re.test(email);
$$ LANGUAGE plv8 IMMUTABLE STRICT;
Java Script Functions
CREATE OR REPLACE FUNCTION get_citiy(city_name text)
RETURNS setof cities AS
$BODY$
var plan = plv8.prepare( 'SELECT * FROM cities where name = $1 ',['text'] ) ;
var cursor = plan.cursor([city_name]);
row = cursor.fetch();
cursor.close();
plan.free();
return row;
$BODY$
LANGUAGE plv8 VOLATILE
COST 100;
ALTER FUNCTION get_citiy(city_name text)
OWNER TO postgres;
select get_citiy('mashhad');
‫دوم‬ ‫بخش‬ ‫پایان‬
‫شما‬ ‫توجه‬ ‫از‬ ‫تشکر‬ ‫با‬
‫مقدم‬ ‫اسدی‬ ‫بنی‬ ‫عباس‬
baniasadi@meedc.net
‫پاک‬ ‫دست‬ ‫محمد‬
m.dastpak@meedc.net

More Related Content

PPTX
MongoDB (Advanced)
PDF
More Stored Procedures and MUMPS for DivConq
PPTX
Java and XML
TXT
Programação c#- Criar um documento no Word
PPT
XML - State of the Art
PDF
Immutability, and how to do it in JavaScripts
PDF
Java script introducation & basics
 
PPTX
Oracle Database - JSON and the In-Memory Database
MongoDB (Advanced)
More Stored Procedures and MUMPS for DivConq
Java and XML
Programação c#- Criar um documento no Word
XML - State of the Art
Immutability, and how to do it in JavaScripts
Java script introducation & basics
 
Oracle Database - JSON and the In-Memory Database

What's hot (20)

PPTX
Indexing and Query Optimizer (Aaron Staple)
PDF
UKOUG Tech14 - Using Database In-Memory Column Store with Complex Datatypes
PDF
MongoDB Advanced Topics
PDF
Wed 1630 greene_robert_color
PDF
Bio it 2005_rdf_workshop05
PDF
Data access 2.0? Please welcome: Spring Data!
PPTX
Introduction to NOSQL And MongoDB
PDF
The Ring programming language version 1.5.4 book - Part 37 of 185
PDF
Exploring data models for heterogenous dialect data: the case of e​xplore.bre...
PDF
The Ring programming language version 1.2 book - Part 26 of 84
PDF
An introduction into Spring Data
ZIP
CouchDB-Lucene
PPTX
Grails GORM - You Know SQL. You Know Queries. Here's GORM.
PDF
Querydsl overview 2014
PPTX
Breaking down data silos with the open data protocol
PPTX
Mongo db basic installation
PDF
Spring Data JPA from 0-100 in 60 minutes
ODP
Grails: a quick tutorial (1)
Indexing and Query Optimizer (Aaron Staple)
UKOUG Tech14 - Using Database In-Memory Column Store with Complex Datatypes
MongoDB Advanced Topics
Wed 1630 greene_robert_color
Bio it 2005_rdf_workshop05
Data access 2.0? Please welcome: Spring Data!
Introduction to NOSQL And MongoDB
The Ring programming language version 1.5.4 book - Part 37 of 185
Exploring data models for heterogenous dialect data: the case of e​xplore.bre...
The Ring programming language version 1.2 book - Part 26 of 84
An introduction into Spring Data
CouchDB-Lucene
Grails GORM - You Know SQL. You Know Queries. Here's GORM.
Querydsl overview 2014
Breaking down data silos with the open data protocol
Mongo db basic installation
Spring Data JPA from 0-100 in 60 minutes
Grails: a quick tutorial (1)
Ad

Similar to Postgresql Server Programming (20)

PPTX
Mapping Graph Queries to PostgreSQL
PPTX
PostgreSQL 9.4 JSON Types and Operators
PDF
NoSQL Best Practices for PostgreSQL / Дмитрий Долгов (Mindojo)
ODP
An Introduction to Postgresql
ODP
Meet the-other-elephant
PDF
JSON Processing in the Database using PostgreSQL 9.4 :: Data Wranglers DC :: ...
PDF
Webscale PostgreSQL - JSONB and Horizontal Scaling Strategies
PDF
NoSQL store everyone ignored - Postgres Conf 2021
PDF
Postgres vs Mongo / Олег Бартунов (Postgres Professional)
PDF
Oh, that ubiquitous JSON !
PDF
10 Reasons to Start Your Analytics Project with PostgreSQL
PDF
PostgreSQL, your NoSQL database
PPTX
Power JSON with PostgreSQL
 
PDF
JDD 2016 - Tomasz Borek - DB for next project? Why, Postgres, of course
PDF
NoSQL on ACID - Meet Unstructured Postgres
 
PPTX
PostgreSQL's Secret NoSQL Superpowers
PDF
NodeUkraine - Postgresql для хипстеров или почему ваш следующий проект должен...
PDF
PGConf.ASIA 2019 Bali - Upcoming Features in PostgreSQL 12 - John Naylor
PPTX
Introduction to sql_01
PDF
PostgreSQL - Case Study
Mapping Graph Queries to PostgreSQL
PostgreSQL 9.4 JSON Types and Operators
NoSQL Best Practices for PostgreSQL / Дмитрий Долгов (Mindojo)
An Introduction to Postgresql
Meet the-other-elephant
JSON Processing in the Database using PostgreSQL 9.4 :: Data Wranglers DC :: ...
Webscale PostgreSQL - JSONB and Horizontal Scaling Strategies
NoSQL store everyone ignored - Postgres Conf 2021
Postgres vs Mongo / Олег Бартунов (Postgres Professional)
Oh, that ubiquitous JSON !
10 Reasons to Start Your Analytics Project with PostgreSQL
PostgreSQL, your NoSQL database
Power JSON with PostgreSQL
 
JDD 2016 - Tomasz Borek - DB for next project? Why, Postgres, of course
NoSQL on ACID - Meet Unstructured Postgres
 
PostgreSQL's Secret NoSQL Superpowers
NodeUkraine - Postgresql для хипстеров или почему ваш следующий проект должен...
PGConf.ASIA 2019 Bali - Upcoming Features in PostgreSQL 12 - John Naylor
Introduction to sql_01
PostgreSQL - Case Study
Ad

More from عباس بني اسدي مقدم (20)

PDF
نگاهی به آمار نامه دارویی ایران در سال ۱۴۰۰
PDF
نگاهی به آمارنامه دارویی کشور در سال ۱۴۰۱
PDF
چگونه بدون مراجعه به پزشک از لوزه های سالمی برخوردار باشیم؟
PDF
عوامل مسمومیت بدن چیست و سم زدایی با چه علایمی بروز می کند؟
PDF
تغذیه از منظر قرآن کریم - چگونه با عمل به آیات قرآن به سلامت جسمانی برسیم ؟
PDF
پروژه پورتال جامع سازمانی
PDF
چارچوب متن باز جهت توسعه سیستم های نرم افزاری
PDF
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
PDF
Software architecture002
PDF
Open Source Datawarehouse
PDF
طرح چارچوب متن باز تولید نرم افزار
PDF
سیستم رسیدگی به شکایات
PDF
گزارش دستیابی به اهداف ۱۴۰۵
PDF
طرح رایانش ابری در صنعت برق خراسان
ODP
فروش اینترنتی انشعاب
PDF
دستورالعمل تعیین مستمر تلفات انرژی
PDF
معماری جاری نرم افزار های شرکت
PDF
معماری سازمانی سیستم های اطلاعاتی
PDF
گزارش عملکرد دفتر فن آوری اطلاعات و ارتباطات
نگاهی به آمار نامه دارویی ایران در سال ۱۴۰۰
نگاهی به آمارنامه دارویی کشور در سال ۱۴۰۱
چگونه بدون مراجعه به پزشک از لوزه های سالمی برخوردار باشیم؟
عوامل مسمومیت بدن چیست و سم زدایی با چه علایمی بروز می کند؟
تغذیه از منظر قرآن کریم - چگونه با عمل به آیات قرآن به سلامت جسمانی برسیم ؟
پروژه پورتال جامع سازمانی
چارچوب متن باز جهت توسعه سیستم های نرم افزاری
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
Software architecture002
Open Source Datawarehouse
طرح چارچوب متن باز تولید نرم افزار
سیستم رسیدگی به شکایات
گزارش دستیابی به اهداف ۱۴۰۵
طرح رایانش ابری در صنعت برق خراسان
فروش اینترنتی انشعاب
دستورالعمل تعیین مستمر تلفات انرژی
معماری جاری نرم افزار های شرکت
معماری سازمانی سیستم های اطلاعاتی
گزارش عملکرد دفتر فن آوری اطلاعات و ارتباطات

Recently uploaded (20)

PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Pre independence Education in Inndia.pdf
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PPTX
Cell Types and Its function , kingdom of life
PDF
Complications of Minimal Access Surgery at WLH
PPTX
Pharma ospi slides which help in ospi learning
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
Lesson notes of climatology university.
PDF
01-Introduction-to-Information-Management.pdf
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
GDM (1) (1).pptx small presentation for students
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
Module 4: Burden of Disease Tutorial Slides S2 2025
PPH.pptx obstetrics and gynecology in nursing
Pre independence Education in Inndia.pdf
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Microbial disease of the cardiovascular and lymphatic systems
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
Cell Types and Its function , kingdom of life
Complications of Minimal Access Surgery at WLH
Pharma ospi slides which help in ospi learning
Final Presentation General Medicine 03-08-2024.pptx
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Lesson notes of climatology university.
01-Introduction-to-Information-Management.pdf
2.FourierTransform-ShortQuestionswithAnswers.pdf
Anesthesia in Laparoscopic Surgery in India
Renaissance Architecture: A Journey from Faith to Humanism
GDM (1) (1).pptx small presentation for students

Postgresql Server Programming