【网学网提醒】:网学会员为大家收集整理了SQL的语法提供大家参考,希望对大家有所帮助!
2012/1/1
SQL的语法条件表达式条件表达式:比较运算:<>不等于号不等于号!非通配符‘_’代表一个字符如:项目like‘_’代表一个字符如%代表多个字符0到无穷如:Blike‘CO%’[]代表范围内的一个字符如:Clike’wd[3-4]’逻辑连接词OR:或,,AND和,,Not否定加在前面表示反方向目的使用T-SQL插入数据1.insert+表名(列名)values(值列表)注意:表名是必须的列名可省但按顺序
1
批注[A1]:条件表达式
批注[A2]:通配符
批注[A3]:逻辑连接词
批注[A4]:插入数据
2012/1/1
输入自增列跳过多个列名和多个值名用,号隔开数字不用“”号字符要用要符合约束相默认的用Default代替
一次插入多行数据
使用INSERTSELECT语句将现有表中的数据加到新表中新表列名)INSERT要插入的表(新表列名)SELECT源表列名FROM源表注意:用于以创建的表注意:用INSERTINTO插入还未的得表中表名.列名,表名.INSERT表名.列名,表名.列名INTO新表源表、FROM源表、如何插入标识列语法:语法:数据类型,标识种子,SELECTIDENTITY(数据类型,标识种子,自增
2
2012/1/1
量)
INTOFROM
AS
列名新表原始表
关键字合并数据进行插通过UNION关键字合并数据进行插语法:语法:表名(INSERT表名(列名1,列名2)SELECT数值1,数值2,UNIN
SELECT
数值1,数值2UNION
最后一行后便不加UNION
使用T-SQL更新数据
语法:
UPDATE+表名SET
列名=更新值
3
2012/1/1
WHERE
更新条件
注意:
SET
后边可以紧随多个更新值用,号隔开可选可不选用来限制条件如果不限制整个表
WHERE
中的所有数据将被更新使用T-SQL删除数据使用DELETE删除数据语法:DELETEFROM表名
WHERE
条件
。。注意:DELETE。。FROM。只要删除就可删除整条记录,不会只删除整个字段,所以DELETE后边不能出现字段名例如:
DELETE
列名FROM表名将会报错
4
2012/1/1
使用TRUNCATETABLE删除数据功能相当以上边DELETE语句中没有WHERE情况,用于删除整张表,的所有记录例如:TRUNCATETABLE+表名TRUNCATETABLE删除表中的所有信息但表的条件,约束,结构,索引不会被更改TRUNCATE
Table不能用于有外键引用的
表这种情况下用delete语句使用select语句进行查询语法:Select列名1,列名2,列名。,。From表名1,表名2,表名。。。Where查询条件表达式Orderby排序列名asc升序(desc降序)规范::查询语句可以分为多个部分,比如上面的Select。where。。。。order
5批注[A5]:查询数据
2012/1/1
byHavingCount(列名)逻辑连接符条件Having在分组内再重新筛
选符合条件的记录四个部分注意每个部分单独成行一便调用和查询错误查询所有的数据行和列(使用*通配符来表示所有的列)1..Select*from表名1,表名2。。。2..查询部分列—条件查询Select列名1,列名2,。。From表名1,表名2,。。。Where条件1,条件2,。。。在查询时用as重命名列名重命名的另一种方法是:用“=”来命名。例如:select“新名”=旧名From表名查询空行则条件句where列名isnull(isnotnull)
6
2012/1/1
查询时空行(不是空行)查询中使用常量Select查询列,默认值as新名From表名查询返回限制的行数在T-SQL中限制行数用Top关键字来约束SelectTop列名1,列名2。。。From表名Where条件还有从表中按百分数提取记录用到Percent关键字来限制如:查询38%要这样写Selecttop38Percent列名1,列名2。。。From表名。。。Where条件1,条件2,。。。4.2查询寻排序语法::Select列名1列名2。。。
7
2012/1/1
From表名。。Where条件1。。Orderby要排序列1,。。4.3在查询中使用函数模糊胡查询关键字:1.like像某种样式列名Like‘%@%.COM’Or‘%@%.%’用于在表示邮箱是否有效2.in在定义内选择in(选项1,选项2,。。)Betweenand在。。。。之间查询3.Count(列名)查询记录条数4.sum(列名1,列名2。。)用于求和集合函数集合函数1.count(*)返回记录不为空的记录总()返回记录不为空的记录总条数2.Max(列名)查询记录中最大的值(列名)3.min(列名)查询最小值(列名)4.Avg(列名)查询平均值(列名)①②③
WhereGroupby
8批注[A6]:函数
批注[A7]:集合函数
批注[A8]:WhereGroupby和Having的顺序
Having
2012/1/1
多表连接查询内连接会使用“=”“<>”之类的比,较运算符;来评判断两列数据项是否相等,内连接是用InnerJoin关键字来进行表之间的关联外联连接:1.左外连接:LeftJoin或LeftouterJoin左外连接的结果集包括LeftJoin句子中指定的左表的所用行不仅仅是连接列所匹配的的行若左表的某行在右表中没用匹配行在相关连得结果集行中右表的所有选择列均为空2.右外连接:RightJoin或RightOuterJoin3.完整外连接:FullJoin或FullOuterJoin
9
批注[A9]:多表连接查询
2012/1/1
4.交叉连接:交叉连接返回表中的所有行,右表中的每行与左表中的每行在一一组合“相当于两表相乘”内连接1.在where子句中指定连接条件如:Select表名1.列名,表名2.列名,……From表名1,表名2,……Where表名1.列名=表名2.列名<判断条件>
2.From子句中使用Join…on方法:Select表名.列名From表名InnerJoinOn(表间的关系)如:下On(表名1.主键名断符表名2.外键名)如要判断条件在后面加Where条件经验:SQLSever执行这种InneJoin连
10批注[A10]:内连接
2012/1/1
接的速度和执行上面where子句中指定条件的速度一样但查询速度不同
11