常见SQL增删查改语句

SQL 增删查改

DDL

DDL:数据定义语言

一、创建

1.创建|删除 表
--oracle常用字段类型 number() 数值类型 varchar2()可变字节型
create table 表名(
字段名 字段类型 约束, 
字段名 字段类型 约束  
);
drop table 表名; -- 删除表
常见约束约束名
主键约束(唯一 + 不为空)primary key
唯一约束unique
不能为空not null
默认值default()
检查约束check()
2.创建|删除 索引
create index 索引名 on  表名(字段[ASC|DESC]);
--[ASC|DESC] 在列上指定排序创建索引
--不要对一个表创建3个以上的索引
drop index 索引名; --删除索引
3.创建视图
create or replace view 视图名 as select 语句 ;--对查询结果创建视图
drop view 视图名;-- 删除视图

二、修改表设计

1.添加新字段
alter table  表名  add  (字段名 类型  约束,字段名 类型 约束...);
2.修改表中字段
alter table 表名	modify(字段名 类型  约束,字段名 类型 约束...);
3.删除表中字段
alter table 表名	drop(字段名 类型  约束,字段名 类型 约束...);
4.对存在的表添加约束
alter table 表名 add constraint  约束名	约束类型(针对的字段名);
5.对表里约束 禁用 | 启用 | 删除
alter table 表名	disable constraint 约束名; --禁用
alter table 表名	enable 	constraint 约束名; --启用
alter table 表名	drop	constraint 约束名; --删除

DML

DML:对数据操作的语言

一、插入记录

insert into 表名 (字段名1,字段名2....) values(1,2,...);
--如果插入所有字段值可省略表名后面的括号,插入数据顺序和表字段一一对应
insert into 表名 values(1,2,3);

-- 把一个表中的数据插入另一个表中
create table a as select * from b where 1=2;--创建表且拥有b表的字段
insert into a select * from b ; --复制b表所有内容到a表

二、查询语句

distinct表示隐藏重复的行
where按照一定条件查询
group by分组查询(汇总时使用)
having分组的条件
order by对查询结果排序 asc|desc

1、where 语句的运算符

where  条件1 and 条件2;--俩个条件都满足
where  条件1 or  条件2;--满足一个即可
where  not 条件 ; --不满足条件
where	in(条件1,条件2...); --满足括号内任意条件即可
where  between 条件1  and 条件2;-- 俩个条件的范围内
where	字段 like '_A&';--查询字段中第二字母是A的人
where 字段 is [not] null ; 查询字段是[不是]空的记录

2、函数

SUM --求和
AVG --平均值
MAX --最大值
MIN	--最小值
count --求个数
to_char(日期,格式) 将日期转为字符串
to_char(stsdate,'yyyy');--去当前时间的 年份2019
to-date('2008-8-08 20:08:08','yyyy-mm-dd hh24:mi:ss')--将字符串转为日期

3、99查询

--内连接 inner join on
from1 [inner] join2 on 连接条件;--返回满足条件的行 inner 可省略
--自然连接 natural join
from1 natural join2;-- 返回俩张表中共同属性上做等值连接去掉重复属性
--左外连接 left join
from1 left join2 on 连接条件;--表1中不满足连接条件的行也会显示值为null
--右外连接 right join
from1 right join2 on 连接条件;--表2中不满足连接条件的行也会显示值为null

三、修改数据

update 表名 set column=new value,column2=new value..... where 条件
--将user表中id为1的name属性改为'张三'
update User set name='张三' where id=1;

四、删除数据

delete from 表名 where  条件
--将user表中id为1的数据删除
delete from User where id=1;

DCL(权限)

DCL 权限控制语句

--授权
grant 权限名称 to 用户名;
--收会授权
revoke 权限名称 from 用户名;

常见授权名称:
	connect 连接
	resource 资源
	dba 管理员
	session 会话

TCL(事物)

