這裡蒐索程式師資訊,查找有用的技術資料
当前位置:首页 » 编程语言 » 没有sql语句的数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

没有sql语句的数据库

发布时间: 2022-04-26 13:28:31

A. 没有装sql数据库,如何执行SQL语句

请按下列步骤操作: 1、新建一文本文件,写入需要执行的sql语句并保存; 2、将该文本文件的后缀名由txt改为sql; 3、单击【开始】→【程序】→【金蝶KIS专业版】→【工具】→【账套管理】; 4、单击选中需要执行语句的账套,单击【操作】→【执行语句】,单击【打开】按钮,选中保存的sql文件后单击【打开】,单击【执行】即可。

B. 如何用SQL语句创建数据库

在SQL语句中,CREATE DATABASE 语句用于创建数据库。

具体用法如下:

-from 树懒学堂

数据库表可以通过 CREATE TABLE 语句来添加。

C. SQL 语句在数据库中是怎样执行的

第一步:应用程序把查询SQL语句发给服务器端执行

我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理。

第二步:服务器解析请求的SQL语句

SQL计划缓存,经常用查询分析器的朋友大概都知道这样一个事实,往往一个查询语句在第一次运行的时候需要执行特别长的时间,但是如果你马上或者在一定时间内运行同样的语句,会在很短的时间内返回查询结果。原因是:

  • 服务器在接收到查询请求后,并不会马上去数据库查询,而是在数据库中的计划缓存中找是否有相对应的执行计划。如果存在,就直接调用已经编译好的执行计划,节省了执行计划的编译时间。

  • 如果所查询的行已经存在于数据缓冲存储区中,就不用查询物理文件了,而是从缓存中取数据,这样从内存中取数据就会比从硬盘上读取数据快很多,提高了查询效率。数据缓冲存储区会在后面提到。

  • 如果在SQL计划缓存中没有对应的执行计划,服务器首先会对用户请求的SQL语句进行语法效验,如果有语法错误,服务器会结束查询操作,并用返回相应的错误信息给调用它的应用程序。

    注意:此时返回的错误信息中,只会包含基本的语法错误信息,例如select写成selec等,错误信息中如果包含一列表中本没有的列,此时服务器是不会检查出来的,因为只是语法验证,语义是否正确放在下一步进行。

    语法符合后,就开始验证它的语义是否正确。例如,表名、列名、存储过程等等数据库对象是否真正存在,如果发现有不存在的,就会报错给应用程序,同时结束查询。

    接下来就是获得对象的解析锁,我们在查询一个表时,首先服务器会对这个对象加锁,这是为了保证数据的统一性,如果不加锁,此时有数据插入,但因为没有加锁的原因,查询已经将这条记录读入,而有的插入会因为事务的失败会回滚,就会形成脏读的现象。

    接下来就是对数据库用户权限的验证。SQL语句语法,语义都正确,此时并不一定能够得到查询结果,如果数据库用户没有相应的访问权限,服务器会报出权限不足的错误给应用程序,在稍大的项目中,往往一个项目里面会包含好几个数据库连接串,这些数据库用户具有不同的权限,有的是只读权限,有的是只写权限,有的是可读可写,根据不同的操作选取不同的用户来执行。稍微不注意,无论你的SQL语句写的多么完善,完美无缺都没用。

    解析的最后一步,就是确定最终的执行计划。当语法、语义、权限都验证后,服务器并不会马上给你返回结果,而是会针对你的SQL进行优化,选择不同的查询算法以最高效的形式返回给应用程序。例如在做表联合查询时,服务器会根据开销成本来最终决定采用hashjoin,mergejoin ,还是loop join,采用哪一个索引会更高效等等。不过它的自动化优化是有限的,要想写出高效的查询SQL还是要优化自己的SQL查询语句。

    当确定好执行计划后,就会把这个执行计划保存到SQL计划缓存中,下次在有相同的执行请求时,就直接从计划缓存中取,避免重新编译执行计划。

    第三步:语句执行

    服务器对SQL语句解析完成后,服务器才会知道这条语句到底表态了什么意思,接下来才会真正的执行SQL语句。

    此时分两种情况:

  • 如果查询语句所包含的数据行已经读取到数据缓冲存储区的话,服务器会直接从数据缓冲存储区中读取数据返回给应用程序,避免了从物理文件中读取,提高查询速度。

  • 如果数据行没有在数据缓冲存储区中,则会从物理文件中读取记录返回给应用程序,同时把数据行写入数据缓冲存储区中,供下次使用。

  • 说明:SQL缓存分好几种,这里有兴趣的朋友可以去搜索一下。有时因为缓存的存在,使得我们很难马上看出优化的结果,因为第二次执行因为有缓存的存在,会特别快速,所以一般都是先消除缓存,然后比较优化前后的性能表现,这里有几个常用的方法:

    1 DBCC DROPCLEANBUFFERS

    2 从缓冲池中删除所有清除缓冲区。

    3 DBCC FREEPROCCACHE

    4 从过程缓存中删除所有元素。

    5 DBCC FREESYSTEMCACHE

    6 从所有缓存中释放所有未使用的缓存条目。

    SQL Server 2005数据库引擎会事先在后台清理未使用的缓存条目,以使内存可用于当前条目。但是,可以使用此命令从所有缓存中手动删除未使用的条目。

    这只能基本消除SQL缓存的影响,目前好像没有完全消除缓存的方案,如果大家有,请指教。

    执行顺序:

  • FROM子句返回初始结果集。

  • WHERE子句排除不满足搜索条件的行。

  • GROUP BY子句将选定的行收集到GROUP BY子句中各个唯一值的组中。

  • 选择列表中指定的聚合函数可以计算各组的汇总值。

  • 此外,HAVING子句排除不满足搜索条件的行。

  • 计算所有的表达式;

  • 使用order by对结果集进行排序。

  • 查找你要搜索的字段。

