① 请教sql基本语句
SQL SELECT 语句
SELECT 语句用于从表中选取数据。表格式的结构被存储在一个结果表中(称为结果集)。
语法:SELECT 列名称 FROM 表名称
注释:SQL 语句对大小写不敏感。SELECT 等效于 select。
Update 语句
Update 语句用于修改表中的数据。
语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
DELETE 语句
DELETE 语句用于删除表中的行。
语法:DELETE FROM 表名称 WHERE 列名称 = 值
② sql server建表 什么数据类型支持多段落文本
存储文本内容,用text/netxt
存储整个文件,用image
text/ntext是以字符型存储数据的
image是按二进制存储数据的
用NVARCHAR(MAX)存储的内容少,楼主用 image 试试
③ sql里面 with...as 是什么意思啊如何使用
with...as是用来定义sql代码片段的语句,一般是在sql嵌套查询比较多的时候应用,可以增加sql语句的可读性。下面我以sql server来具体演示一下with...as怎么用:
1、准备要操作的数据,假设要查询下面年龄大于40岁的数据,如下图所示
④ SQL 究竟是干什么用的用的哪些方面
SQL可以有两个解释: 一个是微软的SQL Server,是一个大型的数据库系统软件,专门用于大批量的数据存储和管理。 另一个解释是Structured Query Language(结构化查询语言)的缩写,它是目前使用最广泛的数据库语言,SQL是由IBM发展起来的,后来被许多数据库软件公司接受而成为了业内的一个标准。就象SQL的名字一样,我们可以通过容易理解的查询语言,来和数据库打交道,从数据库中得到我们想要的数据。对于SQL语言,有两个组成部分: DML(data manipulation language):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。 DDL(data definition language):DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
⑤ 如何给sql提取的片段取别名
1、使用双引号创建别名。代码如下:
SELECTgoods_name"商品名称"FROMgoods;
2、使用单引号创建别名。代码如下:
SELECTgoods_name'商品名称'FROMgoods
3、使用引号创建别名。代码如下:
SELECTgoods_name商品名称FROMgoods
4、使用AS关键字创建别名。代码如下:
SELECTgoods_nameAS"商品名称"FROMgoods
⑥ sql语句用什么语句
SQL语句:
主要是由sql 关键字加sql对象的名称组合而成。
常见的sql操作语句有:
insert(增) update(改) delete(删除) select(查) where (条件限定关键字)
/*例:下文将创建一个基本的sql操作语句*/
----创建数据表
createtableA(keyIdint,namevarchar(20))
go
----使用insert新增数据
insertintoA(keyId,name)values(1,'a')
insertintoA(keyId,name)values(2,'b')
insertintoA(keyId,name)values(3,'c')
go
----使用update更新指定行数据
updateAsetname='test'wherekeyId=2
----使用delete删除指定行数据
deletefromAwherekeyId=1
----使用select查询数据
selectkeyId,namefromA
go
truncatetableA---清除当前测试表数据
droptableA---删除测试表结构
SQL其它连接关键字使用:
join 连接关键字:
可以通过join 关键字将两张及多张表进行连接,然后通过相应的查询条件返回连接后的集合
createtableA(keyIdintprimarykey,infovarchar(60),writeDatedatetime)
insertintoAvalues
(1,'a','2017-1-1'),(2,'b','2017-1-2'),(3,'c','2017-1-3')
go
createtableB(keyId2int,info2varchar(60),writeDate2datetime)
insertintoBvalues
(11,'a','2017-1-1'),(2,'b','2017-1-2'),(2,'b2','2017-12-2'),(13,'c','2017-1-3'),(1,'a2','2017-1-1')
go
/*单字段左连接进行笛卡尔运算*/
select*fromAleftjoinBona.keyId=b.keyId2
go
/*多字段左连接进行笛卡尔运算*/
select*fromAleftjoinBona.keyId=b.keyId2andA.info=b.info2
go
truncatetableA
droptableA
truncatetableB
droptableB
SQL控制关键字:
sql 脚本中常用的关键字还有 while for if else do while 等控制语句。
SQL语句:
综上所述SQL语句是由sql关键字和SQL对象名组合成sql代码。
⑦ sql语句放在vba里需要什么框架
VBA里使用SQL语句,不仅要需要遵循SQL的语法规则。在VBA中构造不光要遵循SQL的语法规则,还必须要遵循VBA的语法规则。
于是就会多出来好些如连接符(&)、双引号(")等符号,很多初学者就是被这些符号搞晕了。下面就简单讲一下如何通过拆分法来理解VBA中动态SQL语句的构造。
在查询的时候虽然我们可以将查询条件绑定到窗体控件,如下面的示例:
Select
* FROM 订单表 Where客户名称
=Forms!客户查询窗体!客户名称输入框但这样只能适用于比较简单的查询,随着条件复杂度的增加,SQL语句的构造难度也会直线上升,更重要的是这样
的SQL语句很难理解,就算最终做出来了,一旦过了一段时间需要修改的话,就非常麻烦。
于是在VBA中使用变量构造动态的
SQL语句就成了一种理想的选择。我们来看一个例子,比如我们要通过在窗体上的三个文本框(txt客户名称、txt开始日期、txt结束日期)内输入相应
的条件值,来构造一个查询订单表中指定客户在某个时间段内销售记录的SQL语句,在VBA中的代码如下:
strSQL="
Select * FROM 订单表 Where 客户名称='www.gzlij.com" & Me.txt客户名称 & "'
AND 销售日期 Between #" & Me.txt开始日期 & "# And #" & Me.txt结束日期
& "#"
上面的的语句该如何理解呢?这里通过替换法来进行拆分,我们先假设文本框的值分别是:
txt开始日期=2010-5-1
txt结束日期=2010-5-31
txt客户名称=东南实业
根据上面的条件,我们需要得到的SQL语句应该是:
Select * FROM 订单表 Where 客户名称="东南实业" AND 销售日期 Between #2010-5-1# And #2010-5-31#
这里的由于要在VBA中构造,而双引号(")是VBA中的字符串界定符,所以我们需要把它改成单引号(')来符合VBA的语法规则,那么SQL语句就成了:
Select * FROM 订单表 Where 客户名称='东南实业' AND 销售日期 Between #2010-5-1# And #2010-5-31#
(当然我们也可以根据VBA的语法来用两个双引号,这样VBA编译器就会把这两个连续的双引号识别为一个双引号字符,而不是字符串界定符,不过这样相对来说更加复杂和麻烦一些,还有一些其它原因这里就不细说了。)
我们再把里面的条件值换回变量,由于条件需要用变量代替,所以我们这里把上面的SQL语句拆分成如下的多个片段:
Select * FROM 订单表 Where 客户名称='东南实业' AND 销售日期 Between #2010-5-1# And #2010-5-31#
然后把其中的条件值换成变量,就成了:
Select * FROM 订单表 Where 客户名称='Me.txt客户名称' AND 销售日期 Between #Me.txt开始日期# And #Me.txt结束日期#
接下来再把其中不是变量的片段两头加上双引号,使其符合VBA中的字符串语法:
"Select * FROM 订单表 Where 客户名称='"Me.txt客户名称"' AND 销售日期 Between #"Me.txt开始日期"# And #"Me.txt结束日期"#"
最后我们再用连接符(&)把这些拆分处理后得到的片段连接组合成一个字符串(注意,使用连接符组合多个字符串或变量时,连接符两边要有空格),就得到了我们需要的VBA中的动态SQL语句的写法:
"Select
* FROM 订单表 Where 客户名称='" & Me.txt客户名称 & "' AND 销售日期 Between #"
& Me.txt开始日期 & "# And #" & Me.txt结束日期 & "#"
⑧ SQL Select 语句的用法
以下是代码片段:
SQL: select * into b from a where 1<>1说明:拷贝表(拷贝数据,源表名:a 目标表名:b)以下是代码片段:
SQL: insert into b(a, b, c) select d,e,f from b;说明:显示文章、提交人和最后回复时间以下是代码片段:
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b说明:外连接查询(表名1:a 表名2:b)以下是代码片段:
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c说明:日程安排提前五分钟提醒以下是代码片段:
SQL: select * from 日程安排 where datediff(’minute’,f开始时间,getdate())>5
说明:两张关联表,删除主表中已经在副表中没有的信息
SQL: 以下是代码片段:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid 说明:--
SQL:
以下是代码片段:
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
FROM TABLE1,
(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,’YYYY/MM’) = TO_CHAR(SYSDATE, ’YYYY/MM’)) X,
(SELECT NUM, UPD_DATE, STOCK_ONHAND
FROM TABLE2
WHERE TO_CHAR(UPD_DATE,’YYYY/MM’) =
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, ’YYYY/MM’) ¦¦ ’/01’,’YYYY/MM/DD’) - 1, ’YYYY/MM’) Y,
WHERE X.NUM = Y.NUM (+)
AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND B
WHERE A.NUM = B.NUM说明:--
SQL: 以下是代码片段:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称=’"&strdepartmentname&"’ and 专业名称=’"&strprofessionname&"’ order by 性别,生源地,高考总成绩说明:
从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)
SQL:
以下是代码片段:
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, ’yyyy’) AS telyear,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’01’, a.factration)) AS JAN,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’02’, a.factration)) AS FRI,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’03’, a.factration)) AS MAR,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’04’, a.factration)) AS APR,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’05’, a.factration)) AS MAY,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’06’, a.factration)) AS JUE,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’07’, a.factration)) AS JUL,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’08’, a.factration)) AS AGU,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’09’, a.factration)) AS SEP,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’10’, a.factration)) AS OCT,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’11’, a.factration)) AS NOV,
SUM(decode(TO_CHAR(a.telfeedate, ’mm’), ’12’, a.factration)) AS DEC
FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration
FROM TELFEESTAND a, TELFEE b
WHERE a.tel = b.telfax) a
GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, ’yyyy’)说明:四表联查问题:SQL: 以下是代码片段:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....说明:得到表中最小的未使用的ID号
SQL: 以下是代码片段:
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID
FROM Handle
WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)
⑨ 如何筛选SQL字符串字段中部分值
一、先说筛选字符串字段中部分值的记录。
例如我有一个KKBH(卡口编号)字段,这是一个字典字段(对应另一个实体表(卡口表)的编号字段)。这个字段的值保存所属卡口值域{01,02,03}
本来想到的是通过or来实现,这样需要动态生成SQL语句。
后来想到一个办法用charindex搜索字符串的办法。将所有的要查的卡口编号组成类似'01@02'这样待查字符串。sql查询时通过charindex筛选出在待查字符串里有的KKBH的记录。
经测试使用or与使用charindex,两者在MSSQL中执行效率差不多。
具体实现:
用户界面查询需求:可能搜索N个卡口的记录(N的值域{1,所有卡口个数})。设计这个UI的形式一共三种:
一、一个多选listbox。用户界面运行时将卡口字典表载入listbox信息。
二、两个listbox,左边为待选,右边为已选,中间加两个按钮添加与删除。用户界面运行时将卡都字典表载入左边的listbox。
三、多个Checkbox。可以在界面设计阶段直接做死字典表,即有几个卡口就话几个checkbox。或者在程序运行根据字典表绘制动态绘制checkbox。
UI的优缺点这里不讨论,我这里选择第三种方式的动态绘制。
在查询阶段根据所选卡口生成待选字符串入:"01@02”
并将此条件传回后台查询服务程序
后台查询服务里只要待查字符串作为参数传入查询的SQL语句中(sql片段): charindex(卡口编号,@待查字符串)。当然也可以手动生成SQL方式传入"charindex(卡口编号,'"+待查字符串+"')".
二、模糊查询。
使用like的模糊查询发生效率是很低。
提高的解决办法与:
一、用full text index 结合contains函数。全文本索引,带了空间占用率很高。
二、通过charindex+substring实现简易模糊查询。使用substring分段,charindex实现类似like '%关键字%'。
⑩ SQL是干什么用的用的哪些方面
说sql之前,首先需要聊聊数据库,数据库到底是什么东西呢,顾名思义,数据库就是保存数据的仓库,它可以存储我们日常生活中的数据,比如学校的一些基本信息,公司的人员信息甚至是我们日常的一些照片或者视频之类的都可以保存。
那么我们如何能够将我们的这些数据信息保存到数据库呢,数据库是存放在物理计算机上的,为了能够很好地去操作数据库,这时候我们就需要借助sql来进行操作,sql按照一定的语法规范,将我们所需要的数据,按照一定的规范组装之后,就可以和数据库进行交互了。
平时我们进行较多的操作也就是数据的添加,修改,删除和查看,当我们需要进行这些操作的时候,我们通过sql发出相对应的命令即可,而且它的操作非常的简单,对于初学者来书,也很容易上手。
现如今互联网的发展速度很快,几乎我们所能看到的网站的数据,都是存储在了数据库中,因此对于数据库的操作也是非常的重要了,因而sql也就我们所需要掌握的技术,对于我们开发网站,你可以不懂数据库的底层原理,但是你需要了解基本的sql语句,只有了解了sql你才可以完成一个完整的网站开发。所以sql对于我们开发来说也是非常的重要了。
对于不同的数据库来说,sql的语法基本大似相同,学会了一种sql语句,其他的也基本就都了解了,而且对于同一个数据库来说,即使运行在不同的操作系统上,sql语句都不需要进行修改,对于数据库管理员(DBA)或者开发者来说,我们需要考虑的事情就少了很多,因为像其他有些编程语言,对于不同的操作系统,还需要考虑不同平台的差异。
sql的语法也是非常的简单,即使对于不同的数据库来说,创建数据库或者数据表使用`CREATE`(创建)关键字即可,查看数据使用`SELECT`(选择)即可,插入数据使用``(插入)即可,修改数据使用`UPDATE`(修改)即可,删除数据使用`DELETE`(删除)即可,有了这几个基本语句,我们就可以很方便的处理很多数据。总之学好sql不论是对我们开发还是对数据的处理都是非常有用的。
更多关于数据库方面的操作和详细讲解,可以看下这个更直观的视频教程:网页链接,希望我的回答能帮到你!