| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1976 人关注过本帖
标题:常用SQL查询命令的语法
只看楼主 加入收藏
tianlei
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-2-26
收藏
 问题点数:0 回复次数:6 
常用SQL查询命令的语法
一、用Select命令提取记录
1、取得表中所有记录
  Select命令,语句如下:
  "Select *From userTable"
2、取得表中userID字段记录
  "Select userID From userTable"
3、取得表中userID、userSex字段记录
  "Select userID, userSex From userTable"
4、取得表中userSex值为“男”的记录
  "Select From userTable Where userSex = '男'"
5、取得表中userName值中包含“张”字的记录
  "Select From userTable Where userName Like '%男%'"
6、取得表中所有记录,按CreateDate字段值降序排列
  "Select From userTable Order By CreateDate DESC"
说明:
  1)、以上命令可以组合使用,如,取得表中userName中包含“浩”字的,userID的值,并按CreateDate值的时间降序排列,那么命令如下:
  "Select userID From userTable Where userName Like '%浩%' Order By CreateDate DESC"
  2)、使用中应注意,如果字段类型为文本,则在条件判别时,应在条件字外加上单引号,此规则适用于任何一个SQL查询命令。
  3)、条件字中的“%”为通配符。
  4)、当判别条件多于一条时,应以“And”或“Or”连接。
搜索更多相关主题的帖子: SQL 语法 命令 查询 
2005-03-09 07:28
卜酷塔
Rank: 7Rank: 7Rank: 7
来 自:魅力青岛
等 级:禁止访问
威 望:39
帖 子:2569
专家分:0
注 册:2004-6-12
收藏
得分:0 
有点遗憾,怎们只有select语句呢?insert,update......????
希望楼主能够连载!

觉得为时已晚的时候,恰恰是最早的时候。

2005-03-10 09:55
tianlei
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-2-26
收藏
得分:0 

INSERT语句

INSERT INTO tbl_name [(col_name,...)]

VALUES (expression,...)

INSERT把新行插入到一个存在的表中,INSERT ... VALUES形式的语句基于明确指定的值插入行,INSERT ... SELECT形式插入从其他表选择的行,有多个值表的INSERT ... VALUES的形式在MySQL 3.22.5或以后版本中支持,col_name=expression语法在MySQL 3.22.10或以后版本中支持。

tbl_name是行应该被插入其中的表。列名表或SET子句指出语句为那一列指定值。

如果你为INSERT ... VALUES或INSERT ... SELECT不指定列表,所有列的值必须在VALUES()表或由SELECT提供。如果你不知道表中列的顺序,使用DESCRIBE tbl_name来找出。

任何没有明确地给出值的列被设置为它的缺省值。例如,如果你指定一个列表并没命名表中所有列,未命名的列被设置为它们的缺省值。缺省值赋值在7.7 CREATE TABLE句法中描述。

一个expression可以引用在一个值表先前设置的任何列。例如,你能这样:

INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2)

但不能这样:

INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15)

DELETE语句

DELETE [LOW_PRIORITY] FROM tbl_name

[WHERE where_definition]

DELETE从tbl_name表中删除满足由where_definition给出的条件的行,并且返回删除记录的个数。

如果你发出一个没有WHERE子句的DELETE,所有行都被删除。MySQL通过创建一个空表来完成,它比删除每行要快。在这种情况下,DELETE返回零作为受影响记录的数目。(MySQL不能返回实际上被删除的行数,因为进行再创建而不是打开数据文件。只要表定义文件“tbl_name.frm”是有效的,表才能这样被再创建,即使数据或索引文件破坏了)。

如果你确实想要知道在你正在删除所有行时究竟有对少记录被删除,并且愿意承受速度上的惩罚,你可以这种形式的一个ELETE语句:

DELETE FROM tbl_name WHERE 1>0

注意这比没有WHERE子句的DELETE FROM tbl_name慢的多了,因为它一次删除一行。

UPDATE语句

UPDATE [LOW_PRIORITY] tbl_name SET col_name1=expr1,col_name2=expr2,...

[WHERE where_definition]

UPDATE用新值更新现存表中行的列,SET子句指出哪个列要修改和他们应该被给定的值,WHERE子句,如果给出,指定哪个行应该被更新,否则所有行被更新。

如果你指定关键词LOW_PRIORITY,执行UPDATE被推迟到没有其他客户正在读取表时。

如果你从一个表达式的tbl_name存取列,UPDATE使用列的当前值。例如,下列语句设置age为它的当前值加1:

UPDATE persondata SET age=age+1

UPDATE赋值是从左到右计算。例如,下列语句两倍age列,然后加1:

UPDATE persondata SET age=age*2, age=age+1


叹年光过去 功名未立 书生老去 机会方来
2005-03-11 11:04
tianlei
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-2-26
收藏
得分:0 
我现在只是刚接触 sql    所以只知道select语句        你问的问题我只能在网上找一些    回答你了

叹年光过去 功名未立 书生老去 机会方来
2005-03-11 11:21
卜酷塔
Rank: 7Rank: 7Rank: 7
来 自:魅力青岛
等 级:禁止访问
威 望:39
帖 子:2569
专家分:0
注 册:2004-6-12
收藏
得分:0 
呵呵!我觉得如果你的第一张帖子能够写的清楚一点的话我就会给你加一个精华贴,但是没有,不过好歹第二个帖子不错,希望你继续努力昂!

觉得为时已晚的时候,恰恰是最早的时候。

2005-03-11 17:58
2352791
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-3-15
收藏
得分:0 
顶!
2005-03-15 14:45
tianlei
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-2-26
收藏
得分:0 
  真可惜   

叹年光过去 功名未立 书生老去 机会方来
2005-04-10 22:42
快速回复:常用SQL查询命令的语法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015855 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved