例题紧接着上一篇博客,链接地址在这里:
数据库【数据索引&插入&查询】
这个样子的第二列是没有表头的,添加方法在下一个例题有方法哦。
tips:
字母变小写LOWER 字母变大写UPPER
无列名
有英文列名
这个样子就可以添加使用户简单理解的表头了。 SQL serve是支持中文的,表头可以设置成中文格式。 有中文列名
其中第二列,数据列较多时可以提示编程者下一列的含义,哦,其实没有太大的用处。
去重前
等价于
去重后
如果没有指定DISTINCT关键词,则缺省为ALL
BETWEEN … AND … NOT BETWEEN AND 包括端点值
% (百分号) 代表任意长度(长度可以为0)的字符串 例如a%b表示以a开头,以b结尾的任意长度的字符串 _ (下横线) 代表任意单个字符。 例如a_b表示以a开头,以b结尾的长度为3的任意字符串
在这种简单的情况下,等价于
但是like更多的是使用在下面的情况下:
例3.30—例3.33 情况有点特殊,,, 我在这里为了更好的测试,新建了一个Test的数据库。 新的数据如下图: 接着附上建立的代码
建表
插入数据并查询
若是将上个代码的下划线变成两个,就会出现下面的结果
【注】数据库字符集为ASCII时,一个汉字需要两个_ 数据库字符集为 GBK 时,一个汉字需要一个_
ESCAPE ‘\’ 表示“ \” 为换码字符
and的优先级高于or
ORDER BY子句(排序) 可以按一个或多个属性列排序 升序:ASC; 降序:DESC; 缺省值为ASC 对于空值,排序时显示的次序由具体系统实现来决定。 例如按照升序排,含空值的元组最后显示;按照降序排,空值的元素则最先显示。
第一个Sdept后面没有添加属性,系统默认为ASC升序。
查询结果如下,先按照专业排,专业内再按照年龄排
统计元组个数 COUNT(*) 统计一列中值的个数 COUNT([DISTINCT|ALL] <列名>) 计算一列值的总和 SUM([DISTINCT|ALL] <列名>) 计算一列值的平均值 AVG([DISTINCT|ALL] <列名> 求一列中的最大值和最小值 MAX([DISTINCT|ALL] <列名>) MIN([DISTINCT|ALL] <列名>)
注:SC.Cno=Course.Cno 该语句将SC和Course两个表按照Cno连接起来了。
将以上代码做轻微的改变,查询的结果就是每位同学选了几门课。
前面的都是在实验室里写的,非常顺利,但是下课的时候,还没有写完,吃了一个中午饭,看了一集动漫,啊这个,居然就开始错误了。
我的代码没有写错啊!!!
说一下我的解决方案,看这里啊,这里要更改成为自己所查询的数据库的名字,我的数据全部存储在Student数据库中,所以啊,改成Student就可以了。
哎,电脑睡眠一下,吃个饭而已,这点小问题,难为了我好大一会,烦死了~~~~ 还是说点心得吧: 这些东西都不是很难,但看到代码就知道这是什么意思很简单,但是脱离课本自己盲目的写,就有点问题了,还是需要记忆和练习的。