第三章:T-SQL语句基础章节概述•SQL简介•会使用T-SQL查询单个表数据•会使用T-SQL向表中插入数据•会使用T-SQL更新表中数据•会使用T-SQL删除表中数据SQL介绍•SQL和T-SQLSQL语言为关系数据库的标准语言T-SQL是标准SQL的加强版,并对SQL命令做了许多扩充,提供类似于程序语言的基本功能•T-SQL的组成DML:数据操作语言DCL:数据控制语言DDL:数据定义语言使用T_SQL查询数据班级学号姓名语文数学S201001张明9085S201005李菲10090S105008于正8576S105006刘刘9083S201105巩小妹7080S201109杨林8576S105112白林6586S105152司马坡4590S201085李亚8086S201032张晴7059S203126刘海9070S203128柯南4582S203148王红2365班级学号姓名语文数学S201001张明9085S201005李菲10090S201班语文为90分以上的学员班级学号姓名语文数学S203126刘海9070S203班语文和数学都及格的学员T-SQL查询T-SQL语句查询结果Select语法Selectselect_listFromtable[WhereConditions][OrderByorder_list[Asc|Desc]]Select_list:字段列表,样式为“字段1……字段N”Table:查询表,样式为“表1,表2…表N”Condiitions:由表字段组成的条件表达式或逻辑表达式Order_list:查询结果按照某字段排序的字段列表条件表达式•比较运算符运算符含义示例=等于Price=100大于Age15小于Grade90=大于或等于Price=80=小于或等于Age=45不等于Grade60Between在指定范围内PRICEBetween100And200……条件表达式•通配符通配符解释示例'_'一个字符ALike'C_'%任意长度的字符串BLike'CO_%'[]括号中所指定范围内的一个字符Clike'9W0[1-2]'[^]不在括号中所指定范围内的任意一个字符Dlike'9W0[^1-2]'逻辑表达式•逻辑运算符操作符说明Not和其他操作符一起使用,取反的操作And组合两个条件,并在两个条件都为True时取值为TrueOr组合两个条件,并在两个条件之一为True时取值为True查询常见种类•查询所有的数据行和列•查询部分行列——条件查询•在查询中使用列名•查询空行•在查询中使用常量列•查询返回限制的行数查询所有的行、列和条件查询*:通配符,指查询所有的列SELECT*FROMt_news查询所有的行和列条件查询SELECTnewstitle,newsdateFROMt_newsWHEREnewsource='腾讯网'查询中使用列名•使用AS子句重新命名列名SELECTnewstitleAS新闻标题,newsdate新闻日期FROMt_newsWHEREnewsource'腾讯网'列名查询空行•ISNull:空•ISNotNull:非空SELECTnewstitle,newscounentFROMt_newsWHEREnewsourceISNULL查询中使用常量列SELECTnewstitleAS新闻标题,'北大青鸟'AS新闻来源FROMt_newsWHEREnewsourceISNULL查询返回限制的行数SELECTTOP3newstitleAS新闻标题FROMt_news显示3行SELECTTOP20PERCENTnewstitleAS新闻标题FROMt_news显示查询的20%单表查询•查询新闻分类表t_class所有信息•查询t_class表中的CLASSID,CLASSNAME列信息•查询新闻点击率大于10次以上的新闻•查询点击率在10到12之间的新闻•查询新闻来源是新浪的新闻•查询结果按点击率从高到低排序小结•请思考:学生信息表student,字段分别有uid(学号)、Uname(姓名)、Gid(班级编号)、age(年龄)、math(数学成绩)、china(语文成绩)、english(英语成绩)•查询所有学生信息•查询数学成绩在70至80分之间学生姓名、数学、语文、英语成绩•查询姓“张”的所有学生信息•查询S005班的所有学生信息使用T-SQL插入数据INSERT[INTO]表名[列名]VALUES值列表[INTO]是可选的,可以省略表名是必需的,表的列名是可选的,如果省略,值列表中顺序与数据表中字段顺序保持一致多个列名和多个值列表用逗号分隔INSERTINTOt_News_User(USERNAME,USERPASSWORD,POWER)VALUES('王兰','oracle','TRUE')一次插入多行数据•InsertSelect语句INSERTINTOnewsMost(新闻标题,新闻日期,点击率)SELECTNEWSTITLE,NEWSDATE,HITSFROMt_newsWHERENEWSDATECAST('2008-06-01'asDATETIME)一次插入多行数据•SelectInto语句SELECTNEWSTITLE,NEWSDATE,HITSINTOnewsMost1FROMt_newsSELECTIDENTITY(int,1,1)As新闻ID,NEWSTITLEAS新闻标题,NEWSDATEAS新闻日期,HITSAS点击率INTOnewsMost2FROMt_news插入标识列一次插入多行数据•Union关键字INSERTnewsMost(新闻标题,新闻日期,点击率)SELECT'两会会议','2009-03-06',100UNIONSELECT'汽车.购车','2009-03-06',120UNIONSELECTNEWSTITLE,NEWSDATE,HITSFROMt_newsUNIONSELECT新闻标题,新闻日期,点击率FROMnewsMost2使用T-SQL更新数据UPDATE表名SET列名=更新值WHERE更新条件UPDATEt_News_UserSETPower='False'所有用户的权限Power都改为FalseUPDATEt_NewsSETNEWSOURCE='北大青鸟'WHERENEWSOURCEisNULL新闻来源NEWSOURCE为空NULL的记录,改为‘北大青鸟’使用T-SQL删除数据DELETEFROM表名[WHERE删除条件]DELETEFROMt_newsWHERENEWSOURCELIKE'%新浪网%'新闻来源是“新浪网”使用TruncateTable删除数据TRUNCATETABLEt_NewsTruncateTable用来删除表中的所有行,功能上类似于没有Where子句的Delete语句