pgAdmin3怎么把后缀是.sql的文件导入进来并且执行呢

pgAdmin3怎么把后缀是.sql的文件导入进来并且执行呢,第1张

我用的pgAdmin4

1、在创建好数据库下,‘模式-public’右键create脚本

然后点击左上角那个用荧光笔标记出来的文件夹按键就可以选择你要导入的sql文件了,导入后会在下面的编辑器里显示出来,我是已经导入了。

最后右边那个用荧光笔标记出来的闪电标识就是执行脚本,就可以运行导入的sql文件了

所有的默认值都丢失了。主要是数字类型和日期类型。

所有now(),time(),date()要改成getdate()。

所有datediff('d', time1, time2)要改成datediff(day, time1, time2)

有可能一些true/false类型不能使用,要变为1/0。

备注类型要通过cast(column as varchar)来使用。

CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。

isnull(rowname)要改成rowname = null

ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!

转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。有时用smalldatetime型时,转化失败,而用datetime型时,转化成功。

对此两种数据库进行 *** 作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:delete from user where id=10,而对SQL SERVER数据库进行删除是用:delete user where id=10

日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。

我们使用PgAdmin管理数据库的时候,首先就需要新建数据表。那么如何使用PgAdmin建立数据表呢?下面我给大家分享一下。

工具/材料

PgAdmin

01

首先我们打开PgAdmin软件,点击数据库服务器选项,在d出的界面中输入密码进行连接,如下图所示

02

进入数据库以后我们右键单击表选项,选择Create下面的Table选项,如下图所示

03

接下来会d出Create Table界面,这里首先需要给表起一个名字,如下图所示

04

接着切换到Columns选项卡,我们点击加号进行字段的增加,如下图所示,注意Data Type列是设置字段类型的

05

接下来切换到Constraints选项卡,在这里设置一下表的主键约束,一般都是选择id字段,如下图所示

06

然后我们切换到Foreign Key页卡,这里设置一下表的外键约束,如下图所示

07

接着我们选择SQL页,这里就会自动生成了建表的SQL语句,接下来我们就可以点击Save按钮,如下图所示

08

最后我们就可以在左侧看到新建的数据表建好了,刚才设置的字段,约束都在这里会有显示,大家需要自己检查一下,如下图所示

21 pgAdmin3的启动

您可以在应用程序---系统工具中找到pgAdmin3的启动项;

也可以在命令行下输入:

xiaop@xiaop-laptop:~$ /usr/bin/pgadmin3 start

622 连接已创建的数据库mydb ;

点击档案-----新增服务器,然后在跳出的窗口下输入:

地址:localhost

描述:服务器名称(随意填写)

维护数据库:postgres

用户名:自己创建一个(详情参见创建用户)

密码:和用户名对应(创建用户时自己创建)

点击确定后大家便可以查看postsql已有的数据库了;

注:pgAdmin3的数据库和终端下创建的数据库是完全同步的(可以用刷新查看效果), pgAdmin3是比较方便的图形化管理工具,它可以创建图表,管理数据库等,有关pgAdmin3的详细介绍我们在以后讨论,本文主要介绍命令行下的 *** 作。图形化管理工具能做到的命令行都可以做到,您可以在命令行下创建表,在pgAdmin3上查看是否同步:

7 创建和删除表;

71 创建新表;

创建完数据库之后,您就可以创建新表了,可以通过声明表的名字和所有字段的名字及其类型来创建表,例如:

mydb#CREATE TABLE weather (

city varchar(80),

temp_lo int, -- 最低气温

temp_hi int, -- 最高气温

prcp real, -- 降水量

date date

);

注:您可以在 psql 里连换行符一起键入这些东西。 psql 可以识别该命令直到分号才结束,不要忘记“;”

您可以在 SQL 命令中自由使用空白(也就是空格,tab,和换行符)。 这就意味着您可以用和上面不同的对齐方式键入命令。 两个划线("--") 引入注释。 任何跟在它后面的东西直到该行的结尾都被忽略。 SQL 是对关键字和标识符大小写不敏感的语言,只有在标识符用双引号包围时才能保留它们的大小写属性。

72 数据类型;

上面例子中的varchar(80) 声明一个可以存储最长 80 个字符的任意字符串的数据类型。 int 是普通的整数类型。 real 是一种用于存储单精度浮点数的类型。 date 类型应该可以自解释。

PostgresSQL 支持标准的 SQL 类型 int,smallint, real,double precision, char(N), varchar(N),date, time,timestamp 和 interval,还支持其他的通用类型和丰富的几何类型。 PostgreSQL 可以客户化为定制任意的用户定义的数据类型,您可以参考PostgreSQL的中文文档来查询;

73 删除表;

如果您不再需要某个表,或者您想创建一个不同的表,那么您可以用下面的命令删除它:

mydb#DROP TABLE tablename

8 向表中添加行;

81 INSERT;

INSERT 用于向表中添加行,您可以输入(在数据库中 *** 作):

mydb#INSERT INTO weather VALUES ('San Francisco', 46, 50, 025, '1994-11-27');