D. sql语句 怎么写入数据库

mysql_connect('localhost','root','你的mysql的密码’)
mysql_select_db('选择你的数据库')
$sql=“insert into users (name,password,intro)values('$name','$password','$intro')”;*这句还要根据自己的实际来写,这只是例如, 这句是用来创建sql语句的
mysql_query($sql);//这句是执行sql语句的。

希望能加分,因为我已经没有什么分了。

E. 程序中无sql语句,但是能从数据库中查出数据

根本的解决方法是:在数据库里面写存储过程 用C#调用
"存储过程不及C#好用,"如果有这样的感觉的话,那么就是你已经深受过程化编程毒害了.虽然SQL语言也有比较好的过程化支持了,但是效率一般都相对低下,虽然不知道楼主是出于知识产权方面的考虑(毕竟现在C#的反编译那个简单)还是安全性方面的考虑(直接传查询语句这个做法本身就不安全,这个情况更加体现在双服务器上,数据服务器和运行服务器,这方面我也不是太懂了).而在下写入存储过程的最大原因是体会集合的思想,过程化的思维方式去思考数据方面的东西很多时候都有局限性,作为一个程序员,对数据的敏锐是非常必要的,因此接受各种各样的思维也是很重要的.这个就是我写入存储过程的原因.再有一个比较实在的好处是,往后做数据库改造或者重构时,一个好的数据库设计往往令你事半功倍,因此目光应该放在数据库上面,而不是那些华而不实的框架上面.
纯手打 谢谢。

F. 怎么找数据库sql文件

从trace文件中提取sql语句包括两个步骤:
首先要找到sql语句本身,然后找到sql语句可能用到的绑定变量的值。
本文假设你已经找到了报错的trace文件。
第一步:查找sql语句
跳到"Current cursor:"那行(在"*** Cursor Dump ***"部分的开始处)。记下和当前cursor关联的数字(详情参考下文例子)。
如果当前的游标数字是0,表示当前没有sql语句。在这种情况下,最好是在trace文件前面的Call Stack Trace部分看看,这里告诉我们发生错误时正在做什么。一般情况下,oracle技术支持在处理问题的时候,会查看trace文件。
如果当前游标是个非0数值,在trace文件后面的部分查找以"Cursor n"开头的行,n表示你要找的游标号,从10.2及其以后的版本开始,查找"Cursor#n"开头的行。找到后,在下一行,你会看到"cursor name:",sql语句就在其后。
注意:
通常情况下,你通过查找"Current SQL statement for this session:"就能很快定位该sql,一般会在trace文件的前面部分。
如果sql语句没有用到绑定变量(例如. ":b1", ":b2", 等。),第二步可以不看了。
第二步:查找绑定变量的值
如果sql语句使用了绑定变量,根据游标中的sql语句,你就能定位特定的文本部分,和每个绑定变量的值关联。文本的每部分以"bind x:"开头,其中的x的范围是0 到 n-1,其中的n代表绑定变量个数。
在sql语句和绑定变量之间可能会有大量的内存mp,可以忽略这些信息。
每个绑定变量会有很多属性列表,下面是我们感兴趣的一部分列表:
a.) dty 指数据类型,常见的值为:
1 VARCHAR2 or NVARCHAR2
2 NUMBER
8 LONG
11 ROWID
12 DATE
23 RAW
24 LONG RAW
96 CHAR
112 CLOB or NCLOB
113 BLOB
114 BFILE
b.) mxl 指最大长度,即变量占用的最大字节数,dty=2 and mxl=22 表示NUMBER(22)列
c.) scl 指位数 (对NUMBER列而言)
d.) pre 指小数点位数(对NUMBER列而言)
e.) value 指绑定变量的值
将游标mp中的绑定变量的值和sql语句中绑定变量的值直接对应:
:b1 ~ bind 0
:b2 ~ bind 1
:b3 ~ bind 2
以此类推………
绑定变量可以称为:1, :2,等,或者:a1, :a2等。最关键的是,在sql语句中的排列顺序和变量的mp部分的排列要完全一致。
现在你应该能找到绑定变量(包括长度,数值长度,精度)以及对应的值。

