From 195e47794c9c430a713643dd92c15fc7c78f014c Mon Sep 17 00:00:00 2001 From: Medium Fries Date: Mon, 24 Sep 2018 17:33:48 -0700 Subject: [PATCH] ded but adding lec7 for db course --- cst337/lec/lec6.md | 7 +-- cst337/lec/lec7.md | 12 +++++ cst363/lab/db-mods-transactions-lab.pdf | Bin 0 -> 34481 bytes cst363/lab/outer-joins-lab.pdf | Bin 0 -> 31187 bytes cst363/lec/lec8.md | 60 ++++++++++++++++++++++++ 5 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 cst337/lec/lec7.md create mode 100644 cst363/lab/db-mods-transactions-lab.pdf create mode 100644 cst363/lab/outer-joins-lab.pdf create mode 100644 cst363/lec/lec8.md diff --git a/cst337/lec/lec6.md b/cst337/lec/lec6.md index 2da2946..c115a8e 100644 --- a/cst337/lec/lec6.md +++ b/cst337/lec/lec6.md @@ -1,6 +1,6 @@ # lec6 -> diagrams needed for this +> diagrams needed for this section ## Transistors @@ -22,8 +22,3 @@ When the base/gate is "on" we mean current can _not_ flow from the emitter to th > When we say that a gate is "on" we're really saying that it's open. -## Gates: AND, OR, NOT, XOR - -For this section we'll be using intel assembly syntax where the general syntax follows the form: `op src, dest`. -This will hold as long as op is the desired operation to represent the gate, src, will be one of our operands which holds the result after the operation, and dest holds the result after the operation. -### AND diff --git a/cst337/lec/lec7.md b/cst337/lec/lec7.md new file mode 100644 index 0000000..e0fda02 --- /dev/null +++ b/cst337/lec/lec7.md @@ -0,0 +1,12 @@ +# lec7 + +> this section also needs diagrams to make any sense + +Now we'll take about different gates. + +## OR +## AND +## XOR +## NOT + +## Resistor Bands diff --git a/cst363/lab/db-mods-transactions-lab.pdf b/cst363/lab/db-mods-transactions-lab.pdf new file mode 100644 index 0000000000000000000000000000000000000000..008ebfb936eeaf09c0b05eddcae258df86b7f256 GIT binary patch literal 34481 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%0D1rby0Srib=)UAczhy@9TxR;Y-~B@?Vp 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 literal 0 HcmV?d00001 diff --git a/cst363/lab/outer-joins-lab.pdf b/cst363/lab/outer-joins-lab.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fa6dded3de10c6f54b7841ea9640e0d0e4b89721 GIT binary patch literal 31187 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 HMG^iVuTKK( literal 0 HcmV?d00001 diff --git a/cst363/lec/lec8.md b/cst363/lec/lec8.md new file mode 100644 index 0000000..0c065aa --- /dev/null +++ b/cst363/lec/lec8.md @@ -0,0 +1,60 @@ +# lec8 + +## Lab + +The lab exercises for this lecture can found under `lab/` as `db-mods-transactions-lab.pdf`. + + +DB Modifications, plus transactions + +## Modifyinig Data + +Since we're dealing with data we may need to add, delete or modify entries in some table. + +When we have inserted data before we have done simple insertions like in the previous lab exercises `insert into tableName values(...);`. +Where the arguments are listed in the same order as they are listed in the table structure. + +However, we can pass arguments by name, elminating the need to provide them in a rigid order: +``` +insert into tableName(list, of, attributes) values('respective', 'data', 'entries'); +``` + +We can also move things from one table into another table. +``` +insert into targetTable select ... from hostTable; +``` + +### Deleting + +``` +delete from tableName where ...; +``` + +Deletes a _whole row_. +Caution: the delete operation also accepts tables as valid arguments so a query that returns multiple rows as a table will be deleted in the `targetTable` mentioned earlier. + +### Updating entries + +``` +update table set attribute=123 where def='abc'; +``` + +The above updates an attribute based on the condiftion `where def='abc'`. + +## Transactions + +Set of instructions which upon failure do not modify any state. + +``` +begin; + // set of commands + // wew +end; +``` + +## Inner/Outer Joins + +> left (left outer) + +_the outer part is implied so it's unnecessary to write it in_ +