-- commit 提交;(确认修改)
-- rollback 回滚;(取消修改)
-- SAVEPOINT <savepoint> 保存位置。
<think>好的,我现在需要帮用户介绍SQL语句增删查改。首先,我得回忆一下SQL的基础知识,确保自己记得正确。增删查改对应的是CRUD操作,也就是Create、Read、Update、Delete。用户可能刚接触SQL,所以需要从基础讲起,结构清晰,分点说明。 首先,插入数据,也就是INSERT语句。要说明基本语法,举个例子,比如插入一条学生记录。需要注意字段和值的对应,还有如果插入所有字段可以省略字段名。可能需要提到防止SQL注入,使用参数化查询,但用户没问安全方面,可能暂时不需要深入。 然后是查询数据,SELECT语句。这里可能需要详细一点,因为查询是最常用的。要包括基本的SELECT * FROM 表,然后加上WHERE条件,举例说明。还有排序ORDER BY,限制结果LIMIT,连表查询JOIN。不过用户可能只需要基础,连表可以简单带过,避免复杂化。 接下来是更新数据,UPDATE语句。要强调WHERE条件的重要性,否则会更新所有行。举例子,比如修改某个学生的年龄,没有WHERE子句会很危险。这部分需要提醒用户小心操作。 最后是删除数据,DELETE语句。同样要强调WHERE条件,否则清空整个表。举例子,删除特定学生,或者没有条件的后果。可能还要提到TRUNCATE TABLE,但属于高级操作,暂时不提。 需要检查每个语句的语法是否正确,比如INSERT INTO的正确写法,UPDATE的SET部分,DELETE的FROM是否可选。同时,要确保使用中文,术语正确,比如“数据库”、“字段”、“记录”等。 可能用户需要实际例子,所以每个部分都给出示例代码,用$...$包裹,比如INSERT INTO 学生表 VALUES(...)。同时,独立公式用$$...$$,但SQL语句不算数学公式,可能不需要,但按照系统指令,数学表达式才需要,所以可能不需要用$$。不过原例中的数学表达式如$x^2$用$,所以SQL语句正常写,但需要确保LaTeX语法正确。不过SQL代码应该用代码块吗?但用户要求中的系统指令提到行内数学表达式用$...$,而独立公式用$$...$$。但SQL代码不属于数学表达式,所以可能不需要用LaTeX格式,直接普通文本即可。可能需要确认,但用户给的例子中,比如$(a+b)^2$是数学公式,所以SQL语句应该用代码块,但这里可能用户希望用LaTeX的代码格式?可能不需要,因为SQL语句本身不是数学表达式。可能之前的例子是数学的,而这里需要正常写SQL语句,用反引号或者代码块,但系统指令没有提到代码块,所以可能需要用普通文本,但注意中文和代码的区分。不过用户给的示例中的INSERT语句用了括号,可能需要用等宽字体,但这里用纯文本的话,可能需要用引号或者明确表示。 另外,用户要求结构清晰,逐步解决问题,所以分点回答,每个操作一个部分,基本语法加示例。最后可以加上注意事项,比如事务、备份、条件使用等,帮助用户避免常见错误。 需要检查是否有错误,比如INSERT INTO的语法是否正确,是否缺少关键字,比如字段名括号,VALUES的正确拼写。UPDATE的SET子句是否正确,DELETE的语法是否正确。确保示例准确,没有语法错误。 总结一下,结构分为四个部分:增(INSERT)、查(SELECT)、改(UPDATE)、删(DELETE),每个部分先介绍语法,再给示例,最后可能加注意事项。使用中文术语,避免技术术语不准确,比如“记录”对应“行”,“字段”对应“列”。这样用户容易理解。 可能还需要提到一些常用关键字,比如WHERE、ORDER BY、LIMIT,在SELECT中的使用。同时,提醒用户在实际开发中使用参数化查询防止注入,但用户问题不涉及安全,可能作为额外提示。 最后,确保回答符合系统级指令:数学表达式正确使用$和$$,但这里SQL语句不涉及数学,所以没问题。结构清晰,分点说明,用中文,正确可靠的信息。</think>SQL(Structured Query Language)是用于操作关系型数据库的标准语言,其核心功能可归纳为**增删查改**(CRUD)。以下是详细说明: --- ### 一、增(INSERT)—— 插入数据 **作用**:向表中插入新记录。 **基本语法**: ```sql INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...); ``` **示例**: 1. 插入一条学生记录: ```sql INSERT INTO students (id, name, age) VALUES (1, '张三', 20); ``` 2. 插入所有字段时可省略字段名: ```sql INSERT INTO students VALUES (2, '李四', 22); ``` --- ### 二、查(SELECT)—— 查询数据 **作用**:从表中检索数据。 **基本语法**: ```sql SELECT 字段1, 字段2, ... FROM 表名 [WHERE 条件] [ORDER BY 排序字段] [LIMIT 结果数量]; ``` **示例**: 1. 查询所有学生信息: ```sql SELECT * FROM students; ``` 2. 查询年龄大于18岁的学生姓名: ```sql SELECT name FROM students WHERE age > 18; ``` 3. 按年龄降序排列并限制返回5条: ```sql SELECT * FROM students ORDER BY age DESC LIMIT 5; ``` --- ### 三、改(UPDATE)—— 更新数据 **作用**:修改表中已有的记录。 **基本语法**: ```sql UPDATE 表名 SET 字段1=新值1, 字段2=新值2, ... [WHERE 条件]; ``` **示例**: 1. 将张三的年龄改为21岁: ```sql UPDATE students SET age=21 WHERE name='张三'; ``` ⚠️ **注意**:若省略 `WHERE` 条件,将更新表中所有记录! --- ### 四、删(DELETE)—— 删除数据 **作用**:从表中删除记录。 **基本语法**: ```sql DELETE FROM 表名 [WHERE 条件]; ``` **示例**: 1. 删除ID为2的学生: ```sql DELETE FROM students WHERE id=2; ``` ⚠️ **注意**:若省略 `WHERE` 条件,将清空整个表! --- ### 五、注意事项 1. **事务操作**: 批量增删改时建议使用事务(`BEGIN TRANSACTION` + `COMMIT/ROLLBACK`),确保数据一致性。 2. **备份习惯**: 执行删除或更新前,先备份数据或使用 `SELECT` 验证条件。 3. **性能优化**: 频繁操作时,为条件字段(如 `WHERE` 中的字段)添加索引可提升效率。 --- 通过掌握以上语法,您已能完成基本的数据库操作。实际开发中需结合具体业务需求,合理设计SQL语句
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值