PostgreSQL数据库(SQL语言)

PostgreSQL(SQL语言)

  • 创建表: CREATE TABLE 表名
CREATE TABLE weather (
    city            varchar(80),
    temp_lo         int,           -- 最低温度
    temp_hi         int,           -- 最高温度
    prcp            real,          -- 湿度
    date            date
);
  • 在表中增加行: INSERT INTO 表名 VALUES (插入的数据);
INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
  • 查询一个表:SELECT * FROM 表名
SELECT * FROM weather;
  • 使用WHERE来修饰 SELECTSELECT * FROM 表名 WHERE 表达式;
SELECT * FROM weather
    WHERE city = 'San Francisco' AND prcp > 0.0;
  • order 修饰SELECTSELECT * FROM 表名 ORDER BY 属性;
SELECT * FROM weather
    ORDER BY city;
  • 在查询中消除重复的行:SELECT DISTINCT 属性 FROM 表名;
SELECT DISTINCT city
    FROM weather;
  • 更新现有的行:UPDATE 属性 SET 设置属性的新的值 WHERE 范围;
UPDATE weather
    SET temp_hi = temp_hi - 2,  temp_lo = temp_lo - 2
    WHERE date > '1994-11-28';
  • 删除表中数据:DELETE FROM 表名 WHERE 条件;
DELETE FROM weather WHERE city = 'Hayward';
  • 列完整性约束:
PRIMARY KEY —— 主键
NOT NULL —— 非空值
NULL —— 空值
UNIQUE —— 值唯一
CHECK —— 有效性检查
DEFAULT —— 缺省值
  • 表约束定义主键:CONSTRAINT <约束名> PRIMARY Key(主键列)
  • 表约束定义外键:CONSTRAINT <约束名> FOREIGN Key(外键列)
  • 修改表:ALTER TABLE <表名> <修改方式>;
//ADD修改方式,用于增加新列或列完整性约束
ALTER TABLE <表名> ADD <新列名称><数据类型>|[完整性约束]
  • 限定范围:BETWEEN xxx AND xxx
SELECT  *
FROM  STUDENT
WHERE BirthDay BETWEEN ‘2000-01-01’ AND ‘2000-12-30’;
  • 若要分专业统计STUDENT表中男生人数,但限定只显示人数大于2的人数,其查询SQL语句如下:
SELECT  Major  AS 专业,  COUNT(StudentID) AS 学生人数
FROM  Student
WHERE  StudentGender=’男’
GROUP  BY  Major
HAVING  COUNT(*)>2;
  • 多表连接关联查询:SELECT <目标列>[,<目标列>…] FROM <表名1> JOIN <表名2> ON <连接条件>;
SELECT  B.CollegeName AS 学院名称,  A.TeacherID  AS 编号, A.TeacherName  AS 姓名,  A.TeacherGender  AS 性别,  A. TeacherTitle  AS 职称
FROM  TEACHER  AS  A  JOIN  COLLEGE  AS  B
ON  A.CollegeID=B.CollegeID 
ORDER  BY  B.CollegeName, A.TeacherID;
  • 权限授予:GRANT <权限列表> ON <数据库对象> TO <用户或角色> [ WITH GRANT OPTION ];
  • 权限回收:REVOKE <权限列表> ON <数据库对象> FROM <用户或角色>;
  • 权限拒绝:DENY <权限列表> ON <数据库对象> TO <用户或角色> ;
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值