PG学习记录

本文是一篇关于PostgreSQL(简称pg)的学习记录,涵盖了创建和删除数据库、建立表、插入记录、查询数据以及查看表信息的基础操作。通过SQL Shell(psql)进行交互式操作,介绍了pg的特性和使用技巧,包括使用SQL语句创建数据库、删除数据库、创建表、向表添加记录以及执行各种查询。此外,还讲解了如何查看表定义和数据库中的表及数据库名称。

本文中的样例来自pg的帮助文档。
首先还是介绍下pg,这是一个开源的关系型数据库,支持很多SQL特性,像复杂查询,外键约束,触发器,可更新视图,事务完整性,并发控制。同时,它还支持用户对其进行扩展,如添加数据类型,自定义函数、操作符、集合函数,索引方法,程序化处理语言。

pg的wiki查询,可以查阅相应的FAQ | pg的官网,可以下载安装包和相应的文档以及源码

学习版本PostgreSQL 9.4.1,OS为Windows 10 preview。

pg使用的是客户/服务器模式(C/S),一次pg的会话是由两个相互协调的进程组成的:

  • 服务器进程
    服务器进程管理数据库文件,接受来自服务的连接请求并代替客户端执行数据库操作。pg中的服务器程序是postgres。

  • 客户端进程
    客户端是指想要执行数据库操作的应用程序,也叫做前端。实际使用中,可以被叫做客户端的程序有很多,比如一个命令行操作工具,一个图像应用程序,一个需要访问数据库用于显示页面的web服务器,或者一个专用的数据库维护工具。

比较适合学习pg的方式是使用SQL Shell(psql)这个pg为我们提供命令行工具,可以通过SQL语句进行数据库操作的实现,而不用进入pgAdmin III。


1.创建数据库

SQL:create database mydb;
要记住psql中输入SQL语句之后要在末尾输入分号;,否则会被作为一个不完整的SQL语句,psql会继续在新一行等待用户的输入,而不会执行该语句。执行效果如下,会给出CREATE DATABASE的反馈。
创建数据库

2.删除数据库

SQL:drop database mydb;
删除数据库
tips:psql的进入:,打开psql后一直回车,[...]中的内容为默认参数,即可进入服务器为[localhost],数据库为默认数据库[postgres],端口号为安装时设置的端口[5432],用户名为默认用户[postgres]的数据库。若需要访问刚刚创建的mydb,可以重启psql,在Database参数处输入mydb,继续回车,如下图。
访问数据库mydb
psql的帮助为\h,退出为\q(\q也可以用于在帮助中退出,当帮助显示的太多以--More--显示时,可以使用\q退出帮助提示)。

3.创建表

SQL:create table weather(
city varchar(80),
temp_lo int, -- low temperature
temp_hi int, -- high temperature
prcp real, -- precipitation
date date
);

create table cities(
name varchar(80),
location_x real,
location_y real
);

创建表weather
创建表cities
SQL中使用--作为行注释开头,表示接下来的部分为注释。

4.向表添加记录

全填充方式:
SQL:insert into weather values('San Francisco', 46, 50, 0.25, '1994-11-27');
insert into cities values('San Francisco', -194.0, 53.0);
选择填充:
SQL:insert into weather (date, city, temp_hi, temp_lo)
values('1994-11-29', 'Hayward', 54, 37);

添加数据

5.查询1

选择weather表的全部数据
SQL:select * from weather;
weather表
select * from cities;
cities表
从weather表查询城市每一天的平均气温和日期
SQL:select city, (temp_lo + temp_hi)/2 as temp_avg, date from weather;
查询平均气温
语句as可以用于起别名,用于显示在查询结果之中。
查询weather中记录的所有城市名
SQL:select distinct city from weather;
查询所有城市的城市名
连接查询
SQL:select * from weather, cities where city = name;
连接查询
等同于上述语句的内连接
SQL:select * from weather inner join cities on (weather.city = cities.name);
内连接

6.表信息查看

表定义:\d weather;将显示字段的定义,修饰词,约束信息。
表结构
查看当前数据库中用户已创建的表的名称
SQL:select tablename from pg_tables
where tablename not like 'pg_%' and tablename not like 'sql_%';

从系统表中列出表名称
查看所有已创建的数据库名称
SQL:select datname from pg_database
where datname not like 'template%';

从系统表中列出数据库名称

PCIE-DMA是一种基于PCIe接口的直接内存访问技术,能够实现高速数据传输。在我的学习笔记中,我详细记录了与PCIE-DMA相关的知识和学习心得。 首先,我了解到PCIE-DMA技术的基本原理和作用。PCIE-DMA可以通过PCIe总线直接访问系统内存中的数据,而不需要过多的CPU干预,提高数据传输的速度和效率。这种技术在需要大量数据传输的场景下非常有效,比如高性能计算、数据采集等。 其次,我深入学习了PCIE-DMA的工作原理。PCIE-DMA的核心是DMA控制器,它负责管理和控制数据传输的流程。当设备需要读写内存中的数据时,它通过DMA控制器发送请求,然后DMA控制器生成一个事务,将数据直接传输到或从内存中。这样就大大减少了CPU的参与,提高了数据传输的效率。 另外,我还学习了PCIE-DMA的配置和编程方法。PCIE-DMA的配置主要包括硬件配置和软件配置两个部分。硬件配置通常涉及到DMA控制器和PCIe接口的初始化和配置,软件配置则需要编写驱动程序来驱动DMA控制器和处理数据传输过程中的事件和异常。这部分内容对于我来说还比较新颖,需要更多的实践和实践。 最后,我总结了PCIE-DMA的应用场景和发展前景。PCIE-DMA在高性能计算、数据采集等领域具有广阔的应用前景。随着数据量的不断增加和传输速度的要求越来越高,PCIE-DMA技术的需求也将越来越大。因此,对于我来说,学习掌握PCIE-DMA技术非常有价值。 通过学习记录PCIE-DMA的相关知识和经验,我对这项技术有了更深入的理解和掌握。希望将来能通过应用PCIE-DMA技术解决实际问题,为科研和工程项目的顺利进行做出贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值