例子:
下面我们举例说明在trace文件中如何提取sql语句。
特别注意:
如果使用字面值替代绑定变量,会导致优化器选择不同的查询路径,从而使得问题可能不会再现。
Example 1:

******************** Cursor Dump ************************
Current cursor: 2, pgadep: 1
Cursor Dump:
----------------------------------------
我们查找cursor 2:
----------------------------------------
Cursor 2 (20139ad0): CURFETCH curiob: 2013bca4
curflg: 7 curpar: 20139ab0
curusr: 0 curses 587a250c
cursor name: select text from view$ where rowid=:1
child pin: 50a5b650, child lock: 50a5a628,
parent lock: 50a5a844
xscflg: 20141466, parent handle: 4f348490, xscfl2: 400
nxt: 2.0x0000006c nxt: 1.0x000001d8
Cursor
frame allocation mp:
frm: -------- Comment -------- Size Seg Off
bhp size: 52/560
bind 0: dty=11 mxl=16(16) mal=00
scl=00 pre=00 oacflg=18 oacfl2=1 size=16
offset=0
bfp=2013e9f4 bln=16 avl=16 flg=05
value=0000138C.0046.0004
当前SQL 语句:
select text from view$ where rowid=:1
绑定变量转换成:
:1 ~ bind 0 - ROWID (dty=11), value = 0000138C.0046.0004
因此我们得到下面的原始sql语句:
select text from view$ where rowid=0000138C.0046.0004
Example 2:

******************** Cursor Dump ************************
Current cursor: 11, pgadep: 1
Cursor Dump:
----------------------------------------
查找cursor 11:
----------------------------------------
Cursor 11 (202cb9f0): CURBOUND curiob: 202f8b04
curflg: dd curpar:
0 curusr: 0 curses 30047c7c
cursor name: SELECT LOCKID FROM DBMS_LOCK_ALLOCATED WHERE NAME =
:b1 FOR UPDATE
child pin:
0, child lock: 300dc9b4, parent lock: 301730b8
xscflg: 1151421, parent handle: 3025b4dc
bind 0: dty=1 mxl=32(00) mal=00 scl=00 pre=00 oacflg=01
No bind buffers allocated
----------------------------------------
当前SQL 语句:
SELECT LOCKID FROM DBMS_LOCK_ALLOCATED WHERE NAME = :b1 FOR UPDATE
绑定变量:b1是VARCHAR2(32) 类型(dty=1, mxl=32), 但是在mp的那个时刻没有给变量赋值("No bind buffers allocated").
Example 3:

