Assuming you're joining on columns with no duplicates, which is a very common case:
An inner join of A and B gives the result of A intersect B, i.e. the inner part of a Venn diagram intersection.
An outer join of A and B gives the results of A union B, i.e. the outer parts of a Venn diagram union.
Examples
Suppose you have two tables, with a single column each, and data as follows:
A B
- -
1 3
2 4
3 5
4 6
Note that (1,2) are unique to A, (3,4) are common, and (5,6) are unique to B.
Inner join
An inner join using either of the equivalent queries gives the intersection of the two tables, i.e. the two rows they have in common.
select * from a INNER JOIN b on a.a = b.b;
select a.*, b.* from a,b where a.a = b.b;
a | b
--+--
3 | 3
4 | 4
Left outer join
A left outer join will give all rows in A, plus any common rows in B.
select * from a LEFT OUTER JOIN b on a.a = b.b;
select a.*, b.* from a,b where a.a = b.b(+);
a | b
--+-----
1 | null
2 | null
3 | 3
4 | 4
Right outer join
A right outer join will give all rows in B, plus any common rows in A.
select * from a RIGHT OUTER JOIN b on a.a = b.b;
select a.*, b.* from a,b where a.a(+) = b.b;
a | b
-----+----
3 | 3
4 | 4
null | 5
null | 6
Full outer join
A full outer join will give you the union of A and B, i.e. all the rows in A and all the rows in B. If something in A doesn't have a corresponding datum in B, then the B portion is null, and vice versa.
select * from a FULL OUTER JOIN b on a.a = b.b;
a | b
-----+-----
1 | null
2 | null
3 | 3
4 | 4
null | 6
null | 5
From MySQL docs:
A character set is a set of symbols
and encodings. A collation is a set of
rules for comparing characters in a
character set. Let's make the
distinction clear with an example of
an imaginary character set.
Suppose that we have an alphabet with
four letters: 'A', 'B', 'a', 'b'. We
give each letter a number: 'A' = 0,
'B' = 1, 'a' = 2, 'b' = 3. The letter
'A' is a symbol, the number 0 is the
encoding for 'A', and the combination
of all four letters and their
encodings is a character set.
Now, suppose that we want to compare
two string values, 'A' and 'B'. The
simplest way to do this is to look at
the encodings: 0 for 'A' and 1 for
'B'. Because 0 is less than 1, we say
'A' is less than 'B'. Now, what we've
just done is apply a collation to our
character set. The collation is a set
of rules (only one rule in this case):
"compare the encodings." We call this
simplest of all possible collations a
binary collation.
But what if we want to say that the
lowercase and uppercase letters are
equivalent? Then we would have at
least two rules: (1) treat the
lowercase letters 'a' and 'b' as
equivalent to 'A' and 'B'; (2) then
compare the encodings. We call this a
case-insensitive collation. It's a
little more complex than a binary
collation.
In real life, most character sets have
many characters: not just 'A' and 'B'
but whole alphabets, sometimes
multiple alphabets or eastern writing
systems with thousands of characters,
along with many special symbols and
punctuation marks. Also in real life,
most collations have many rules: not
just case insensitivity but also
accent insensitivity (an "accent" is a
mark attached to a character as in
German 'ö') and multiple-character
mappings (such as the rule that 'ö' =
'OE' in one of the two German
collations).
Best Answer
Yes you're right, I confirm that in French we use the abbreviation SGBD for 'Système Gestion de Base de Données' (DataBase Management System / DBMS) to which we can sometimes add R (SGBDR) 'Système Gestion de Base de Données Relationnelle' (RDBMS).