SQL学习笔记

DDL概述

DDL(Data Definition Language,数据定义语言)用于定义和管理数据库中的所有对象的语言,包括创建、修改、删除数据库、表、索引、视图、存储过程等

  • CREATE - 创建数据库对象(数据库、表、索引、视图等)
  • ALTER - 修改数据库对象的结构
  • DROP - 删除数据库对象

创建表

sql 复制代码
create table if not exists emp
(
    id     text,
    name   text,
    age    int,
    gender text
);

查看表中的字段

sql 复制代码
/*
这里会展示出所有的字段, 而不是显示每个字段的值
PRAGMA:是 SQLite 中用于查询或修改数据库内部配置的特殊命令。
table_info:是 PRAGMA 的一个参数,用于获取指定表的列信息。
emp:是表名,这里可以替换为任何你想查看的表名。

输出列说明:
name 列名 
type  列的数据类型(在 SQLite 中,数据类型是动态的,这里显示的是创建表时声明的类型)
notnull 该列是否允许 NULL 值,1 表示不允许,0 表示允许
dflt_value 该列的默认值,如果没有默认值则为 NULL
pk 该列是否为主键,1 表示是主键(或主键的一部分),0 表示不是
*/

PRAGMA  table_info (emp);

修改表中的字段

sql 复制代码
// - 添加字段
alter table emp add column nick_name text;

// - 修改字段
alter table emp rename id to uid;

// - 删除字段
alter table emp drop nick_name;

删除表

sql 复制代码
drop table emp;

DML概述

DML(Data Manipulation Language)

  • INSERT - 插入新数据
  • UPDATE - 更新现有数据
  • DELETE - 删除数据

DML使用

插入数据

sql 复制代码
// - 单条插入
insert into emp values ('Z-0001', 'n1', 11, '男');
insert into emp(uid, name, age, gender) values ('Z-0001', 'n1', 11, '男');

// - 多条插入
insert into emp values ('Z-0001', 'n1', 11, '男'), ('Z-0002', 'n2', 22, '女'),('Z-0003', 'n3', 33, '男');
insert into emp(uid, name, age, gender) values ('Z-0001', 'n1', 11, '男'), ('Z-0002', 'n2', 22, '女'),('Z-0003', 'n3', 33, '男');

// -  其他表插入无条件
insert into emp select * from  emp1;
insert into emp(uid, name, age, gender) select * from  emp1;
insert into emp(uid, name, age, gender) select uid, name, age, gender from  emp1;

// -  其他表插入有条件
insert into emp select * from  emp1 where age > 10;
insert into emp(uid, name, age, gender) select * from  emp1 where age > 10;
insert into emp(uid, name, age, gender) select uid, name, age, gender from  emp1;

修改数据

sql 复制代码
// - 指定一列数据更新
update emp set gender = '女' where uid = 'Z-0003';

// - 指定多列数据更新
update emp set gender = '女', uid = 'Z-0004', name = 'n4' where uid = 'Z-0003';

删除数据

sql 复制代码
// - 删除指定的一行
delete from emp where uid = 'Z-0003';

// - 删除指定的多行
delete from emp where uid in ('Z-0001', 'Z-0002', 'Z-0003');

// - 删除所有行
delete from emp;
相关推荐
摇滚侠1 小时前
《Docker技术入门与实战 第4版》阅读笔记 2 Docker 镜像
笔记·docker·容器
minglie13 小时前
espidf的esp32版的webClient
学习
学运维的Kysan3 小时前
暑假运维学习打卡第二十五天8.16
学习
键盘飞行员3 小时前
Flutter App 全套实战学习计划:从零搭建到 APK 部署
学习·flutter
疯狂打码的少年4 小时前
【数据结构】图的遍历:深度优先搜索(DFS)
数据结构·笔记·算法·深度优先
会编程的吕洞宾5 小时前
DeepAgents In Action学习(Second)
android·java·学习
我爱cope6 小时前
【计算机网络 | 数据链路层7:VLAN:一台交换机如何划分多个逻辑局域网?】
网络·学习·计算机网络
智者知已应修善业6 小时前
【51单片机数码管逐位显示1-8余位不亮】2024-10-23
c语言·经验分享·笔记·嵌入式硬件·51单片机
Wang's Blog6 小时前
PostgreSQL笔记16: 索引基础——概念、类型、创建与最佳实践
数据库·笔记·postgresql
babe小鑫6 小时前
2026信管专业学习数据分析的价值
学习·数据挖掘·数据分析