SQL语法.docx
《SQL语法.docx》由会员分享,可在线阅读,更多相关《SQL语法.docx(17页珍藏版)》请在冰豆网上搜索。
SQL语法
1.SELECT语句
(1)语法:
用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
SELECTNameFROMPersons//从"Persons"表中选取Name列,注意输出的写法
SELECT*FROMPersons//从"Persons"表中选取所有的列。
注释1):
SQL语句对大小写不敏感。
SELECT等效于select。
注释2):
星号(*)是选取所有列的快捷方式。
例一:
2.WHERE子句:
有条件地从表中选取数据,可将WHERE子句添加到SELECT语句。
(1)语法
(2)例子
注释1)注意输出列与条件列不同。
例如:
SELECTNameFROMPersons//结果只含有Name列
SELECT*FROMPersons//结果含有所有列
SELECT*FROMPersonswhereCity=‘Beijing’//结果含有City=‘Beijing’的所有列【而非选取输出的北京列】
注释2)SQL使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
如果是数值,请不要使用引号。
例如:
注释3)
3.AND和OR运算符:
AND和OR可在WHERE子语句中把两个或多个条件结合起来。
(1)语法:
AND和OR在WHERE子语句中
(2)例子:
4.ORDERBY子句:
根据指定的列对结果集进行排序
(1)语法:
SELECTCompany,OrderNumberFROMOrdersORDERBYCompany
注释:
默认按照升序对记录进行排序,如果希望按降序进行排序,可使用DESC关键字。
(2)例子:
4.INSERTINTO语句:
用于向表格中插入新的行。
[而Delete语句是删除表格中的行]
(1)语法:
a.插入新的行(即插入完整的一行)
INSERTINTO表名称VALUES(值1,值2,....)
b.在指定列中插入数据(即插入一行,只是给这行的部分列赋值)
INSERTINTOtable_name(列1,列2,...)VALUES(值1,值2,....)
(2)例子
5.DELETE语句:
用于删除表中的行(删除符合条件某行、某些行,或全部行区别于INSERTINTO语句:
向表格中插入新的行)
(1)语法:
DELETEFROM表名称WHERE列名称=值
(2)例子:
6.Update语句:
用于修改表中的数据
(1)语法:
UPDATE表名称SET列名称=新值WHERE列名称=某值
(2)例子:
7.TOP子句:
用于规定要返回的记录的数目(即行的数目)
(1)语法:
SELECTTOP2*FROMPersons//从上面的"Persons"表中选取头两条记录
SELECTTOP50PERCENT*FROMPersons//从上面的"Persons"表中选取50%的记录。
(2)例子:
8.LIKE操作符:
用于在WHERE子句中搜索列中的指定模式。
(1)一般与通配符一起使用,LIKE作用相当于=,所以有LIKE一般无=
(2)例子
9.通配符:
SQL通配符可以替代一个或多个字符。
SQL通配符必须与LIKE运算符一起使用。
(1)一般与通配符一起使用,LIKE作用相当于=,所以有LIKE一般无=
(2)
例子:
选取City列中以Ne开头的所有列
10.函数
(1)COUNT()函数:
返回匹配指定条件的行数
A.SELECTCOUNT(*)FROMOrders//这是表中的总行数
B.SELECTCOUNT(Customer)FROMOrdersWHERECustomer='Carter'//返回表中Customer列中值为'Carter'的行数(计算Customer列中WHERECustomer='Carter'的行数)
(2)FIRST()函数:
返回指定的字段(列)中第一个记录的值
SELECTFIRST(OrderPrice)ASFirstOrderPriceFROMOrders//查找"OrderPrice"列的第一个值(如1000)
(3)LAST()函数:
返回指定的列中最后一个记录的值。
(4)MAX函数:
返回一列中的最大值。
NULL值不包括在计算中。
SELECTMAX(OrderPrice)FROMOrders//查找"OrderPrice"列的最大值
(5)MIN()函数:
MIN函数返回一列中的最小值。
NULL值不包括在计算中
(6)SUM函数返回数值列列值的总和(总额,而非行数,区别于count)
SELECTSUM(OrderPrice)ASTotalFROMOrders
(7)GROUPBY语句
GROUPBY语句用于结合合计函数(比如sum),根据一个或多个列对结果集进行分组。
即先分组,然后对分组后的每组运行合计函数
例:
//先对Customer列相同值分组,然后计算每组OrderPrice的和
(8)HAVING子句:
【类似于where作用,都是一个限制条件作用,逐渐减少符合条件的Select得出的行】
SQL中增加HAVING子句原因是,WHERE关键字无法与合计函数一起使用。
注意运行顺序:
先分组,然后对OrderPrice列的不同组计算和Sum,然后运行where,最后输出Customer,Sum()。
(9)UCASE()函数:
把字段的值转换为大写(即把列的内容转换为小写)
LCASE函数把字段的值转换为小写。
(10)MID函数用于从文本字段中提取字符
(11)LEN()函数:
返回文本字段中值的长度。
(12)ROUND函数:
用于把数值字段舍入为指定的小数位数。
(13)NOW()函数返回当前的日期和时间。
(14)FORMAT函数用于对字段的显示进行格式化