真的不知道我写了这么多不同的的学习笔记又没用。。开始SQL零基础学习笔记
百度百科:SQL(StructuredQueryLanguage)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。
一个数据库通常包含一个或多个表,表包含代有数据的记录,在SQL记录为行。
注:SQL语句大小写不敏感。
1.提取数据
很重要的一个语句:select.
假设从Administrator选取所有的列
- Select*fromAdministrator
1.1WHERE语句
只在Administrator中搜索admin
- Select*fromAdministratorwhereuser='admin'
附:
SQL语句之where运算符
Where子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:
- Select*FROMusertableWhereage>20
Where子句可包括各种条件运算符:
比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<
范围运算符(表达式值是否在指定的范围):BETWEEN…AND…
NOTBETWEEN…AND…
列表运算符(判断表达式是否为列表中的指定项):IN(项1,项2……)
NOTIN(项1,项2……)
模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOTLIKE
空值判断符(判断表达式是否为空):ISNULL、NOTISNULL
逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR
1、范围运算符例:ageBETWEEN10AND30相当于age>=10ANDage<=30
2、列表运算符例:countryIN(’Germany’,’China’)
3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。
可使用以下通配字符:
百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[]相同,但它要求所匹配对象为指定字符以外的任一个字符。
比如SELECT*FROM[user]WHEREu_nameLIKE’[张李王]三’
将找出“张三”、“李三”、“王三”(而不是“张李王三”);
如[]内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
SELECT*FROM[user]WHEREu_nameLIKE’老[1-9]’
将找出“老1”、“老2”、……、“老9”;
例如:
限制以Publishing结尾,使用LIKE’%Publishing’
限制以A开头:LIKE’[A]%’
限制以A开头外:LIKE’[^A]%’
4、空值判断符例WhereageISNULL
5、逻辑运算符:优先级为NOT、AND、OR
SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下:
1、LIKE’Mc%’将搜索以字母Mc开头的所有字符串(如McBadden)。
2、LIKE’%inger’将搜索以字母inger结尾的所有字符串(如Ringer、Stringer)。
3、LIKE’%en%’将搜索在任何位置包含字母en的所有字符串(如Bennet、Green、McBadden)。
4、LIKE’_heryl’将搜索以字母heryl结尾的所有六个字母的名称(如Cheryl、Sheryl)。
5、LIKE’[CK]ars[eo]n’将搜索下列字符串:Carsen、Karsen、Carson和Karson(如Carson)。
6、LIKE’[M-Z]inger’将搜索以字符串inger结尾、以从M到Z的任何单个字母开头的所有名称(如Ringer)。
7、LIKE’M[^c]%’将搜索以字母M开头,并且第二个字母不是c的所有名称(如MacFeather)。
2.如何选取Persons中的“Firstname”?
- SelectFirstnamefromPersons