******************** Cursor Dump ************************
Current cursor: 2, pgadep: 0
Cursor Dump:
----------------------------------------
...
----------------------------------------
Cursor 2 (20140444): CURNULL curiob: 0
curflg: 44 curpar: 0 curusr: 0 curses 701dc94c
----------------------------------------
在这种情况下,当mp 的时候并没有sql被执行
Example 4:

******************** Cursor Dump ************************
Current cursor: 1, pgadep: 0
pgactx: ccf361c0
ctxcbk: 0 ctxqbc: 0 ctxrws: 0
Cursor Dump:
----------------------------------------
Cursor 1 (400d9478): CURBOUND curiob:
400e43d8
curflg: 4c curpar: 0 curusr: 0 curses d5348f80
cursor name: BEGIN myparser.convert('/tmp','workflow000_2.log',2);
END;
child pin: d14a4d70, child lock: d1589968, parent lock: d14c64a0
xscflg: 100064, parent handle: d083f1c0, xscfl2: 4040408
nxt: 1.0x000000a8
Cursor frame allocation mp:
frm: -------- Comment -------- Size Seg Off
----------------------------------------
没有用到绑定变量,所以,sql语句就是PL/SQL块:
BEGIN myparser.convert('/tmp','workflow000_2.log',2); END; 本信息来源:CAD教育网 www.cade.com

G. 我现在在学数据库,一定要先学SQL语句吗

数据库技术应该电脑技术比较核心的一种,不仅操作系统,而且数据存储都要用的。
学习数据库可以自己参与到一个项目,或者去实际操作数据库,这样提高的快些。
目前来说,桌面的小型数据库有Foxpro不错,用的最多的是SQL Server2000,大型的有Oracle等等。
推荐你可以学习SQL Server2000,比较简单。

编程是一门说难就难,说简单就简单的东西,如果要问从什么入手,我觉的还是先学[C语言],先要对如何编程有一个概念,然后学习数据库,可以学学[ASSECC]或是[SQL],这两个都是简单的数据库,在后面学[HTML]和[ASP](里面可以理解的去学习[VBscript]和[JAVAscript]两个脚本语言),有了这几门语言做基础,就可以学习难一点的东西了。学习C++的面向对象概念,当自己认为对面向对象里面的三大特性{派生类与继承;多态性;...(第3个有点忘记,好象是封装,或者是把派生和继承分开,总之3大特性.....)}掌握的能够在自己编程的时候能够理解能够灵活运用就可以学习[JAVA]了,可能你原来听说过[JAVA],[C++]是简单的面向对象,[JAVA]就好象是[C++]和[C语言]的综合,[JAVA]是基本上全部面向对象概念,但里面的编程结构:如--循环;判断则是C语言的机制。
上面学完了,就可以更深一步了,有了[JAVA]的学习,就可以学习[J2EE]了,还可以学[ASP.NET]......
可能你看到我的回复以后觉的要学这么多东西有点太BT了,我和你说的这个学习顺序完全是一个专业计算机编程学校的授课顺序,而且脱产班只要1年......说的俗点,如果你是这个方面的“虫子”,你会做到的。
最后说一句:“加油~~~~!!!”。

H. .net Web.config没有SQL语句!

webconfig文件中不放sql语句,一般是配置文件,数据库操做放在cs文件中,仔细找找

I. 没有安装sql,如何进入查看sql数据库

安装一个sqlserver服务器,找到sql数据文件(*.mdf),将文件附加到SQLSERVER中
这样就可以在查询分析器中操作了