LPI 1.05 Marcel Nijenhof. Agenda ● Customize and use the shell environment ● Customize or write simple scripts ● SQL data management.

Slides:



Advertisements
Verwante presentaties

Advertisements

PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Module 7 – Hoofdstuk 5 (4) SQL – voorwaarden aan groepen en meerdere tabellen.
MySQL-acties Klassikaal: Wijnen.sql. 1.Toon alle wijnen die er zijn. Toon de naam, kleur en prijs. SELECT `naam`,`kleur`,`prijs` FROM `wijnen`
Arduino project.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Inhoud Kenmerken ODBC HTML & PHP Inlogfunctie. Inhoud Kenmerken ODBC HTML & PHP Inlogfunctie.
VBA en VBS Een introductie.
LauwersCollege Buitenpost Informatica
Inleiding Databanken: oefeningen 4 Sven Casteleyn 4 Lokaal: 6G HomePage: te bereiken via
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Basis 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Hogere-orde functies: herhaald patroon? Parametrizeer! product :: [Int]  Int product [ ]= product (x:xs)= 1 product xs x * and :: [Bool]  Bool and [
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Vorige week: Referentiele integriteit
Inleidend probleem Data structuur (hiërarchie van classes)
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
Consoleprogramma’s Hoofdstuk 19. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s.
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
Workshop PHP Een productencatalogus Met database.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
PHP & MYSQL LES 01 PHP BASICS. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
SQL ( SERVER ) Les #02: T-SQL. A GENDA Herhaling les 4 Views SELECT…INTO Beheren van tabellen: CREATE ALTER DROP Opdracht voor de volgende les.
LauwersCollege Buitenpost Informatica
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 3 redirection,
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
24/04/2015IT-Assurance1 IT-Assurance deeltijd 4. Inleiding SQL Introductie in de basisfuncties Bijbehorend lesmateriaal: -AIV-boek van Derksen en Crins.
1 July SQL Les July Agenda Herhaling Herhaling Stored Procedures Stored Procedures Oefeningen Oefeningen User Defined Functions User.
Hoofdstuk 11 Databasemanagementsystem. hoofdstuk 112 STROKENDIAGRAMMEN llnrvoornaamtussenvachternaamstraathuisnummerpostcodeplaatstelefoongeslachtgebdatumklas.
2 August SQL Les August Agenda Herhaling Herhaling Cursors Cursors MS SQL Server and MS Excel MS SQL Server and MS Excel Oefeningen.
Les 0 Structured Query Language SQL. Programma Les 0 – Introductieopdracht Les 1 Les 2 Les 3 Schriftelijke toets.
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
BIMAIV03 Les A1 BIMAIV03 Les A1 Databases. De gegevens in een database vormen de grondstof voor informatie De informatie wordt opgevraagd in de taal met.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Week 3 BIMAIV03 Les B3 BIMAIV03 Les B3. Opdracht 1 Van een artikel mogen maximaal 300 stuks verkocht worden. Verschillende klanten bestellen een aantal.
Week 6 BIMAIV03 les B1. DML en DDL ata D anipulation M anguage L ata D efinition D anguage L.
ANALYSE 3 INFANL01-3 WEEK 6 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Subqueries met correlaties ▸ Subqueries zonder correlaties ▸ Views ▸
1 KPN Mobiel – Introductie Repository Object Browser & Designer 10 Designer 10g & Repository Object Browser Maandag 28 februari 2005 Lucas Jellema (AMIS)
Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet.
Informatie beoordelen If else Switch En Wiskunde.
DBS22 - Recap PL/SQL Wilrik R1_4.44
– Software development fundamentals
SQL Cursus deel
PHP arrays.
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
LauwersCollege Buitenpost Informatica
Informatie-analyse 1: Er zijn veel manieren om een database te vullen
Software Development fundamentals
SQL Les February 2019.
SQL Les February 2019.
SQL Les 3 17 February 2019.
SQL Les 3 23 February 2019.
SQL Les 7 24 February 2019.
Database connect formulieren 1 februari 2016.
SQL Les 1 5 April 2019.
SQL Les 6 14 April 2019.
SQL Les 9 12 May 2019.
SQL Les 4 12 May 2019.
– Software development fundamentals
SQL Les May 2019.
Software Development fundamentals
Software Development fundamentals
Databases SQL.
Python – For loop + strings
Transcript van de presentatie:

LPI 1.05 Marcel Nijenhof

Agenda ● Customize and use the shell environment ● Customize or write simple scripts ● SQL data management

● Customize and use the shell environment ● Omgaan met variabele ● Export/set/unset ● Aliasen en functies ● Meerdere commando's op een regel

Omgaan met variabele ● Waarde geven ● VAR=test ● export VAR ● Export VAR=test ● Gebruik ● b.v – echo $VAR – Echo ${VAR}

Gevorderd gebruik ● Op passen met einde ● VAR=mijn echo ${VAR}test echo $VARtest ● Manipulaties tijdens gebruik ● echo ${NIET:-niet} NIET=wel echo ${NIET:-nietl} ● Veel meer mogelijk

export ● Waarom exporteren ● Maak het “test_script”: #!/bin/sh echo ${test_var} ●./test_script ● test_var=Yep./test_script ● export test_var./test_script

Welke variabele zijn er? ● Geporteerde variabele ● env – HOME=/home/marceln – SHELL=/bin/sh –... ● Alle variabele & functies ● set

set & status shell ● Aanpassen gedrag shell via set ● Debuging: set -x ● Stoppen met fouten: set -e ● Niet uitvoeren: set -n ● Gebruik van vi editing command line: set -o vi ● Globbing uit setten: set -o noglob ● Nog veel meer

Variabele & functies verwijderen ● unset VAR ● unset function ● Login scripten ● Functies en aliases

Login & Opstarten shell & afsluiten ● Inloggen ● /etc/profile ● ~/.bash_profile ● ~/.profile ● Opstarten ● ~/.bashrc ● Uit loggen ● ~/.bash_logout

aliases ● Een verwijzing na een commando ● alias ll='ls -latr' – ll --> ls -latr – ll *txt --> ls -latr *txt ● Aliases hebben geen eigen logica ● Vervaning van alias door de string van de alias ● Goed bruikbaar: – voor vaak gebruikte opties – Lange commando's

functions ● Functies zijn ● stukjes shell code – Bevatten logica (shell script) ● Hebben een argument lijst ● Je kunt aliases door functies vervangen ● Andere afhandeling argumenten ● Anders om kan niet

Voorbeeld ll functie ● Alias ● alias ll='ls -latr' ● Functie ll ● ll() { ls -latr } ● Zie het verschil in het afhandelen van de argumenten

Voorbeeld functie argumenten ● E() { echo ARGS: $# echo LIST: echo 0: $0 echo 1: $1 echo 2: $2 } ● B.v. E a b c d e

Meerdere commando's ● Serie van commando's ● echo 1; echo 2; echo 3 ● Bij goed resultaat (return 0) tweede commando ● true && echo Ja false && echo ja ● Bij fout resultaat (return != ) tweede commando ● true || echo Ja false || echo ja

Customize or write simple scripts ● Inleiding ● Voorbeeld scripts met argument lijsten ● For loop ● While loop ● If then else fi ● Case statement ● Password generator ● Shoot your self in the foot

Inleiding shell scripting ● Shell scripten zijn de lijm van een unix systeem ● Opstart scripten ● Batch jobs ● Automatisering van reeksen van commando's ● Eenvoudige cgi scripten

Shell script 1 ● #!/bin/sh echo ARGS: $# echo LIST: set -x echo 0: $0 echo 1: $1 echo 2: $2

Shell script 2 ● #!/bin/sh echo ARGS: $# echo LIST: for i in $(seq 1 $#) do echo ARG $i: $1 shift echo LIST: done ● Note: $(seq 1 $#) = `seq 1 $#` = $#

Shell script 3 ● #!/bin/sh echo ARGS: $# echo LIST: I=1 while [ "$1" ] do echo ARG $i: $1 i=$(($i+1)) shift done

Shell script 4 ● #!/bin/sh echo ARGS: $# echo LIST: I=1 for a in do echo ARG $i: $a i=$(($i+1)) ● done

Shell script 5 ● I=1 for a in do if [ $i != 5 ] then echo ARG $i: $a else echo Bestaat niet fi i=$(($i+1)) done

Shell script 6 I=1 for a in do case $a in a|b) echo $i: a of b ;; c|d|e) echo $i: c of d of e ;; f*|g*) echo $i: f\* of g\*: $a ;; *) echo $i: arg: $a ;; esac i=$(($i+1)) done

