摘要
postgre作为开源数据库中的翘楚,体量虽小但功能完善且强大,比之Mysql毫不逊色,在高校学生群体中备受欢迎,特别适合初学者用来学习数据库。本文主要介绍postgre的一些比较基本的命令和用法,至于比较高级的用法,会在后续博文中进行阐述。希望这篇博文会对路过的朋友有所帮助。
- 基本命令
- DDL
- DML
- DCL
目录
-
-
- 摘要
- 目录
- 基本命令
- DDL数据定义语言
- DML数据操作语言
-
基本命令
掌握 postgre基本命令是学习postgreDB的前提。
- 基本命令一览表 :
命令 | 功能 |
---|---|
\l | 查看数据库 |
\du | 查看用户/角色 |
\dt | 查看数据表 |
\c | 查看当前的数据库和用户 |
\c db | 切换至数据库db |
\encoding | 查看字符集 |
\select version(); | 查看数据库的版本 |
- 基本命令实现 :
1、查看数据库
2、查看用户/角色
3、查看数据表
4、查看当前连接的数据库和登陆的用户
5、切换至数据库db
6、查看字符集
7、查看数据库版本
DDL(数据定义语言)
DDL数据定义语言是数据库学习的基础内容,它包括create、alter、drop、comment、grant、revoke等内容。这里主要介绍一些基本用法。
- 主要用法实现:
create user linger with password ‘xxxxxx‘; //创建用户
drop user linger; //删除用户
alter user linger with password ‘xxxxxx‘; //更改用户密码
create database DB; //创建数据库DB
drop database DB; //删除数据库
create table teacher(
Tno varchar(10),
Tname varchar(10) unique not null,
Tsex char(2) check(Tsex in(‘男‘,‘女‘)),
Tage smallint,
constraint C1 primay key(Tno)
); //创建数据表
alter table teacher add column Location char(10); //修改数据表
drop table test;//删除数据表
create view v(sno,sname,sdept) as sno,sname,sdept from student; //创建视图
create or replace view v as select sno,sname,sdept from student where sdept!=‘MA‘; //修改视图
drop view v; //删除视图
grant all privileges on database weibo to linger;
revoke all privileges on database weibo from linger; //分配、释放权限
alter user linger valid until ‘2016-08-08‘; //给定用户的有效日期
create role father login nosuperuser nocreatedb nocreaterole noinherit encrypted password ‘xxxxxx‘; //创建组角色
create role son1 login nosuperuser nocreatedb nocreaterole inherit encrypted password ‘xxxxxx‘;
grant father to son1; //创建成员角色并分配权限(一)
create role son2 login nosuperuser nocreatedb nocreateroel inherit encrypted password ‘xxxxxx‘ in role father; //创建成员角色并分配权限(二)
DML(数据操作语言)
DDL数据操作语言是数据库学习的主要内容,它包括select、insert、delete、update、call、explain plan、lock table等内容。这里主要介绍一些基本用法。
- select基本用法:
SELECT [ ALL | DISTINCT | DISTINCT ON (distinct_expressions) ]
expressions
FROM tables
[WHERE conditions]
[GROUP BY expressions]
[HAVING condition]
[ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS FIRST | NULLS LAST ]]
[LIMIT [ number_rows | ALL]
[OFFSET offset_value [ ROW | ROWS ]]
[FETCH { FIRST | NEXT } [ fetch_rows ] { ROW | ROWS } ONLY]
[FOR { UPDATE | SHARE } OF table [ NOWAIT ]]; //这归纳了select几乎所有的用法,由于select用法极其复杂,下面只给出一些比较常见的用例。关于比较高级的用法我会在后续博客中进行详细分析。
select sno,sname,ssex,sdept from student where sage<20 or sdept=‘MA‘; //条件查询
select * from student where sage<20 union select * from student where sdept=‘MA‘; //集合查询
select sno,sname from student where sno in(select sno from student where sdept=‘MA‘); //嵌套查询
- update基本用法
UPDATE table
SET column1 = expression1 | DEFAULT,
column2 = expression2 | DEFAULT,
...
[WHERE conditions]; //update用法很简单
update student set sname=‘李勇‘ where sno=‘01‘;
update student set sname=‘王芳‘ where sno=‘02‘;
update student set sname=‘张立‘ where sno=‘03‘;
update student set sname=‘王敏‘ where sno=‘04‘;
update student set sname=‘刘晨‘ where sno=‘05‘;
update student set sname=‘黎勇‘ where sno=‘06‘;
select * from student;
- delete基本用法
DELETE FROM table
[WHERE conditions]; //delete也很简单
delete from student where sno=‘06‘;
- insert基本用法
INSERT INTO table
(column1, column2, ... )
VALUES
(expression1 | DEFAULT, expression2 | DEFAULT, ... ),
(expression1 | DEFAULT, expression2 | DEFAULT, ... ),
...; //增删查改四种操作,只有select比较复杂,别的都很简单。
insert into student values(‘06‘,‘李伟‘,‘M‘,18,‘IS‘);
- explain plan用法
explain select sno,sname from student where sage<20 and sdept=‘MA‘;
时间: 2024-11-12 03:04:47