SQL语句的多种增、删

本文详细介绍了SQL语句的各种应用场景,包括数据记录的筛选、添加、更新与删除等操作,同时还涉及了数据统计函数及记录集对象的方法等内容。
SQL语句的添加、删除、修改虽然有如下很多种方法,但在使用过程中还是不够用,不知是否有高手把更多灵活的使用方法贡献出来?

添加、删除、修改使用db.Execute(Sql)命令执行操作
╔----------------╗
☆ 数据记录筛选 ☆
╚----------------╝
注意:单双引号的用法可能有误(没有测式)

Sql = "Select Distinct 字段名 From 数据表"
Distinct函数,查询数据库存表内不重复的记录

Sql = "Select Count(*) From 数据表 where 字段名1>#18:0:0# and 字段名1< #19:00# "
count函数,查询数库表内有多少条记录,“字段名1”是指同一字段
例:
set rs=conn.execute("select count(id) as idnum from news")
response.write rs("idnum")

sql="select * from 数据表 where 字段名 between 值1 and 值2"
Sql="select * from 数据表 where 字段名 between #2003-8-10# and #2003-8-12#"
在日期类数值为2003-8-10 19:55:08 的字段里查找2003-8-10至2003-8-12的所有记录,而不管是几点几分。

select * from tb_name where datetime between #2003-8-10# and #2003-8-12#
字段里面的数据格式为:2003-8-10 19:55:08,通过sql查出2003-8-10至2003-8-12的所有纪录,而不管是几点几分。


Sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

Sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"
模糊查询

Sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"
查找数据库中前10记录

Sql="select top n * form 数据表 order by newid()"
随机取出数据库中的若干条记录的方法
top n,n就是要取出的记录数

Sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

╔----------------╗
☆ 添加数据记录 ☆
╚----------------╝
sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"

sql="insert into 数据表 valuess (值1,值2,值3 …)"
不指定具体字段名表示将按照数据表中字段的顺序,依次添加

sql="insert into 目标数据表 select * from 源数据表"
把源数据表的记录添加到目标数据表

╔----------------╗
☆ 更新数据记录 ☆
╚----------------╝
Sql="update 数据表 set 字段名=字段值 where 条件表达式"

Sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

Sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n "
没有条件则更新整个数据表中的指定字段值

╔----------------╗
☆ 删除数据记录 ☆
╚----------------╝
Sql="delete from 数据表 where 条件表达式"

Sql="delete from 数据表"
没有条件将删除数据表中所有记录)

╔--------------------╗
☆ 数据记录统计函数 ☆
╚--------------------╝
AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加

引用以上函数的方法:
sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)
用 rs("别名") 获取统的计值,其它函数运用同上。

╔----------------------╗
☆ 数据表的建立和删除 ☆
╚----------------------╝
CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )
例:CREATE TABLE tab01(name varchar(50),datetime default now())
DROP TABLE 数据表名称 (永久性删除一个数据表)