Wachtwoord generator #!/bin/sh S="ABC...XYZabc...xyz =_%" SL=$(echo $S | wc -c) LEN=8 if [ $1 ] then LEN=$1 fi for i in $(seq 1 $LEN) do PW=$PW${S:$(($RANDOM%$SL+1)):1} done echo ${PW}

Shoot in your foot? ● #!/bin/sh echo start kill -1 $$ echo end ● Maar in dit geval raak je wel meer!

SQL data management ● Inleiding sql ● Extensies ● sqlite3 ● Sql ● drop/create table/create index ● insert ● select ● update ● delete

Inleiding sql ● Diverse database engines ● Opensource – Sqlite – Mysql – Postgres ● Commercieel – Oracle – Sybase – Microsoft SQL Server ● Een taal voor alle databases

SQL & Extensies ● Sql is een iso standaard ● Alle databases supporten min of meer de standaard ● Alle databases kennen hun eigen extensies – Triggers – Functies ● Lpi kijkt alleen na de basis sql commando's ● Database onafhankelijk

Opensource databases ● Sqlite3 ● Filebased database (Geen server) ● Command line access interface ● Opstarten ● sqlite3 ● Voorbeelden zijn gemaakt met sqlite3 ● Werken ook in mysql ● Vermoedelijk ook in postgresql/oracle/sybase

