数据类型
整型:char、short、int、long、long long等;
浮点型:float、double等;
指针类型:指向不同类型的指针,如int*、char*等;
数组类型:一维数组、多维数组等;
结构体类型:struct等;
枚举类型:enum等;
布尔类型:bool等。
bit位与字节数
数据类型 bit位数 字节数
char 8 1
short 16 2
int 32 4
long 32/64 4/8
long long 64 8
float 32 4
double 64 8
其中,long和long long的bit位数和字节数取决于编译器和操作系统的位数
。
C/C++中可以使用强制类型转换将一个数据类型转换为另一个数据类型,如(int)3.14将浮点型3.14转换为整型3;
c/c++ 中默认数据类型与unsigned 修饰后的范围区别
数据类型 默认范围 unsigned修饰后的范围
char -128~127 0~255
short -32768~32767 0~65535
int -2147483648~2147483647 0~4294967295
long -2147483648~2147483647 0~4294967295
long long -9223372036854775808~9223372036854775807 0~18446744073709551615
c_char 单个字符 8位 1个字节
c_wchar 单个Unicode字符 16位 2个字节
c_byte 有符号字节 8位 1个字节
c_ubyte 无符号字节 8位 1个字节
c_short 有符号短整型 16位 2个字节
c_ushort 无符号短整型 16位 2个字节
c_int 有符号整型 32位 4个字节
c_uint 无符号整型 32位 4个字节
c_long 有符号长整型 32位 4个字节
c_ulong 无符号长整型 32位 4个字节
c_longlong 有符号长长整型 64位 8个字节
c_ulonglong 无符号长长整型 64位 8个字节
c_float 单精度浮点型 32位 4个字节
c_double 双精度浮点型 64位 8个字节
c_bool 布尔型 8位 1个字节
2.与C/C++数据类型对应关系
c/c++ ctype
char c_char
wchar_t c_wchar
signed char c_byte
unsigned char c_ubyte
short c_short
unsigned short c_ushort
int c_int
unsigned int c_uint
long c_long
unsigned long c_ulong
long long c_longlong
unsigned long long c_ulonglong
float c_float
double c_double
bool c_bool
数据类型
整型:int;
浮点型:float;
复数型:complex;
字符串类型:str;
列表类型:list;
元组类型:tuple;
集合类型:set;
字典类型:dict;
布尔类型:bool;
空类型:NoneType。
bit位与字节数
数据类型 bit位数 字节数
int 无限制 无限制
float 64 8
complex 128 16
bool 8 1
str 无限制 无限制
list 无限制 无限制
tuple 无限制 无限制
set 无限制 无限制
dict 无限制 无限制
NoneType 无限制 无限制
Python中可以直接使用不同类型之间的运算符或内置函数进行转换,如int(3.14)将浮点型3.14转换为整型3,list(“hello”)将字符串"hello"转换为列表[‘h’, ‘e’, ‘l’, ‘l’, ‘o’]。
数据库表的数据类型
数值类型:integer、bigint、smallint、decimal、numeric、real、double precision、serial、bigserial;
字符串类型:char、varchar、text;
日期和时间类型:date、time、timestamp、interval;
布尔型:boolean;
几何类型:point、line、lseg、box、path、polygon、circle;
网络地址类型:inet、cidr、macaddr;
UUID类型:uuid;
JSON类型:json、jsonb;
XML类型:xml;
数组类型:array;
其他类型:oid、bytea、tsvector、tsquery、money等。
bit位与字节数
数据类型 bit位数 字节数
integer 32 4
bigint 64 8
smallint 16 2
decimal 无限制 无限制
numeric 无限制 无限制
real 32 4
double precision 64 8
serial 32 4
bigserial 64 8
char 8 1
varchar 无限制 无限制
text 无限制 无限制
date 64 8
time 64 8
timestamp 64 8
interval 128 16
boolean 8 1
point 64 8
line 64 8
lseg 128 16
box 128 16
path 无限制 无限制
polygon 无限制 无限制
circle 96 12
inet 128 16
cidr 32 4
macaddr 48 6
uuid 128 16
json 无限制 无限制
jsonb 无限制 无限制
xml 无限制 无限制
array 无限制 无限制
oid 32 4
bytea 无限制 无限制
tsvector 无限制 无限制
tsquery 无限制 无限制
money 64 8
C/C++:可以使用libpq库进行PostgreSQL数据库的连接和操作
在C/C++中,可以使用char或者const char类型的变量来表示PostgreSQL中的字符串类型,用int、long等类型的变量来表示PostgreSQL中的数值类型,用bool类型的变量来表示PostgreSQL中的布尔类型,用void*类型的变量来表示PostgreSQL中的二进制类型等。
例如,在C/C++中使用libpq库连接到PostgreSQL数据库后,可以使用以下代码创建一个表:
#include
int main() {
// 连接到PostgreSQL数据库
PGconn *conn = PQconnectdb("dbname=test user=postgres password=123456 hostaddr=127.0.0.1 port=5432");
// 创建一个表
const char *sql = "CREATE TABLE student(id integer, name varchar(20), age integer)";
PGresult *res = PQexec(conn, sql);
// 释放资源
PQclear(res);
PQfinish(conn);
return 0;
}
可以使用psycopg2库进行PostgreSQL数据库的连接和操作
在Python中,可以使用str类型的变量来表示PostgreSQL中的字符串类型,用int、float等类型的变量来表示PostgreSQL中的数值类型,用bool类型的变量来表示PostgreSQL中的布尔类型,用bytes类型的变量来表示PostgreSQL中的二进制类型等。例如,在Python中使用psycopg2库连接到PostgreSQL数据库后,可以使用以下代码创建一个表:
import psycopg2
# 连接到PostgreSQL数据库
conn = psycopg2.connect(database="test", user="postgres", password="123456", host="127.0.0.1", port="5432")
# 创建一个表
session= conn.cursor()
session.execute("CREATE TABLE student(id integer, name varchar(20), age integer)")
conn.commit()
# 关闭连接
session.close()
session.close()
text 文本类型,用于存储长文本
keyword 关键词类型,用于存储短文本
long 长整型 64 bit
integer 整型 32 bit
short 短整型 16 bit
byte 字节型 8 bit
double 双精度浮点型
float 单精度浮点型。
half_float 半精度浮点型。
scaled_float 带缩放因子的浮点型。
date 日期类型
boolean 布尔类型
binary 二进制类型