资源描述:
《SQL基础培训专题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SQL基础培训专题培训目标:了解SQL(select,update,insert)的基本写法、复杂写法,在有索引的情况下,如何写出高效的SQL。第一章、实例环境一描述学生成绩管理系统课程信息表xj_course(CrsID,CrsName,CrsNote)学生信息表xj_stu(StuID,ClsID,StuName,Birthday,Address,Tel,City)教师信息表xj_tea(TeaID,TeaName,address)分数表xj_score(StuID,ClsID,CrsID,TeaID,score)课程所属关系信息表xj_cl
2、scrs(ClsID,CrsID,TeaID)建立环境实例环境的建立:MySQL4.1.10a-max-log,DB2版本。第二章基本SQL语法介绍2.1Select最基本的语句,MySQL的语法为:Select[All
3、Distinct]select_list[intooutFile‘FileName’export_options
4、intodumfile‘fileName’]Fromtabl_list[Wherewhere_expr][GroupbyColumndesc
5、asc][Havingwhere_expr][OrderbyColName
6、asc
7、desc][limitn,m][Forupdate
8、Lockinsharemode]2.1.1,distinct是控制返回的数据重复行的。selectdistinctCity,ClsIDFromxj_stuselectdistinctClsIDFromxj_stu2,into选项能把这个结果导出到外面的文本文件中。mysql>select*intooutfile'wangxl.txt'Fromxj_stu;QueryOK,27rowsaffected(0.00sec)mysql>select*intodumpfile'xj_stu.txt
9、'Fromxj_stu;ERROR1172(42000):Resultconsistedofmorethanonerowmysql>select*intodumpfile'xj_stu.txt'Fromxj_stuwherestuid='STU001';QueryOK,1rowaffected(0.00sec)[root@fxs001/]#find/-name"xj_stu.txt"/usr/local/mysql-max-4.1.10a-pc-linux-gnu-i686/data/sqldb/xj_stu.txt3,Fromtabl_list
10、列举要检索的数据表或者子查询。这里要讲究的东西还挺多的,A,可以设置别名:Fromxj_stuS,xj_ClsC。别名别重复、别是关键字就行。B,可以把一个子查询当作一个表。select*From(selectdistinctClsIDFromxj_stu)a。其实放在From后面的东西别理解成表,直接理解成一个结果集,一个通过各种手段构造的子查询,这样就为写很多复杂的SQL作意识上的准备。C,联合查询,就在这个中间体现了,一般的有:tableAAinnerjointableBBonA.ID=B.ID两个都有的来连接。去掉inner也一样。tab
11、leAAleftouterjointableBonA.ID=B.IDA中所有的连接起来,去掉outer也一样。D,USE/IGNORE/FORCEINDEX来特别提醒MySQL来进行有些索引得取舍。4,where子句是用来限定条件或者建立表、子查询关联的语句。5,limit分页中常用LIMIT子句可以被用于强制SELECT语句返回指定的记录数。LIMIT接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是0(而不是1):mysql>SEL
12、ECT*FROMtableLIMIT5,10;#检索记录行6-15为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为-1:mysql>SELECT*FROMtableLIMIT95,-1;#检索记录行96-last.如果只给定一个参数,它表示返回最大的记录行数目:mysql>SELECT*FROMtableLIMIT5;#检索前5个记录行换句话说,LIMITn等价于LIMIT0,n。6,Groupby是用来进行统计分组合计的功能,后面接要进行统计分组的字段或者表达式。Count(*)返回由一个SELECT语句检索出来的记录行中
13、非NULL值的记录总数目:insertintoxj_clsvalues('9999','tempClass')selectcount(S