首页 > 数据库 > 数据库开发技术 > 为什么说PostgreSQL是面向对象的数据库?
public class Main {
public static void main(String[] args) {
Person animal = new Animal();
animal.setId(1);
animal.setName("大黄");
System.out.println(animal.getId() + ", " + animal.getName());
}
}
class Animal{
private Integer id;
private String name;
public void setId(Integer id){
this.id = id;
}
public String getId(){
return this.id;
}
public void setName(String name){
this.name = name;
}
public Integer getname(){
return this.name;
}
public void eat() {
System.out.println("The animal eats.");
}
}
CREATE TABLE animal(id integer, name varchar);
INSERT INTO animal(id, name) VALUES (1, '大黄');
SELECT id, name FROM animal;
class EmptyClass{
}
CREATE TABLE empty_table();
CREATE TYPE people AS (id integer, name varchar);
CREATE TABLE emp(p people);
INSERT INTO emp(p) VALUES ((1,'who'));
SELECT (p).id, (p).name FROM emp;
id|name|
--+----+
1|who |
public class Cat extends Animal {
private Integer legs;
@Override
public void eat() {
// 覆盖父类的方法
System.out.println("The cat eats.");
}
...
}
CREATE TABLE cat(legs integer) INHERITS (animal);
INSERT INTO cat(id, name, legs) VALUES (2, '橘猫', 4);
public class Main {
public static void main(String[] args) {
Animal animal1 = new Animal();
animal.eat(); // 输出 "The animal eats."
Animal animal2 = new Cat();
animal2.eat(); // 输出 "The cat eats."
}
}
-- 查询全部动物
SELECT id, name FROM animal;
id|name|
--+----+
1|大黄 |
2|橘猫 |
-- 只查询animal
SELECT id, name FROM ONLY animal;
id|name|
--+----+
1|大黄 |
-- 只查询猫科动物
SELECT id, name FROM cat;
id|name|
--+----+
2|橘猫 |
CREATE OR REPLACE FUNCTION add2(p1 integer, p2 integer)
RETURNS integer
AS $$
BEGIN
return p1+p2;
END; $$
LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION add2(p1 numeric, p2 numeric)
RETURNS numeric
AS $$
BEGIN
return p1+p2;
END; $$
LANGUAGE plpgsql;
原文作者:SQL编程思想;如有侵权,请联系管理员删除。