sql学习-postgresql

本文介绍了SQL的基本操作,包括查询、插入、更新和删除等,并详细解释了关系型数据库管理系统(RDBMS)的特点及如何使用SQL进行数据库的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.w3school.com.cn/sql/sql_syntax.asp
SQL 能做什么?

SQL 面向数据库执行查询
SQL 可从数据库取回数据
SQL 可在数据库中插入新的记录
SQL 可更新数据库中的数据
SQL 可从数据库删除记录
SQL 可创建新数据库
SQL 可在数据库中创建新表
SQL 可在数据库中创建存储过程
SQL 可在数据库中创建视图
SQL 可以设置表、存储过程和视图的权限

RDBMS
关系型数据库管理系统(Relational Database Management System,RDBMS)它通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。
RDBMS的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database
数据库表

一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。
一定要记住,SQL 对大小写不敏感!
分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的语句。

字符类型
character varying(n), varchar(n) 变长,有长度限制
character(n), char(n) 定长,不足补空白
text 变长,无长度限制

基本语句
查看表的行数
select count(*) from table;查看表中行的数目
DELETE FROM table_name;删除表中的所有行
drop db 删除数据库
drop table tablename; 删除表结构
alter table plugin1 owner to usr;将表plugin1的owner改为usr
\c usr;切换到usr数据库中
\d 查看数据库中的所有表
psql -U usr-d dbname -h X.X.X.X
\l 查看数据库
\d tablename 查看表结构

在已有的表里添加字段:
alter table [表名] add column [字段名] [类型];
删除表中的字段:
alter table [表名] drop column [字段名];
重命名一个字段:
alter table [表名] rename column [字段名A] to [字段名B];
给一个字段设置缺省值:
alter table [表名] alter column [字段名] set default [新的默认值];
去除缺省值:
alter table [表名] alter column [字段名] drop default;
在表中插入数据:
insert into 表名 ([字段名m],[字段名n],……) values ([列m的值],[列n的值],……);
修改表中的某行某列的数据:
update [表名] set [目标字段名]=[目标值] where [该行特征];
删除表中某行数据:
delete from [表名] where [该行特征];
delete from [表名];–删空整个表

创建表 参数
create table
{
INHERITS 继承,父表修改子表相关也修改
LIKE 仅仅借鉴结构,无关联
UNIQUE (column constraint) 表示某字段在全范围内必须唯一
PRIMARY KEY (column constraint) 设置主键(唯一、非NULL)
CHECK ( expression ) 声明一个生成布尔结果的表达式,每次插入必须保证为真,否则不会插入而且返回一个异常
WITH ( storage_parameter [= value] [, … ] ) 其中 WITH (OIDS) 给新表中的每一行都分配一个 OID(对象标识符) 反之 WITH (OIDS=FALSE)
}

查询表
这里使用了AS子句,给输出字段重新命名。
SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;

你可以要求返回的查询是排好序的。
SELECT * FROM weather
ORDER BY city;
SELECT * FROM weather
ORDER BY city, temp_lo;

可以要求查询的结果按照某种顺序排序,并且消除重复行的输出:
SELECT DISTINCT city
FROM weather;

两个表联合查找
SELECT *
FROM weather, cities
WHERE city = name;
但是这并不是一个好的习惯,应该讲字段的全称写出来

SELECT weather.city, weather.temp_lo, weather.temp_hi,
       weather.prcp, weather.date, cities.location
    FROM weather, cities
    WHERE cities.name = weather.city;

SERIAL primary key自增主键
\c dbname username 切换用户

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值