一些 SQL 数据库 基础查询语句及语法
有不足或不对的地方,请指出,大家共同探讨吧.常规查询
"SELECT * FROM 高二期中考试成绩表;";查询 高二期中考试成绩表所有列所有行的(全部)数据
"SELECT姓名,分数 FROM 高二期中考试成绩表;";查询所有学生的姓名和他们的相应的考试分数
复合(高级)查询
"SELECT 班级, 姓名 FROM 高二期中考试成绩表 where 成绩 = '及格';";查询成绩及格的学生,显示其班级和姓名
"SELECT 班级, 姓名 FROM 高二期中考试成绩表 where 成绩 = '不及格' and 分数 <= 30;" ;查询不及格且不高于30分的学生, 显示其班级和姓名
"SELECT 班级, 姓名 FROM 高二期中考试成绩表 where 成绩 = '优良' or 分数 >= 80;" ;查询成绩优良,或者是不少于79分的学生...
"SELECT 班级, 姓名 FROM 高二期中考试成绩表 where 分数 between 60 and 100;" ;查找分数在60和100之间的学生....
"SELECT * FROM 高二期中考试成绩表 WHERE 姓名 LIKE '张%';"
;查询所有姓"张"的学生的所有考试情况, % 是通配符,代表一个或多个任意字符, _代表一个任意字符
"SELECT 姓名 FROM 高二期中考试成绩表 WHERE 姓名 LIKE '[张赵李]%';"
;查询所有姓"张"和姓"赵",还有姓"李"的学生... [张赵李]和 [^张赵李] 这两组字符组合集,意义相反
"SELECT COUNT(姓名) FROM 高二期中考试成绩表;" ;统计参加考试的学生总人数
"SELECT DISTINCT 成绩 FROM 高二期中考试成绩表;" ;查询成绩分为几等,显示各等成绩的名称(不及格,及格,优良...各值只显示一次)
"SELECT COUNT(DISTINCT成绩) FROM 高二期中考试成绩表;" ;查询成绩分为几等, 返回确切的数字
"SELECT TOP 30 * FROM Persons ORDER BY 分数 DESC;"
;查询考试分数是前30名的数据, (ORDER BY 分数 DESC ;分数以降序排列,所有列的数据默认为升序)
查询并获取数据的简约示例(抱歉,无实质数据库文件,所以无正确输出结果,只能作思路参考):#include<sqlite.au3>
Local $aRow, $hQuery
_SQLite_Startup()
If @error Then Exit -1
_SQLite_Open('高二期中考试成绩表.db')
If @error Then Exit -2
_SQLite_Query(-1, '"SELECT TOP 30 * FROM Persons ORDER BY 分数 DESC;"') ;开始相关查询
While _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK ; = $SQLITE_OK 即等于查到了数据
;一次获取一行数据, 注意 $aRow 是个数组, 查了多少列的数据,就有多少个元素(多少维).
;假设要把查询结果显示在ListView中时,可以像下面编写代码:
Local $Item = ''
For $i = 0 To UBound($aRow) - 1
$Item &= $aRow[$i] & '|'
Next
ConsoleWrite($Item & @CRLF)
;GUICtrlCreateListViewItem(StringTrimRight($Item, 1), $ListView)
WEnd 用autoit来写sql 感觉没什么意义啊。
而且你还需要登陆了才能输入。 本帖最后由 heroxianf 于 2016-10-30 22:51 编辑
回复 1# Alam
没能成功,现在录入是学会了,查询和读取不会,请指点一二。
#include <MsgBoxConstants.au3>
#include <SQLite.au3>
;~ #include <SQLite.dll.au3>
#AutoIt3Wrapper_UseX64=n
Local $aRow, $hDb, $hQuery
Local $dbFile = @ScriptDir & '\MY1.DB'
_SQLite_Startup()
If @error Then Exit -1
$hDb = _SQLite_Open($dbFile)
If @error Then Exit -2
_SQLite_Query(-1, "SELECT * FROM settings WHERE key 2;", $hQuery) ;开始相关查询
While _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK ; = $SQLITE_OK 即等于查到了数据
;一次获取一行数据, 注意 $aRow 是个数组, 查了多少列的数据,就有多少个元素(多少维).
;假设要把查询结果显示在ListView中时,可以像下面编写代码:
Local $Item = ''
For $i = 0 To UBound($aRow) - 1
$Item &= $aRow[$i] & '|'
Next
ConsoleWrite($Item & @CRLF)
;GUICtrlCreateListViewItem(StringTrimRight($Item, 1), $ListView)
WEnd
数据是这样储存的。
改成这样可以查出数据了。
_SQLite_Query(-1, "SELECT * FROM settings WHERE key = 2;", $hQuery) ;开始相关查询 回复 4# heroxianf
Where 欄位='某個值' 這是 SQL語法問題你寫成Where欄位值
當然過不了.... 回复 3# heroxianf
查询语句应该根据需要来编写.
首先我们要明白查询的目的, 比如(根据3楼表的数据):
查询整个表的数据时, "SELECT * FROM settings"
只输出 key 列时, "SELECT key FROM settings"
只输出前5条记录时, "SELECT * FROM settings where rowid < 6"
"SELECT * FROM settings WHERE key = 2;"
这是输出 key = 2 的那些行, 如果有多行key = 2 ) 回复 6# Alam
太谢谢了,请问哪里可以学习这些数据库的语句? 回复 7# heroxianf http://www.w3school.com.cn/sql/sql_syntax.asp SELECT * FROMget到了
页:
[1]