三 文章首页 实时留言 网络邻居 开往 虫洞
返回

SQL 常用 CRUD 语法记录

2024-11-23 16:07:47
分类: 数据库

MySQL 数据类型

数据类型描述
char(size)保存固定长度的字符串,最多255个
varchar(size)保存可变长度的字符串,如果值长度大于255则会被转为 text 类型
tinytext存放最大长度为 255 的字符串
text存放最大长度为 65535 的字符串
blob用于存放二进制数据,最多 65535 字节
mediumtext存放最多为 16777215 长度的字符串
mediumblob存放最多为 16777215 字节的二进制数据
longtext存放最多为 4294967295 长度的字符串

PostgreSQL 指令 / 数据类型

指令描述
\l列出所有数据库
\c <database>进入某个数据库
\dt列出所有数据表
\d <table>查看某个数据表
数据类型描述
smallint-32768 ~ 32767 整数
int-2147483648 ~ +2147483647 整数
bigint-9223372036854775808 ~ 9223372036854775807 整数
text大文本,无限制按需分配
char(size)固定长度字符
varchar(size)可变长度字符,size为最大限制
varchar(size)[]可变长度字符,但是数组形式,size 为最大限制
date仅日期(格式:YYYY-MM-DD)
timestamp无时区日期+时间(格式: YYYY-MM-DD xx:xx:xx)
timestamptz带时区日期+时间
bool布尔类型
jsonbjson数据类型,但以二进制形式存储

数据查询


查找来自 test 表的所有数据

select * from test;

查找来自 test 表的所有数据,但条件要满足 id 等于 10

select * from test where id=10;

查找来自 test 表的所有数据,但条件要满足 id 等于 10 或 id 等于 20

select * from test where id=10 or id=20;
或者
select * from test where id in (10,20)

查找来自 test 表的所有数据,但条件要同时满足 id=10 和 name='小红'

select * from test where id=10 and name='小红';

查找来自 test 表所有数据的 id 和 name 字段

select id,name from test;
或者
select test.id,test.name from test;

查询来自 test 表的所有数据并以 id 字段升序或降序

select * from test order by id desc;
select * from test order by id asc;

查询 test 表的某个字段的文本长度,并顺便显示 name

select name,length(字段) from test;

数据插入


基本格式:

insert into 表名 values(值1,值2);
或者
insert into 表名(字段1,字段2)values(值1,值2);

将小红-18岁插入到 test 表的 name 和 age 字段

insert into test(name,age)values('小红',18);

数据修改


基本格式:

update 表名 set 字段1=新值1,字段2=新值2 where 条件;

将 test 表的小红-18岁改为小陈-22岁

update test set name='小陈',age=22 where name='小红' and age=18;

将 test 表的所有数据的 name 修改为 '匿名'

update test set name='匿名';

数据删除


基本格式:

delete from 表名 where 条件;

删除 test 表 name 包含小红的数据

delete from test where name='小红';

删除 test 表所有数据

delete from test;

数据表操作


创建一个名为 test 的表,并且 name 和 age 字段都为 int

create table test(name text,age int);

删除一个名为 test 的表

drop table test;

创建一个 test 表,让 id 带有约束,不能为空。

create table test(
    id int not null,
    name text,
);

删除 test 表 id 字段的 not null 约束

alter table test modify id int null;