╔--------------------╗
☆ 记录集对象的方法 ☆
╚--------------------╝
rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N 将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N 设置每页为N条记录
rs.pagecount 根据 pagesize 的设置返回总页数
rs.recordcount 返回记录总数
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete 删除当前记录,但记录指针不会向下移动
rs.addnew 添加记录到数据表末端
rs.update 更新数据表记录
<think>好的,我现在需要帮助用户查找SQL改查常用语句。首先,用户已经提供了四个引用内容,我需要仔细看看这些引用里有什么信息,并结合用户之前的问题来组织回答。 用户之前的问题是关于如何用Peewee修改数据库表结构,比如字段名或表名。而他现在的问题更基础,是询问SQL改查常用语句。虽然之前的问题涉及ORM工具,但现在用户直接转向了SQL语句本身,所以需要确保回答聚焦在SQL的基础操作上,而不是Peewee的使用。 接下来看看用户提供的引用内容。引用1提到了语句的例子,引用2和3详细说明了除操作,强调必须指定条件,否则会清空整个表,还提到了truncate命令。引用4主要涉及插入数据的多种方法,包括插入整行、部分字段、多行记录以及克隆表。这些引用覆盖了改查中的、查,但改的部分可能需要补充。用户可能需要完整的CRUD示例,所以需要检查是否有遗漏的部分,比如更新(UPDATE)语句。 用户的需求是查找常用的改查语句,因此回答需要结构清晰,每个部分都要有对应的SQL示例。同时,用户可能对注意事项感兴趣,比如除时的条件限制,插入时的字段对应,以及更新时的语法。需要确保每个操作都有对应的示例代码,并且用正确的格式展示,比如使用代码块。 另外,用户之前的回答中提到了使用迁移工具和最佳实践,所以在这次回答中,可能需要适当提到一些最佳实践,比如备份数据、测试SQL语句等,但主要焦点还是语句本身。同时,引用中的内容需要正确标注来源,比如引用2提到除时必须指定条件,应该在回答中引用正确的标识符。 需要检查是否有遗漏的操作,比如SELECT查询。用户的问题明确提到改查,所以查的部分需要详细说明SELECT语句的各种用法,包括条件查询、排序、分页和聚合函数。引用1中的查询部分可能不够详细,需要补充更多示例。 最后,用户可能需要相关的问题来进一步学习,比如如何优化查询、事务处理或联合查询,这些可以作为相关问题提供。需要确保回答结构符合用户之前提供的示例,使用标题、代码块、注意事项和相关问题部分。 总结一下,回答的结构应该是: 1. (INSERT) 2. (DELETE) 3. 改(UPDATE) 4. 查(SELECT) 5. 注意事项 6. 相关问题 每个部分都要有对应的SQL示例和说明,引用正确的来源。需要确保使用正确的LaTeX格式,行内公式用$...$,独立公式用$$...$$,但这里可能主要是代码块,所以需要检查代码格式是否正确。另外,回答要使用中文,避免使用专业术语过多,保持易懂。 现在开始组织内容,确保每个CRUD操作都有示例,注意事项部分涵盖用户引用中提到的重要点,比如除时的条件,插入时的字段对应,更新时的语法正确性。同时,补充用户可能需要的查询示例,如JOIN操作或聚合函数,但保持基础,因为用户要求的是常用语句。 最后,验证所有引用是否正确对应,比如引用2和3关于语句的注意事项,引用4关于插入的不同方法,确保在回答中正确标注来源。检查是否有语法错误,代码示例是否正确,比如INSERT的不同写法,DELETE和TRUNCATE的区别,以及UPDATE的用法。</think>#### SQL 改查常用语句整理 --- #### 一、(INSERT) 向表中插入数据,支持单行、多行插入及克隆表。 1. **插入单行全字段** ```sql INSERT INTO 表名 VALUES (值1, 值2, ..., 值N); ``` ```sql -- 示例:向 users 表插入一条记录 INSERT INTO users VALUES (1, 'Alice', 'alice@example.com'); ``` 2. **插入指定字段** ```sql INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2); ``` ```sql -- 示例:仅插入用户名和邮箱 INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com'); ``` 3. **插入多行数据** ```sql INSERT INTO 表名 VALUES (值1, 值2, ...), (值3, 值4, ...); ``` ```sql -- 示例:批量插入用户数据 INSERT INTO users VALUES (2, 'Charlie', 'charlie@example.com'), (3, 'David', 'david@example.com'); ``` 4. **克隆表数据** ```sql INSERT INTO 目标表 SELECT * FROM 源表; -- 全字段克隆 INSERT INTO 目标表 (字段1, 字段2) SELECT 字段A, 字段B FROM 源表; -- 部分克隆 ``` > **注意**:字段顺序需匹配[^4]。 --- #### 二、(DELETE) 除符合条件的记录,或清空整张表。 1. **按条件除** ```sql DELETE FROM 表名 WHERE 条件; ``` ```sql -- 示例:除用户名为 'yyy' 的记录 DELETE FROM userinfo WHERE username = 'yyy'; -- 引用[1][2][3] ``` 2. **清空整张表** ```sql TRUNCATE TABLE 表名; -- 清空表并重置自主键(效率高于 DELETE) ``` > **注意**:`DELETE` 不指定条件会除所有数据,但自主键不重置[^2][^3]。 --- #### 三、改(UPDATE) 修改符合条件的记录。 1. **更新字段值** ```sql UPDATE 表名 SET 字段1=新值1, 字段2=新值2 WHERE 条件; ``` ```sql -- 示例:将用户 'Alice' 的邮箱更新 UPDATE users SET email = 'alice_new@example.com' WHERE name = 'Alice'; ``` 2. **批量更新** ```sql UPDATE products SET price = price * 0.9 WHERE category = '电子产品'; ``` --- #### 四、查(SELECT) 查询数据,支持条件筛选、排序、分页等。 1. **基本查询** ```sql SELECT * FROM 表名; -- 查询所有字段 SELECT 字段1, 字段2 FROM 表名; -- 查询指定字段 ``` 2. **条件查询** ```sql SELECT * FROM 表名 WHERE 条件; ``` ```sql -- 示例:查询年龄大于 18 的用户 SELECT * FROM users WHERE age > 18; ``` 3. **排序与分页** ```sql SELECT * FROM 表名 ORDER BY 字段 DESC -- 降序排序(ASC 为升序) LIMIT 10 OFFSET 0; -- 分页(每页 10 条) ``` 4. **聚合查询** ```sql SELECT COUNT(*) FROM 表名; -- 统计行数 SELECT AVG(score) FROM exams; -- 计算平均值 ``` --- #### 五、注意事项 1. **除操作风险**:`DELETE` 和 `TRUNCATE` 会永久除数据,需谨慎执行[^2][^3]。 2. **条件明确性**:改操作必须明确条件,避免误操作全表数据。 3. **事务处理**:建议在批量操作时启用事务(`BEGIN;` ... `COMMIT;`)保证数据一致性。 4. **索引优化**:频繁查询的字段建议添加索引以提升性能。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值