vb连接oracle数据库库最后一道vb题如何破

如何查询一条或多条记录,修改后批量更新到数据库 - VB当前位置:& &&&如何查询一条或多条记录,修改后批量更新到数据库如何查询一条或多条记录,修改后批量更新到数据库&&网友分享于:&&浏览:371次怎么查询一条或多条记录,修改后批量更新到数据库数据库是access查询出一条记录,& 修改其中的数据,然后可以继续查询,修改.作了多条记录的修改之后再一起更新到数据库,怎么操作效率高点啊!数据库经验较少,希望大虾给出方案------解决方案--------------------
探讨引用:建议你修改完成一条更新一条。用什么理由说服头不要这么干呢
------解决方案--------------------
探讨引用:建议你修改完成一条更新一条。用什么理由说服头不要这么干呢
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有数据库常见面试题 - 数据库综合 - 次元立方网 - 电脑知识与技术互动交流平台
数据库常见面试题
1. 主键 超键 候选键 外键
数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。
在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。
是最小超键,即没有冗余元素的超键。
在一个表中存在的另一个表的主键称此表的外键。
2.数据库事务的四个特性及含义
数据库事务transanction正确执行的四个基本要素。ACID,原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。
原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行 相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请 求,使得在同一时间仅有一个请求用于同一数据。
持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
3.视图的作用,视图可以更改么?
视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询;不包含任何列或数据。使用视图可以简化复杂的sql操作,隐藏具体的细节,保护数据;视图创建后,可以使用与表相同的方式利用它们。
视图不能被索引,也不能有关联的触发器或默认值,如果视图本身内有order by 则对视图再次order by将被覆盖。
创建视图:create view XXX as XXXXXXXXXXXXXX;
对于某些视图比如未使用联结子查询分组聚集函数Distinct Union等,是可以对其更新的,对视图的更新将对基表进行更新;但是视图主要用于简化检索,保护数据,并不用于更新,而且大部分视图都不可以更新。
关于视图的更多内容:/zzwlovegfj/archive//2559596.html
4.drop,delete与truncate的区别
drop直接删掉表
truncate删除表中数据,再插入时自增长id又从1开始
delete删除表中数据,可以加where字句。
DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。
表和索引所占空间。当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,而DELETE操作不会减少表或索引所占用的空间。drop语句将表所占用的空间全释放掉。
一般而言,drop & truncate & delete
应用范围。TRUNCATE 只能对TABLE;DELETE可以是table和view
TRUNCATE 和DELETE只删除数据,而DROP则删除整个表(结构和数据)。
truncate与不带where的delete :只删除数据,而不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。
delete语句为DML(data maintain Language),这个操作会被放到 rollback segment中,事务提交后才生效。如果有相应的 tigger,执行的时候将被触发。
truncate、drop是DLL(data define language),操作立即生效,原数据不放到 rollback segment中,不能回滚
在没有备份情况下,谨慎使用 drop 与 truncate。要删除部分数据行采用delete且注意结合where来约束影响范围。回滚段要足够大。要删除表用若想保留表而将表中数据删除,如果于事务无关,用truncate即可实现。如果和事务有关,或老师想触发trigger,还是用delete。
(10) Truncate table 表名 速度快,而且效率高,因为:
truncate table 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
(11) TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
(12) 对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
5.索引的工作原理及其种类
转自 http://blog.csdn.net/kennyrose/article/details/7532032
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。
在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。
上图展示了一种可能的索引方式。左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在O(log2n)的复杂度内获取到相应数据。
创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是创建索引的最主穴ky"http://www.it165.net/qq/" target="_blank" class="keylink">qq1xNSt0vKhozwvcD4KPHA+CrXayP2jrL/J0tS808vZse26zbHt1q685LXEway906OszNix8MrH1NrKtc/Wyv2+3bXEss6/vM3q1fvQ1Le9w+bM2LHw09DS4tLloaM8L3A+CjxwPgq12svEo6zU2sq508O31tfpus3FxdDy19O+5L340NDK/b7dvOzL98qxo6zNrNH5v8nS1M/U1vi89cnZsunRr9bQt9bX6brNxcXQ8rXEyrG85KGjPC9wPgo8cD4KtdrO5aOszai5/cq508PL99L9o6y/ydLU1Nqy6dGvtcS5/bPM1tCjrMq508PTxbuv0v6y2Mb3o6zM4bjfz7XNs7XE0NTE3KGjIDxicj4KPC9wPgo8cD4KPGJyPgo8L3A+CjxwPgrSstDtu+HT0MjL0qrOyqO61Pa808v30v3T0MjntMu24LXE08W146OszqrKssO0sru21LHt1tC1xMO/0ru49sHQtLS9qNK7uPbL99L9xNijv9LyzjrNT2vNPL99L90rLT0NDttuCyu8D7tcS3vcPmoaM8L3A+CjxwPgq12tK7o6y0tL2oy/fS/brNzqy7pMv30v3SqrrEt9HKsbzko6zV4tbWyrG85Mvm18XK/b7dwb+1xNT2vNO2+NT2vNOhozwvcD4KPHA+CrXatv6jrMv30v3Q6NKq1bzO78Dtv9W85KOss/3By8r9vt2x7dW8yv2+3b/VvOTWrs3io6zDv9K7uPbL99L9u7nSqtW80ru2qLXEzu/A7b/VvOSjrMjnufvSqr2owaK+27TYy/fS/aOsxMfDtNDo0qq1xL/VvOS+zbvhuPy086GjPC9wPgo8cD4KtdrI/aOstbG21LHt1tC1xMr9vt29+NDQ1Pa806Giyb6z/brN0N64xLXEyrG68qOsy/fS/dKy0qq2r8ystcTOrLuko6zV4tH5vs29tbXNwcvK/b7dtcTOrLuky9m2yKGjPGJyPgo8L3A+CjxwPgo8YnI+CjwvcD4KPHA+Csv30v3Kx72owaLU2sr9vt2/4rHt1tC1xMSz0KnB0LXEyc/D5qGj1Nq0tL2oy/fS/bXEyrG68qOs06a4w7+8wsfU2sTE0KnB0MnPv8nS1LS0vajL99L9o6zU2sTE0KnB0MnPsrvE3LS0vajL99L9oaM8c3Ryb25nPtK7sOPAtMu1o6zTprjD1NrV4tCpwdDJz7S0vajL99L9o7o8L3N0cm9uZz7U2r6ts6PQ6NKqy9HL97XEwdDJz6Osv8nS1LzTv+zL0cv3tcTL2bbIo7vU2tf3zqrW97z8tcTB0MnPo6zHv9bGuMPB0LXEzqjSu9DUus3X6davse3W0Mr9vt21xMXFwdC94bm5o7vU2r6ts6PTw9Taway907XEwdDJz6Os1eLQqcHQ1vfSqsrH0rvQqc3ivPyjrL/J0tS807/sway907XEy9m2yKO71Nq+rbOj0OjSqrj5vt23ts6nvfjQ0MvRy/e1xMHQyc+0tL2oy/fS/aOs0vLOqsv30v3S0b6txcXQ8qOsxuTWuLaotcS3ts6nysfBrND4tcSju9Tavq2zo9Do0qrFxdDytcTB0MnPtLS9qMv30v2jrNLyzqrL99L90tG+rcXF0PKjrNXi0fmy6dGvv8nS1MD708PL99L9tcTFxdDyo6y807/sxcXQ8rLp0a/Ksbzko7vU2r6ts6PKudPD1NpXSEVSRdfTvuTW0LXEwdDJz8PmtLS9qMv30v2jrLzTv+zM9bz+tcTF0LbPy9m2yKGjPGJyPgo8L3A+CjxwPgo8YnI+CjwvcD4KPHA+Cs2s0fmjrLbU09rT0NCpwdCyu9OmuMO0tL2oy/fS/aGjPHN0cm9uZz7Su7DjwLTLtaOssrvTprjDtLS9qMv30v21xLXE1eLQqcHQvt/T0M/CwdDM2LXjo7o8L3N0cm9uZz48L3A+CjxwPgq12tK7o6y21NPaxMfQqdTasunRr9bQutzJ2cq508O78tXfss6/vLXEwdCyu9OmuMO0tL2oy/fS/aGj1eLKx9LyzqqjrLzIyLvV4tCpwdC63MnZyrnTw7W9o6zS8rTL09DL99L9u/LV387ey/fS/aOssqKyu8TczOG437Lp0a/L2bbIoaPP4Le0o6zTydPa1Pa808HLy/fS/aOst7S2+L21tc3By8+1zbO1xM6su6TL2bbIus3U9rTzwcu/1bzk0OjH86GjPC9wPgo8cD4Ktdq2/qOsttTT2sTH0KnWu9PQutzJ2cr9vt0mIzIwNTQwO7XEwdDSsrK706a4w9T2vNPL99L9oaPV4srH0vLOqqOs08nT2tXi0KnB0LXEyKEmIzIwNTQwO7rcydmjrMD9yOfIy8rCse21xNDUsfDB0KOs1Nqy6dGvtcS94bn71tCjrL3hufu8r7XEyv2+3dDQ1bzBy7Ht1tDK/b7d0NC1xLrctPOxyMD9o6y8tNDo0qrU2rHt1tDL0cv3tcTK/b7d0NC1xLHIwP263LTzoaPU9rzTy/fS/aOssqKyu8Tcw/fP1LzTv+y87Mv3y9m2yKGjPC9wPgo8cD4KtdrI/aOsttTT2sTH0Km2qNLlzqp0ZXh0LCBpbWFnZbrNYml0yv2+3cDg0M21xMHQsrvTprjD1Pa808v30v2ho9XiysfS8s6qo6zV4tCpwdC1xMr9vt3Bv9Kqw7TP4LWxtPOjrNKqw7TIoSYjMjA1NDA7utzJ2aGjPC9wPgo8cD4KtdrLxKOstbHQ3rjE0NTE3NS21La089PavOzL99DUxNzKsaOssrvTprjDtLS9qMv30v2ho9XiysfS8s6qo6w8c3Ryb25nPtDeuMTQ1MTcus287Mv30NTE3MrHu6XP4MOstty1xDwvc3Ryb25nPqGjtbHU9rzTy/fS/cqxo6y74czhuN+87Mv30NTE3KOstavKx7vhvbW1zdDeuMTQ1MTcoaO1sbz1ydnL99L9yrGjrLvhzOG439DeuMTQ1MTco6y9tbXNvOzL99DUxNyho9LytMujrLWx0N64xNDUxNzUttS2tPPT2rzsy/fQ1MTcyrGjrLK706a4w7S0vajL99L9oaM8YnI+CjwvcD4KPHA+Cjxicj4KPC9wPgo8cD4KuPm+3cr9vt2/4rXEuabE3KOsv8nS1NTayv2+3b/iyei8xsb31tC0tL2oyP3W1sv30v2jujxzdHJvbmc+zqjSu8v30v2hotb3vPzL99L9us2+27yvy/fS/Twvc3Ryb25nPqGjPC9wPgoKCjxzdHJvbmc+zqjSu8v30v0gPC9zdHJvbmc+CjxwPgo8L3A+CjxwPgrOqNK7y/fS/crHsrvUytDtxuTW0MjOus7BvdDQvt/T0M/gzazL99L9JiMyMDU0MDu1xMv30v2hozwvcD4KCgq1sc/W09DK/b7d1tC05tTa1ti4tLXEvPwmIzIwNTQwO8qxo6y087bgyv3K/b7dv+Kyu9TK0O29q9DCtLS9qLXEzqjSu8v30v3T67Ht0rvG8LGjtOaho8r9vt2/4ru5v8nE3LfA1rnM7bzTvavU2rHt1tC0tL2o1ti4tLz8JiMyMDU0MDu1xNDCyv2+3aGjwP3I56OsyOe5+9TaZW1wbG95ZWWx7dbQ1rDUsbXE0NUobG5hbWUpyc+0tL2owcvOqNK7y/fS/aOs1PLIzrrOwb249tSxuaS2vLK7xNzNrNDVoaMKCgo8c3Ryb25nPtb3vPzL99L9PC9zdHJvbmc+CgoKyv2+3b/ise2+rbOj09DSu8HQu/LB0Nfpus+jrMbkJiMyMDU0MDvOqNK7serKtrHt1tC1xMO/0rvQ0KGjuMPB0LPGzqqx7bXE1ve8/KGjCgoK1NrK/b7dv+K52M+1zbzW0M6qse22qNLl1ve8/L2r19S2r7S0vajW97z8y/fS/aOs1ve8/Mv30v3Kx86o0rvL99L9tcTM2LaowODQzaGjuMPL99L90qrH89b3vPzW0LXEw7+49iYjMjA1NDA7trzOqNK7oaO1sdTasunRr9bQyrnTw9b3vPzL99L9yrGjrMv8u7nUytDtttTK/b7dtcS/7MvZt8POyqGjCgoKPHN0cm9uZz6+27yvy/fS/Twvc3Ryb25nPgoKCtTavtu8r8v30v3W0KOsse3W0NDQtcTO78Dty7PQ8tPrvPwmIzIwNTQwO7XEwt+8raOoy/fS/aOpy7PQ8s/gzayhozxzdHJvbmc+0ru49rHt1rvE3LD8uqzSu7j2vtu8r8v30v2hozwvc3Ryb25nPgoKCjxwPgrI57n7xLPL99L9srvKx77bvK/L99L9o6zU8rHt1tDQ0LXEzu/A7cuz0PLT67z8JiMyMDU0MDu1xMLfvK3Ls9DysrvGpcXkoaM8c3Ryb25nPtPrt8e+27yvy/fS/c/gscijrL7bvK/L99L9zaizo8zhuam4/L/stcTK/b7dt8POysvZtsihozwvc3Ryb25nPjwvcD4KPHA+Cjxicj4KPC9wPgo8cD4KPGJyPgo8L3A+CjxwPgo8L3A+CjxoMz6+1rK/0NTUrcDt0+u0xcXM1KS2wTwvaDM+CjxwPgo8L3A+CjxwPgrTydPatOa0or3p1sq1xMzY0NSjrLTFxcyxvsnttObIob7NscjW97Tmwv263Lbgo6zU2bzTyc+7+tC11Mu2r7rEt9GjrLTFxcy1xLTmyKHL2bbIzfnN+crH1ve05rXEvLiw2bfWt9bWrtK7o6zS8rTLzqrBy8zhuN/Qp8LKo6zSqr6hwb+89cnZtMXFzEkvT6GjzqrBy7Tvtb3V4rj2xL+1xKOstMXFzM35zfmyu8rH0c8mIzI2Njg0O7C00Oi2wciho6y2+MrHw7+0zra8u+HUpLbBo6y8tMq51rvQ6NKq0ru49tfWvdqjrLTFxczSsrvhtNPV4rj2zrvWw7+qyryjrMuz0PLP8rrztsHIodK7tqizpLbItcTK/b7dt8XI68TatOaho9Xi0fnX9rXEwO3C29LAvt3Kx7zGy+O7+r/G0afW0Nb4w/u1xDxzdHJvbmc+vtayv9DU1K3A7Twvc3Ryb25nPqO6PHN0cm9uZz61sdK7uPbK/b7dsbvTw7W9yrGjrMbkuL29/LXEyv2+3dKyzaizo7vhwu3Jz7G7yrnTw6Gjs8zQ8tTL0NDG2rzky/nQ6NKqtcTK/b7dzaizo7HIvc+8r9bQoaM8L3N0cm9uZz48L3A+CjxwPgrTydPatMXFzMuz0PK2wcihtcTQp8LKuty436OosrvQ6NKq0bC1wMqxvOSjrNa70Oi63MnZtcTQ/deqyrG85KOpo6zS8rTLttTT2r7f09C+1rK/0NS1xLPM0PLAtMu1o6zUpLbBv8nS1MzhuN9JL0/Qp8LKoaM8L3A+CjxwPgrUpLbBtcSzpLbI0ruw486q0rOjqHBhZ2WjqbXE1fuxtsr9oaPSs8rHvMbL47v6udzA7bTmtKLG97XEwt+8rb/po6zTsrz+vLCy2df3z7XNs835zfm9q9b3tOa6zbTFxcy05rSix/i31rjuzqrBrND4tcS089Chz+C1yLXEv+mjrMO/uPa05rSiv+mzxs6q0rvSs6Oo1NrQ7bbgstnX98+1zbPW0KOs0rO1w7Tz0KHNqLOjzqo0a6Opo6zW97Tmus20xcXM0tTSs86qtaXOu727u7vK/b7doaO1sbPM0PLSqrbByKG1xMr9vt2yu9Ta1ve05tbQyrGjrLvhtKW3otK7uPbIsdKz0uyzo6OstMvKsc+1zbO74c/ytMXFzLeis/a2wcXM0MW6xaOstMXFzLvh1dK1vcr9vt21xMbwyrzOu9bDsqLP8rrzwazQ+LbByKHSu9Kzu/K8uNKz1NjI68TatObW0KOsyLu689Lss6O3tbvYo6yzzNDyvMzQ+NTL0NChozwvcD4KPGgzPkItLyYjNDM7VHJlZcv30v21xNDUxNy31s72PC9oMz4KPHA+CrW91eLA79bV09q/ydLUt9bO9kItLyYjNDM7VHJlZcv30v21xNDUxNzBy6GjPC9wPgo8cD4Kyc/OxMu1uf3Su7DjyrnTw7TFxcxJL0+0zsr9xsC828v30v294bm5tcTTxcHToaPPyLTTQi1UcmVlt9bO9qOsuPm+3UItVHJlZbXEtqjS5aOsv8nWqrzsy/fSu7TO1+624NDo0qq3w87KaLj2vdq146Gjyv2+3b/iz7XNs7XEyei8xtXfx8nD7sD708PBy7TFxczUpLbB1K3A7aOsvavSu7j2vdq147XEtPPQocnozqq1yNPa0ru49tKzo6zV4tH5w7+49r3atePWu9Do0qrSu7TOSS9Pvs2/ydLUzerIq9TYyOuho86qwcu077W91eK49sS/tcSjrNTayrW8ysq1z9ZCLVRyZWW7udDo0qrKudPDyOfPwry8x8mjujwvcD4KPHA+CsO/tM7Qwr2ovdq148qxo6zWsb3TyerH69K7uPbSs7XEv9W85KOs1eLR+b7NsaPWpNK7uPa92rXjzu/A7cnP0rK05rSi1NrSu7j20rPA76OsvNPWrrzGy+O7+rTmtKK31sXktrzKx7C00rO21MbrtcSjrL7NyrXP1sHL0ru49m5vZGXWu9Do0ru0zkkvT6GjPC9wPgo8cD4KPHN0cm9uZz5CLVRyZWXW0NK7tM687Mv31+624NDo0qpoLTG0zkkvT6OouPm92rXjs6PXpMTatOajqaOsvaW9+Li01NO2yM6qTyhoKT1PKGxvZzxzdWI+ZDwvc3ViPk4poaM8L3N0cm9uZz7Su7DjyrW8ytOm08PW0KOss/a2yGTKx7fHs6O087XEyv3X1qOszaizo7Osuf0xMDCjrNLytMtot8ezo9Cho6jNqLOjsruzrLn9M6OpoaM8L3A+CjxwPgq2+LrsutrK99Xi1ta94bm5o6xow/fP1NKqye61xLbgoaPTydPawt+8rcnPuty9/LXEvdq146OouLjX06Opzu/A7cnPv8nE3Lrc1LajrM7et6jA+9PDvtayv9DUo6zL+dLUuuy62sr3tcRJL0+9pb34uLTU07bI0rLOqk8oaCmjrNCnwsrD98/UschCLVRyZWWy7rrctuChozwvcD4KPHA+Cjxicj4KPC9wPgo8cD4KPHN0cm9uZz7X28nPy/nK9qOs08NCLVRyZWXX986qy/fS/b3hubnQp8LKyse3x7OjuN+1xKGjPC9zdHJvbmc+PC9wPgo8YnI+Cgo8YnI+Cgo8YnI+Cgo8aDM+Ni7BrL3TtcTW1sDgPC9oMz4KsunRr7fWzvbG99bQ1rTQ0KO6PGJyPgotLb2ose10YWJsZTEsdGFibGUyo7o8YnI+CmNyZWF0ZSB0YWJsZSB0YWJsZTEoaWQgaW50LG5hbWUgdmFyY2hhcigxMCkpPGJyPgpjcmVhdGUgdGFibGUgdGFibGUyKGlkIGludCxzY29yZSBpbnQpPGJyPgppbnNlcnQgaW50byB0YWJsZTEgc2VsZWN0IDEs"lee'
insert into table1 select 2,'zhang'
insert into table1 select 4,'wang'
insert into table2 select 1,90
insert into table2 select 2,100
insert into table2 select 3,70
-------------------------------------------------
-------------------------------------------------
-------------------------------------------------
以下均在查询分析器中执行
一、外连接
1.概念:包括左向外联接、右向外联接或完整外部联接
2.左连接:left join 或 left outer join
(1)左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。
(2)sql 语句
select * from table1 left join table2 on table1.id=table2.id
-------------结果-------------
idnameidscore
------------------------------
2zhang2100
4wangNULLNULL
------------------------------
注释:包含table1的所有子句,根据指定条件返回table2相应的字段,不符合的以null显示
3.右连接:right join 或 right outer join
(1)右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
(2)sql 语句
select * from table1 right join table2 on table1.id=table2.id
-------------结果-------------
idnameidscore
------------------------------
2zhang2100
NULLNULL370
------------------------------
注释:包含table2的所有子句,根据指定条件返回table1相应的字段,不符合的以null显示
4.完整外部联接:full join 或 full outer join
(1)完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
(2)sql 语句
select * from table1 full join table2 on table1.id=table2.id
-------------结果-------------
idnameidscore
------------------------------
2zhang2100
4wangNULLNULL
NULLNULL370
------------------------------
注释:返回左右连接的和(见上左、右连接)
二、内连接
1.概念:内联接是用比较运算符比较要联接列的值的联接
2.内连接:join 或 inner join
3.sql 语句
select * from table1 join table2 on table1.id=table2.id
-------------结果-------------
idnameidscore
------------------------------
2zhang2100
------------------------------
注释:只返回符合条件的table1和table2的列
4.等价(与下列执行效果相同)
A:select a.*,b.* from table1 a,table2 b where a.id=b.id
B:select * from table1 cross join table2 where table1.id=table2.id (注:cross join后加条件只能用where,不能用on)
三、交叉连接(完全)
1.概念:没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1和table2交叉连接产生3*3=9条记录)
2.交叉连接:cross join (不带条件where...)
select * from table1 cross join table2
-------------结果-------------
idnameidscore
------------------------------
2zhang2100
------------------------------
注释:返回3*3=9条记录,即笛卡尔积
4.等价(与下列执行效果相同)
A:select * from table1,table2
7.数据库范式
1 第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。
2 第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键、主码。
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。
3 第三范式(3NF)
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。(我的理解是消除冗余)
8.数据库优化的思路
这个我借鉴了慕课上关于数据库优化的课程。
1.SQL语句优化
1)应尽量避免在 where 子句中使用!=或&&操作符,否则将引擎放弃使用索引而进行全表扫描。
2)应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
3)很多时候用 exists 代替 in 是一个好的选择
4)用Where子句替换HAVING 子句
因为HAVING 只会在检索出所有记录之后才对结果集进行过滤
2.索引优化
看上文索引
3.数据库结构优化
1)范式优化:
比如消除冗余(节省空间。。)
2)反范式优化:比如适当加冗余等(减少join)
3)拆分表:
分区将数据在物理上分隔开,不同分区的数据可以制定保存在处于不同磁盘上的数据文件里。这样,当对这个表进行查询时,只需要在表分区中进行扫描,而不必进行全表扫描,明显缩短了查询时间,另外处于不同磁盘的分区也将对这个表的数据传输分散在不同的磁盘I/O,一个精心设置的分区可以将数据传输对磁盘I/O竞争均匀地分散开。对数据量大的时时表可采取此方法。可按月自动建表分区。
4)拆分其实又分垂直拆分和水平拆分:
简单购物系统暂设涉及如下表:
1.产品表(数据量10w,稳定)
2.订单表(数据量200w,且有增长趋势)
3.用户表 (数据量100w,且有增长趋势)
以mysql为例讲述下水平拆分和垂直拆分,mysql能容忍的数量级在百万静态数据可以到千万
垂直拆分:
解决问题:表与表之间的io竞争
不解决问题:单表中数据量增长出现的压力
把产品表和用户表放到一个server上
订单表单独放到一个server上
水平拆分:
解决问题:单表中数据量增长出现的压力
不解决问题:表与表之间的io争夺
用户表通过性别拆分为男用户表和女用户表
订单表通过已完成和完成中拆分为已完成订单和未完成订单
产品表 未完成订单放一个server上
已完成订单表盒男用户表放一个server上
女用户表放一个server上(女的爱购物 哈哈)
4.服务器硬件优化
这个么多花钱咯!
9.存储过程与触发器的区别
触发器与存储过程非常相似,触发器也是SQL语句集,两者唯一的区别是触发器不能用EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发(激活)执行。触发器是在一个修改了指定表中的数据时执行的存储过程。通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合这些SQL语句所定义的规则。
延伸阅读:
上一篇讲解了如何在ABP中使用RedisCache,虽然能够正...
本教程为 李华明 编著的iOS-Cocos2d游戏开发系列教程:教程涵盖关于i......
专题主要学习DirectX的初级编程入门学习,对Directx11的入门及初学者有......
&面向对象的JavaScript&这一说法多少有些冗余,因为JavaScript 语言本......
Windows7系统专题 无论是升级操作系统、资料备份、加强资料的安全及管......

我要回帖

更多关于 vb连接access数据库 的文章

 

随机推荐