drop/create tables ● drop table nl; drop table p; ● Zeker er van zijn dat de tabellen niet bestaan ● create table nl (i int, s varchar(255)); create table p (i int, p char(1), f varchar(255)); ● Creeer de nieuwe tabellen ● create index nl_idx on nl (i); create index p_idx on p (i); ● Creëer indexen om het zoeken te versnellen

Insert (nl) ● insert into nl values (1, "een"); insert into nl values (2, "twee"); insert into nl values (3, "drie"); insert into nl values (4, "vier"); insert into nl values (5, "vijf"); insert into nl values (8, "acht"); insert into nl values (11, "elf");

Insert (p) ● insert into p values (2, "y", "2"); insert into p values (3, "y", "3"); insert into p values (4, "n", "2^2"); insert into p values (5, "y", "5"); insert into p values (6, "n", "2*3"); insert into p values (7, "y", "7"); insert into p values (8, "n", "2^3"); insert into p values (9, "n", "3^2"); insert into p values (10, "n", "2*5");

select ● select * from nl; ● Laat alle elementen van nl zien ● select * from nl order by s; ● Laat alle elementen van nl gezien geordend op s ● select * from nl where i < 3; ● Laat alle elementen kleiner dan 3 zien

Select join ● select * from nl, p where p.i <4 and nl.i<3; ● Kruis product!: 1|een|2|y|2 1|een|3|y|3 2|twee|2|y|2 2|twee|3|y|3 ● In het algemeen niet zinnig

Join met conditie ● select nl.i, nl.s, p.p, p.f from nl JOIN p where nl.i = p.i; ● 2|twee|y|2 3|drie|y|3 4|vier|n|2^2 5|vijf|y|5 8|acht|n|2^3 ● Bij het getal staat nu de juiste factorisering. ● Waarde die niet gevonden worden in p ontbreken!

Left join ● select nl.i, nl.s, p.p, p.f from nl LEFT JOIN p on nl.i = p.i; ● 1|een|| 2|twee|y|2 3|drie|y|3 4|vier|n|2^2 5|vijf|y|5 8|acht|n|2^3 11|elf|| ● Ontbrekende waarde in p opgevuld met lege waarde (NULL).

Select met groep functie ● select p, count(p) from p group by p; ● Telt het aantal keer dat p voorkomt ● N|5 y|4 ● Ook met b.v. Sum, max, avg

Update/delete ● update nl set s="eight" where i=8; ● Maakt colum s van de rij met i=8 “eight” ● Zonder where statement worden alle rijen geupdate met deze waarde ● delete from nl where i=2; ● Verwijderd alle rijen uit nl waar i=2 ● Zonder where worden alle rijen verwijderd ● truncate table nl – Niet sqlite3

Vragen