- 博客(31)
- 资源 (27)
- 收藏
- 关注
原创 多表查询(一)
1、基本用表:teacher表course表:student表:2、表的基本连接eg1:简单的两个表连接select tname,dname,cname,ctestfrom teacher ,coursewhere teacher.cno = course.cno 查询结果:如果没有where这个连接条件,则执行的结果是每个教师信息均与所有的课程信息进行了连接,则查询出来的记录数是两个表记录数的乘积。创建表的基本连接只要遵守下面三条原则即可:from子句指出所有连接的表的表名where子句应定义连接
2010-12-31 17:37:00 882
原创 聚合分析和分组
SQL提供了一些列的聚集函数对表中的数据进行统计分析,在SQL中可以使用分组命令将列中的数据按照一定的条件进行分组。一般只将聚合函数作用在满足条件的分组上。因此聚合函数与分组命令一般结合使用
2010-12-31 10:53:00 678
原创 连接符。数值运算和函数
1、基本用表:bookitem表course表:2、连接符(+)eg:--使用连接符并给列取别名select tname +'('+dname+')' as info,agefrom teacherorder by age结果:PS:给表起别名和给列取别名不多eg:给表取别名--给表取别名select columnfrom table as table_alias 亮点注意事项:连接运算符只能用于连接两种数据类型相同或者相似的列,如果数据类型不同时,需要用cast进行数据类型转换。例如下
2010-12-31 10:39:00 1310
原创 复杂条件的查询
<br />1、主要内容:where子句中几种复杂的搜索条件,包括组合的搜索条件(and,or),in 运算符,not运算符,like运算符和相关的通配符。<br />2、实例表: 简单查询一文中的teacher表,和下面的course表<br />teacher表:<br /> <br /><br /> <br />course表:<br /><br /> <br />3、and 和or<br />eg:使用teacher表,查询计算机或者生物系的,并且工资高于1000的教师信息 ,如果采用下列查询代码:
2010-12-30 22:14:00 638
原创 简单的查询
1、select语句执行步骤from子句。根据from子句创建工作表,如果from子句中有多个表,则进行多个表的连接where子句。在步骤1 的结果基础上,删除不满足where条件的行group子句。对步骤2的结果进行分组,每个组的group by字段有相同的值having 子句。将步骤3的结果作为基础,进一步删除不满足having子句的记select子句。在步骤4的执行结果基础上,删除不在select子句中的列order by子句。对5的结果进行排序对于交互式的select语句,在屏幕上显示结果,对于嵌入
2010-12-30 11:56:00 339
原创 视图的创建和销毁
<br />1、基本用表<br />studentinfo 表<br /><br /> <br />recruitinfo 表<br /><br /> <br />department 表<br /><br /> <br />2、创建视图<br />创建简单视图<br />eg1:创建一个与studentinfo具有相同信息的视图<br />--创建与学生信息表相同视图create view studentinfo_viewasselect * from studentinfo--查询视图的
2010-12-30 10:21:00 873
原创 索引的创建和销毁
1、索引的结构索引分为聚集索引和非聚集索引。(1)聚集索引对表中的数据进行排序,因此使用聚集索引查找数据很快。由于表的排序方式只能有一种,所以聚集索引只能有一个。聚集索引结构如图:(2)非聚集索引非聚集索引和表的数据完全分离。使用非聚集索引不必将表的物理数据进行排序。由于非聚集索引使用索引页进行存储,所以比聚集索引需要更多的空间,且检索效率较低,但一个表可以有多个非聚集索引,理论上说一个表最多可以有149个非聚集索引。非聚集索引的结果如图:2、索引的创建和销毁基本表:
2010-12-29 15:53:00 600
原创 创建,修改和删除表
<br />1、表的创建<br />(1)创建表,包含非空和默认值约束<br /> <br />create table student( sno char not null, sname char(20) not null default 'qxy', sex char(2) not null default '男', birthday datatime, dno char(4) not null ) <br />包含非空约束的列,当在添加数据时,如果该列值为NULL,则数据库
2010-12-29 15:39:00 815
原创 SQL数据类型
<br />SQL预定义的数据类型主要包括:字符型数据,数字型数据, 日期型数据和二进制数据<br />1、字符型数据<br />最常用的一种数据类型,例如通信录中的姓名,地址,电子邮箱,甚至电话号码都是字符型的。字符型又可以分为固定长度和可变长度两种。<br />(1)固定长度。在创建表时就指定长度并分配存储空间。当录入数据少于固定长度时,数据库自动在右边补上空格,如果录入长度超过了设置的固定长度时,数据库只记录固定长度大小的数据,余下部分被截掉。<br />(2) 可变长度。可以存储任意长度的字符(由数
2010-12-26 20:02:00 799
原创 SQL语言的组成执行
一、SQL语言主要分成以下几个部分:数据定义语言(DDL):主要用于创建,修改,删除数据库对象,如表,视图,模式,触发器,存储过程等。与其相关的主要关键字包括create,alter,drop。数据查询语言(DQL):主要用于数据的检索。与其相关的关键字是select。数据操纵语言(DML):主要用于添加,修改,删除存储在数据库对象中的数据。主要关键字包括insert ,update和delete。数据控制语言(DCL):可以控制访问数据库中特定对象的用户,还可以控制用户对数据库的访问类型。与其相关的关键字
2010-12-26 16:35:00 1030
原创 小儿科备忘一下
1、关于引用:引用,可以看成是另一个变量的别名。int i,j;int & ri = i; //ri是i的别名j = 10; ri = j; //相当于i = j;,不要理解成ri又变成j的别名了 引用使用的注意事项:(1)声明引用时必须同时对它初始化,使它指向一个已经存在的对象。例如:int & ri; //error,引用应该在声明的时候初始化ri = i; (2)一个引用被初始化后,就不能改为指向其它对象,也就是说,一个引用从诞生起 ,就必须确定是哪个对象的别名,而且始终只能作为这一个变量
2010-12-25 14:01:00 386
原创 判断一个数是否是回文
<br />算法思想:<br />将这个数除10取余,从最低位开始依次取出个位数字,然后将最低位最为最高位,反序重组构成新的数,判读新数是否和原数相等。若相等则是回文,反之不是回文。<br /> <br />代码如下:<br />bool isHuiWen(long n){ long i,m; i = n; m = 0; while(i) { m = m * 10 + i % 10; i = i / 10; } return m == n;}
2010-12-25 12:59:00 532
原创 模板类之(数组)
#ifndef ARRAY_CLASS#define ARRAY_CLASS#include#includeusing namespace std;#ifndef NULLconst int NULL = 0;#endif//错误类型集合:数组大小错误,内存分配错误和下标越界错误enum ErrorType{invalidArraySize,memoryAllocationError,indexOutOfRange};//错误信息char *errorMsg[]
2010-12-23 16:32:00 901
转载 你知道吗:char **p 和 const char **p 类型不相容(转)
--------不晓得出处,但是感谢作者,还有my honey,我一开始就不懂,sigh~~。char **p和const char **p是两种不相容的类型,因为它们是两种不同的类型。如果你理解这句话,可以不用往下看了。先看这个代码:1 foo(const char **p){ }2 3 void main(int argc, char **argv)4 {5 foo(arvg);6 }如果编译这段代码,编译器会发出一条警告消息:line 5:warning argument is incompat
2010-12-21 16:50:00 735
转载 另一篇我最喜爱的关于const 的文章,老外写的
-------无意中逛到的收获,太棒了,虽然文章米有写出来const的重要性,但是对于很多关于const的比较复杂的使用,文章都给出来了,还有很多不合理的使用也给出来,都配有相关的例子,非常好理解。oh ,my god,我爱死这篇文章了!!!废话少说,上菜!Here's a start. Itdocuments what the keyword "const" means in various places within adeclaration. It does not go into the r
2010-12-21 14:26:00 460
转载 Const Correctness in C++(转)
<br />Const Correctness in C++IntroductionA popular USENET joke goes:In C, you merely shoot yourself in the foot.<br />In C++, you accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical care is i
2010-12-21 13:32:00 844
转载 C++关键字mutable(转滴)
<br /><br />关键字mutable 是一个奇怪的修饰符(specifier),它只能够用于一个类的非静态数据成员。下面我将讨论 mutable 的语义和用法,但是首先我要解释一下 C++ 对象模型的一个关键概念。<br />对象的状态<br /> 一个对象的状态由其非静态数据成员的值构成,因此,修改一个数据成员将会改变整个对象的状态。将一个成员函数声明为 const 能够保证它不会改变对象的状态。<br /> 然而在一些情况下,对象的逻辑状态与其物理状态之间可能有差别。例如,
2010-12-20 00:23:00 357
转载 volatile编写多线程程序的好帮手(转)
<br /><br /> 多线程的程序是出了名的难编写、难验证、难调试、难维护,这通常是件苦差事。不正确的多线程程序可能可以运行很多年也不出一点错,直到满足某些临界的条件时,才出现意想不到的奇怪错误。<br /><br /> 不用说,编写多线程程序的程序员需要使用可能得到的所有帮助。这期专栏将专注于讨论竞争条件(race conditions)——这通常是多线程程序中各种麻烦的根源——深入了解它并提供一些工具来防止竞争。令人惊异的是,我们将让编译器尽其所能来帮助你做这些事。<br /><br /
2010-12-20 00:22:00 341
转载 const的一些使用小细节
<br /><br /><br />1. 可以避免不必要的内存分配<br /> #define STRING "abcdefghijklmn/n"<br /> const char string[]="abcdefghijklm/n";<br /> ... printf(STRING); //为STRING分配了第一次内存<br /> printf(string); //为string一次分配了内存,以后不再分配 ...<br /> printf(STRING); /*为STR
2010-12-20 00:13:00 330
转载 const ,mutable,volatile()
<br /><br />总结的还不错,转过来吧,忘了就看看<br />const <br /><br /> 1、const修饰各种变量的用法.<br /> a、取代define<br /> #define D_INT 100<br /> #define D_LONG 100.29 <br /> ………<br /> const int D_INT = 100;<br /> cons
2010-12-20 00:08:00 309
原创 理解const
看了挺多中文关于中文const使用的文章,还是有点懵懵懂懂,知道看到这篇英文文章,豁然开朗,看来以后还是要多看看老外写的东西。1、 const int * & iFrom right to left:"i is a reference to a pointer to a constant int".Except I've broken my right to left rule here byreading the tokens inthe orderSee below for the expla
2010-12-19 23:47:00 397
原创 链表操作中易错的小问题
1、错误之一:没有记住链表的头元素 单向链表的头元素必须自始至终记住,否则链表将会在内存中丢失。这意味着在链表第一个元素之前插入新元素和删除链表的第一个元素时,指向链表头的指针或者引用必须更新。如果在一个函数或者一个方法中改变了链表,那么一定要记得更新链表的头指针。下面的一个例子是不正确的。eg://新增链表的头元素,没有更新链表的头指针 ,错误的示范!! public void insertInFront(ListElement list,object data){ listEle
2010-12-18 01:12:00 1563
原创 递归的应用
1、fabonacci数列问题参见http://blog.csdn.net/qinyushuang/archive/2010/12/15/6078790.aspx2、汉诺塔问题void hanoi(int n, char a ,char b , char c) 将n个盘子从a柱子,通过b柱子移动到c柱子,并使其从上到下盘子逐步变大{ if(n == 1) printf("将%d号盘子从%c---->%c",n,a,c); else {
2010-12-16 00:25:00 332
原创 斐波那契数列问题
1、求斐波那契数列第n项(1)非递归fabonacci(int n){ int f1 = 1,f2 = 1,f3; for(i = 2;i (2)递归fabonacci(int n){ int i; for(i = 1;i (3)公式法int fabonacci(int n){ return (pow((1+sqrt(5.0))/2,
2010-12-15 22:30:00 439
原创 猴子吃桃问题
猴子吃桃问题:第一天吃了一半,有多吃了一个;第二天吃了剩下的桃子的一半,又多吃了一个,以此类推,到第十天再想吃时,只剩下一个桃子了。求第一天桃子的总数。思路:递推,构造不变式n1 = 2*(n2+1);n2 = 2*(n3+1);。。。n9 = 2*(n10+1);n10 = 1 ;#includeint main(void){ int i=1 ,s; for(; i
2010-12-15 21:13:00 322
原创 求出2~32767之间所有的素数
<br />#include<stdio.h>int main(void){ int i ,n; for(n= 2; n<32767; n++) { for(i = 2; n%i ; i++) ; if (i == n) printf("%d",n);}
2010-12-15 21:05:00 689
原创 判断一个数是否是素数
<br />算法思想:<br />判断一个数n是否是素数,用n分别除以从2到sqrt(n)的所有整数,如果都除不尽,那么这个数是素数;否则(只要有一个能除尽),则这个数n是偶数。<br /> <br />Isprime(int n)<br />{<br />int i = 1;<br />while(++i<sqrt(n))<br />{<br />if(n % i == 0)<br />{<br />printf("%d is not prime /n",n);<br />break;<br />}<b
2010-12-15 20:53:00 553
原创 循环语句中的小陷阱
1、++,--在表达式中,求表达式的结果时用例子来说吧,表达不出来eg:int i = 3;则表达式(i++)+(i++)+(i++)的结果为9;原因:编译器对运算进行了优化,单个括号同步进行,每个括号的结果都是3,所以结果为9。思考:int a = 3;则表达式:(a++)*(++a)+(a--)*(--a)= ?结果:3*4+3*2 = 18;2、含有++或者--的运算符作为函数的参数含有++或者--的运算符作为函数的参数时,计算方法和上面不同。eg:int a = 3;printf("(a++)+(a
2010-12-15 19:53:00 411 1
原创 变量的存储类别
变量有两个属性:存在性和可见性存在性:是指变量都具有一定的数据类型并以一定的方式存储在内存之中可见性:是指其在作用域范围内是可见的,出了作用域则不可见变量的以上两个属性由下面四个变量的存储类别来决定的:auto,register,static,extern1、autoauto可以省略;表示自动变量,是局部变量,其作用域局限在其所在的函数块内;自动变量每一次进入函数体,就赋值一次指定的值。2、register寄存器变量,用法和作用域与auto变量相同;eg:register int i = 3;寄存器变量保存
2010-12-15 16:41:00 561
原创 数字字符和整数值之间的转换
<br />1、从数字字符得到整型数值<br />数字字符 - ‘0’ = 整型数值<br />eg:<br /> ‘9’ - ‘0’ =9;<br /> <br />2、从整型数值得到数字字符<br />整型数值 +‘0’ = 数字字符<br />eg:<br /> 9+‘0’ = ‘9’<br /> <br />应用的一个例子:<br />思考:如何把字符串“12345”变成整型数12345?<br />-----把字符串“12345”的每个字符一一提取出来变成‘1’,‘2’,‘3’,‘4’,‘
2010-12-15 14:05:00 1439
原创 /r与/n的区别
<br />/r 回车符,表示将光标定位到本行行首<br />/n 换行符,表示将光标定位到下一行行首<br />注意:如果“/”符号和其他字符不构成转义字符,则“/”和它后面紧接着的字符将被忽略。<br />eg1:<br /> <br />{ printf("/bc/nDEF/n"); printf("/tab/rcd/n/'ef//gh/a/n");} <br />输出结果:<br /> <br />c<br />DEF<br />cd ab
2010-12-15 13:29:00 1426
10部经典的算法著作合集,全英文的
2010-12-16
深入java虚拟机 java进阶不容错过的好书
2010-12-03
东南融通的面试题目 java方向 (内部)
2010-10-15
C语言库函数范例教程
2010-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人