postgreSQL基本操作(2)

一、 数据库创建:
创建方式基本和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

交叉连接的特点:
就是两张表做笛卡儿积

猜你喜欢

转载自blog.csdn.net/qq_37779333/article/details/84379072