PostgreSql简单使用
下载安装好后,(因为我的是自带哒所以就不说咋下载安装了,百度上也有一大堆),进入postgresql:sudo -i -u postgres进入postgres用户,然后输入:psql输入密码进入了pgsql
基本操作
然后是一些基本操作:大家也可以用\h \?来查看
好多都和mysql啊sqlserver啊都差不多的,
不过pgsql有和他们都不一样的地方,它有json和jsonb类型,其实主要学的也就是json和jsonb结构。
两者从用户操作的角度来说没有区别,区别主要是存储和读取的系统处理(预处理)和耗时方面有区别。简单的说就是:json写入快,读取慢,jsonb写入慢,读取快。
还有json和jsonb的一些基本操作符。可以直接从这儿看到更多 (https://www.postgresql.org/docs/9.5/static/functions-json.html)
索引这里我还是懵呼呼的,
创建索引语句: create index index_name on table_name (字段名)
在我数据库中我是这么创建的:
create index score_index on student_student using gin(score jsonb_path_ops);
settings.py文件,把默认的sqlite3数据库注释掉,写进自己的postgresql
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'pgsql', #数据库名字
'USER': 'postgres', #用户名
"PASSWORD" : 'password', #自己的密码
"HOST":'',
'PORT':5432,
}
}
如果是python连接pgsql的话需要安装好psycopg2 和 psycopg2-binary包,直接用pip安装就可以了,pycharm的话还要自己手动在setting中加一下,才可以用。用django的话,上面两个包应该不需要,但是会有warning。
然后去写我们的model:
from django.db import models
from django.contrib.postgres.fields import JSONField
class student(models.Model):
score = JSONField()
def __str__(self):
return str(self.score)
用django还没多少日子,还是一个小白,一开始也不知道有自带的json类型,在百度上出来的结果也不算多,然后自己傻fufu的用python连接数据库,傻瓜式的写sql语句插入,而且这个sql语句很是不好写,因为某些引号要求真的是。。
其实都是我不爱看官方文档,不看文档都是因为我不想要看英文,? 官方文档里面写的很清楚明白,最后最后在昨天晚上,我,终于看到了这个(https://docs.djangoproject.com/en/2.1/ref/contrib/postgres/fields/),哇塞好棒!
django提供了postgre的特殊的类型,比如ArrayField列表,CIText fields不区分大小写的text,HStoreField有序的json,JSONField还有我一直一直找的json类型,其实这个对应的是jsonb类型,还有些其它的,我也没有多看。
上面的配置好了之后(别忘了把app加入到settings中哦),可以执行makemigrations 和migrate命令啦,详细的我就不写啦。
在我的pgsql数据库里面也已经建好了表。