一、 数据库创建:
创建方式基本和Mysql数据库的创建方式一样。基本格式为:
create database database_name;
查询本地中的数据库:
postgres=# \1
二 、 基本操作CRUD
(1)创建语句基础语法格式:
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);
(2)插入语句:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
需要注意的点是:value与数据库之中的column要进行匹配;
当然除了写SQL脚本的形式,还有UI界面的操作形式。可以在UI界面当中选中自己的表完后进行右键1进行操作,选择INSERT 完后进行操作。具体操作看个人吧,个人更喜欢写SQL脚本,关于UI界面的操作可以去相关初级教程进行收索。
(3)修改操作
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
具体在实际操作中用?进行动态入参的形式比较常见。和Mysql语法也很类似。这里就不具体介绍了。
(4)查询语句
这个相比之下,语法点相对比较多吧,初级水准来讲的话,和大多数SQL类似,主要的语法点也就那么几个。下面听小主详细介绍一下吧:
(1)一般情况的简单查询:
SELECT "column1", "column2".."column" FROM "table_name";
如果进行全表扫描的话,也可以写成这样:
SELECT * FROM "table_name";
这里的*是通配符,简单理解成查询表中的所有字段就OK。默认顺序也是和表中的顺序是一样的。
(2)基础之上的结合where子句进行
SELECT "column1", "column2".."column" FROM "table_name"
where cloumn = condition;
1)结合and|or语句进行:
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition]
AND |OR [search_condition];
2).结合not语句进行
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] NOT [condition];
3)结合order by语句进行的查询
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
查询参数解析:
column_list:它指定要检索的列或计算。
table_name:它指定要从中检索记录的表。FROM子句中必须至少有一个表。WHERE conditions:可选。 它规定必须满足条件才能检索记录。
ASC:也是可选的。它通过表达式按升序排序结果集(默认,如果没有修饰符是提供者)。DESC:也是可选的。 它通过表达式按顺序对结果集进行排序。
4)结合group by语句进行的查询:
SELECT column-list
FROM table_name
WHERE [conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
需要注意的点:
group by 进行分组的时候,通常和SQL中的一些函数进行组合.
个人理解吧,就是在基础语句的基础之上完后进行的二次限定。
也可以理解成在结果集中 附加的检索条件。
相应例子:
SELECT NAME, SUM(SALARY)
FROM work
GROUP BY NAME;
从某一方面来讲,可以减少代码之中的记录冗余。
5)模糊查询 LIKE
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] LIKE [condition];
具体例子:
SELECT *
FROM EMPLOYEES
WHERE NAME LIKE 'Ma%';
6)between操作:
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] BETWEEN [condition];
三、 连接查询:
连接查询的几种类型分类:
(1)、内连接(INNER JOIN)
(2)、左外连接(LEFT OUTER JOIN)
(3)、右外连接(RIGHT OUTER JOIN)
(4)、全连接(FULL OUTER JOIN)
(5)、跨连接(CROSS JOIN)
首先介绍下内连接
SELECT table1.columns, table2.columns
FROM table1
INNER JOIN table2
ON table1.common_filed = table2.common_field;
内连接特点:
又称为简单连接,或者自然连接,是一种常见的连接查询
内连接使用比较运算符,对两个表中的数据,进行比较,并列出与连接条件匹配的数据行,组合成新的记录。
在内连接查询中,只有满足条件的记录,才会出现在查询结果中
语法格式
SELECT 查询字段 FROM 表1 [INNER] JOIN 表2 ON 表1.关系字段=表2.关系字段;
左外连接
SELECT table1.columns, table2.columns
FROM table1
LEFT OUTER JOIN table2
ON table1.common_filed = table2.common_field;
左连接特点:
左连接可以理解为,进行两张表的连接查询,若连接条件不成立的情况的时候,默认情况下保留的是左表的数据,右表的数据用NULL值来进行替代。
反之就是右连接的特点。这里不做右连接的介绍了。
全外连接
SELECT table1.columns, table2.columns
FROM table1
FULL OUTER JOIN table2
ON table1.common_filed = table2.common_field;
全外连接的特点:
简单理解就是,查询出两张表的记录,完后不满足条件的直接以空值查询出来就OK。
交叉连接:
SELECT coloums
FROM table1
CROSS JOIN table2
交叉连接的特点:
就是两张表做笛卡儿积