sqlserver数据库中怎样查询某个字段中含有某些字 sqlserver增删改查语句是什么
说到在SQL Server中,如果你想查找某张表里,某个字段包含某些字的记录,其实就是用LIKE语句搭配通配符来实现。比如你想找student表中名字里带“三”字的学生学号,SQL语句就是这么写的:
select stu_id from student where stu_name like '%三%'
这里的%符号就像个万能的符,代表任意数量的字符。很方便对不确定位置的关键词模糊匹配,特别实用!
再来说说增删改查的那些事儿,咱们得知道几个基本语句:
- 增(插入数据):用INSERT INTO表名VALUES就搞定了。比如插入一行学生数据:
sql INSERT INTO Students VALUES (...) - 删(删除数据):想删表里的所有数据,用:
sql DELETE FROM Students
如果只想删特定条件,比如年龄大于30的学生,得加WHERE:
sql DELETE FROM Students WHERE Age > 30 - 改(更新数据):这部分稍后咱详细说说日期更新。
- 查(查询数据):基本SELECT语句,灵活使用WHERE、LIKE等等。
有了这些,日常管理数据库的小毛病基本能一一击破了,棒不棒?

sqlserver中如何更新数据库的日期 怎么利用SQL语句查询数据库中所有表的名称 sqlserver 怎么清空表 怎么查看sqlserver中生成视图的sql语句 sql语句显示查询结果前100条有哪些方法 在sqlserver中循环语句for要怎么使用 怎么提取日期并把年月日分别截取出来
更新数据库中的日期字段,看着有点复杂,其实挺简单哒。基本语法是:
UPDATE 表名 SET 字段名 = to_date('2030/12/31','yyyy-mm-dd') WHERE 条件;
不过,得注意一点,SQL Server本身不支持to_date函数,这是Oracle的用法。在SQL Server中,更新日期通常直接用日期格式,比如:
UPDATE 表名 SET 字段名 = '2030-12-31' WHERE 条件;
没错,就是这么简单,不用多余函数,直接写字符串即可,如果你的字段是DATE或者DATETIME类型,SQL Server能自动识别。
另外,咱们还需要知道怎么查看数据库中有哪些表名,这对管理员来说是必备技能。执行下面这个命令就能列出所有用户表:
SELECT * FROM sysobjects WHERE xtype = 'u'
这里的xtype='u'表示只查用户表,不包括系统表。
说到清空表,别急,千万别用DELETE不带WHERE乱清,慢又费资源!在SQL Server,下手快狠准的是:
TRUNCATE TABLE 表名;
它是DDL命令,不触发触发器,直接清空表里所有数据,而且速度杠杠的。不过!别忘了,TRUNCATE之后不能回滚,而且不能加WHERE条件,是全清哦。如果表里带有自增长ID,TRUNCATE还会把ID从头开始,超级利索。
想看某个视图是怎么定义的吗?试试:
EXEC sp_helptext '视图名'
比如v_test视图:
EXEC sp_helptext 'v_test'
这个系统存储过程会把视图的创建SQL语句整齐地显示出来,方便你一探究竟。
再分享个小技巧,要显示查询结果的前100条数据,方法在SQL Server里挺有意思:
- 先设置限制行数,运行:
sql
SET ROWCOUNT 100
GO
- 然后写你的查询:
sql
SELECT * FROM 表名;
这就把结果限制在了100条,够用啦!
至于循环怎么用,SQL Server不像某些语言那样有for语句,它主流用法是通过游标来实现循环。使用步骤大概是:
- 用
DECLARE CURSOR FOR定义游标,指定查询内容。 - 用
OPEN打开游标。 - 用
FETCH NEXT抓取第一行数据到变量。 - 循环处理直到语句结束。
如果你想从数据库中提取当前日期,并且把年月日分别拿出来,写个SQL很简单:
SELECT YEAR(GETDATE()) AS 年,
MONTH(GETDATE()) AS 月,
DAY(GETDATE()) AS 日;
GETDATE()会返回当前系统日期时间,YEAR、MONTH、DAY函数帮你拆开,方便极了!
通过这些整合、浅显的技巧,赶紧拿去用,保证你立马变身SQL达人!

相关问题解答
-
查询某字段包含特定字符必须用LIKE吗?
哎呀,怎么说呢,虽然LIKE是最直接的选择,但其实还有CHARINDEX和PATINDEX这些函数也能用。它们能帮你检测子串位置,挺灵活。只不过,日常查询用LIKE加%可是最简单又直观的方式,特别适合快速模糊查找,太方便啦! -
TRUNCATE和DELETE有什么区别呢?
哈哈,这俩区别大得很!TRUNCATE是直接快速清空表,速度快得飞起,而且不能回滚,你一执行数据就没了,别反悔!DELETE可以带WHERE条件,删除指定行,还能回滚,适合细粒度操作。用TRUNCATE前,确保真的是想清空所有数据哟! -
SQL Server中怎么快速知道有多少个表?
说白了,这就是数数游戏。用下面这句:
SELECT COUNT(*) FROM sys.objects WHERE type='U'
数字一来,你心里就有数啦。sys.objects里藏着各种数据库对象,筛选type='U'就锁定了所有用户表。超方便,分分钟搞定!
- 如何轻松查看视图定义呢?
没错,问到好地方了!只要用:
EXEC sp_helptext '视图名'
它立马把你想了解的视图SQL代码吐出来,特别适合调试和学习。别忘了,你得有权限执行这个存储过程哦,否则可能被拒绝访问,尴尬!
发布评论