注:所有数据类型都使用了相当明了的输入格式。 那些不是简单数字值的常量必需用单引号(')包围, 就象在例子里一样。

82 point类型输入;

point 类型要求一个座标对作为输入,如下:

mydb#INSERT INTO cities VALUES ('San Francisco', '(-1940, 530)');

83 COPY;

您还可以使用 COPY 从文本文件中装载大量数据。 这么干通常更快,因为 COPY 命令就是为这类应用优化的, 只是比 INSERT 少一些灵活性.比如:

mydb#COPY weather FROM '/home/user/weathertxt';

注:weathertxt是您提前写好的符合格式标准的表格内容文档;

9 查询一个表;

91 SELECT;

要从一个表中检索数据就是查询这个表。 SQL 的 SELECT 就是做这个用途的。 该语句分为选择列表(列出要返回的字段部分),表列表(列出从中检索数据的表的部分), 以及可选的条件(声明任意限制的部分)。比如,要检索表 weather 的所有行,键入:

SELECT FROM weather;

<code>

输出结果:

<code>

city | temp_lo | temp_hi | prcp | date

---------------+---------+---------+------+------------

San Francisco | 46 | 50 | 025 | 1994-11-27

San Francisco | 43 | 57 | 0 | 1994-11-29

Hayward | 37 | 54 | | 1994-11-29

(3 rows)

您可以在选择列表中写任意表达式,而不仅仅是字段列表。比如,您可以:

SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;

这样应该得出:

city | temp_avg | date

---------------+----------+------------

San Francisco | 48 | 1994-11-27

San Francisco | 50 | 1994-11-29

Hayward | 45 | 1994-11-29

(3 rows)

请注意这里的 AS 子句是如何给输出字段重新命名的。(AS 子句是可选的。)

92 WHERE;

一个查询可以使用 WHERE 子句"修饰",声明需要哪些行。 WHERE 子句包含一个布尔(真值)表达式,只有那些布尔表达式为真的行才会被返回。 允许您在条件中使用常用的布尔 *** 作符(AND,OR, 和 NOT)。 比如,下面的查询检索旧金山的下雨天的天气:

mydb#SELECT FROM weather

WHERE city = 'San Francisco' AND prcp > 00;

结果:

city | temp_lo | temp_hi | prcp | date

---------------+---------+---------+------+------------

San Francisco | 46 | 50 | 025 | 1994-11-27

(1 row)

93 排序;

您可以要求返回的查询是排好序的:

mydb#SELECT FROM weather

ORDER BY city;

得出结果:

city | temp_lo | temp_hi | prcp | date

---------------+---------+---------+------+------------

Hayward | 37 | 54 | | 1994-11-29

San Francisco | 43 | 57 | 0 | 1994-11-29

San Francisco | 46 | 50 | 025 | 1994-11-27

在这个例子里,排序的顺序并非绝对清晰的,因此您可能看到 San Francisco 行随机的排序。 但是如果您使用下面的语句,那么就总是会得到上面的结果

SELECT FROM weather

ORDER BY city, temp_lo;

您可以要求查询的结果按照某种顺序排序, 并且消除重复的行输出:

mydb#SELECT DISTINCT city

FROM weather;

得出结果:

city

---------------

Hayward

San Francisco

(2 rows)

sql

aggregate

函数是什么数据库可以用

sql

拥有很多可用于计数和计算的内建函数。

[编辑本段]函数的语法

内建

sql

函数的语法是:

select

function(列)

from

[编辑本段]函数的类型

sql

中,基本的函数类型和种类有若干种。函数的基本类型是:

aggregate

函数

scalar

函数

这样的话,如果根据配对来判断,就没办法使用replace来做了。

需要自己写一个函数来处理。

以下是我写的一个测试程序,只能处理特定的<>和''这两种配对的情况。

你过你这里还有其他的配对,需要另行的去写,你可以把这个转成函数,然后使用。其中的@str就可以输入你的 datas 字段了。

判断的原则是:对于字符串的逐个字符进行判断,如果非大于号小于号或者单引号,那么直接拼接到新串上,如果是小于号,要判断后边必须要有大于号,切大于号和当前小于号之间没有小于号。

如果当前是大于号,也使用类似的判断。比较特殊的是单引号的处理,我这里面的单引号都是英文输入法的单引号,即左右两个是一样的,都是',所以只是记了总个数和最后一个单引号在新串中的位置,新串整个拼完后,判断总的单引号是不是奇数,如果是,把最后一个截掉就可以。

declare @str varchar(1000)

declare @newstr varchar(1000)

declare @lenth int

declare @cnt int

declare @signnum int

declare @signbit int

declare @char varchar(1)

set @str = 'qw<''e<q>>''w''>e‘'

set @lenth = len(@str)

set @cnt = 1

set @newstr = ''

set @signnum = 0

while @cnt <= @lenth

begin

set @char = substring(@str, @cnt, 1)

if @char = '<'

begin

if charindex('>',@str,@cnt) > 0 and ((charindex('<',@str,@cnt + 1) = 0) or (charindex('<',@str,@cnt + 1) > 0 and charindex('<',@str,@cnt + 1) > charindex('>',@str,@cnt)))

begin

set @newstr = @newstr + @char

end

end

else if @char = '>'

begin

if charindex('<',reverse(@str), @lenth - @cnt + 1) > (@lenth - @cnt + 1) and ( (charindex('>',reverse(@str), @lenth - @cnt + 2) = 0) or ( charindex('>',reverse(@str), @lenth - @cnt + 2) > charindex('<',reverse(@str), @lenth - @cnt + 1)))

begin

set @newstr = @newstr + @char

end

end

else if @char = ''''

begin

set @signnum = @signnum + 1

set @newstr = @newstr + @char ---------记录单引号总个数

set @signbit = len(@newstr) ------记录最后一个单引号

end

else

begin

set @newstr = @newstr + @char

end

set @cnt = @cnt + 1

end

if @signnum > 0 and @signnum%2 = 1

begin

set @newstr = substring(@newstr,1,@signbit - 1) + substring(@newstr,@signbit + 1,len(@newstr) - @signbit)

end

select @newstr

以上就是关于pgAdmin3怎么把后缀是.sql的文件导入进来并且执行呢全部的内容,包括:pgAdmin3怎么把后缀是.sql的文件导入进来并且执行呢、如何替换数据库中的数据表、如何使用PgAdmin建立数据表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9738163.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存