目录
一、SQL
Structure Query Language结构化查询语言。 是专门对数据库操作的命令集,可分为:
£DML(Data Manipulation Language数据操作语言)
Select、Insert、Update、Delete
£DDL(Data Definition Language 数据定义语言)
Create Table、Drop Table
£DCL(Data Control Language 数据控制语言)
REVOKE 、Grant
二、常用运算符
常用的条件运算符
运算符 | 含义 | 示例 |
= | 等于 | AuthorID=5 |
> | 大于 | Price>50 |
< | 小于 | Quantity<20 |
>= | 大于等于 | Age>=50 |
<= | 小于等于 | Price<=100 |
<> | 不等于 | Birthday<>‘1970-10-10’ |
通配运算符
常与LIKE关键字配合使用,表示一个模糊的范围 。
经常用于检查约束及数据查询过滤条件
运算符 | 含义 | 示例 |
% | 任意长度的字符串 | Email Like ‘%@%.com’ |
‘_’ | 任意一个字符 | AuthorName Like ‘张_’ |
[] | 在指定范围内的一个字符 | A Like ‘A6C8[1-5]’ |
[^] | 不在指定范围内的任意一个字符 | A Like ‘A6C8[^1-6]’ |
逻辑运算符
运算符 | 含义 | 示例 |
And | 连接的两个条件表达式都为True,表达式结果才为True,否则为False | A > 90 And B >100 |
Or | 连接的两个条件表达式中有一个为True,则表达式结果就为True | A >90 Or B >100 |
Not | 否定条件 | Not (A > 90) |
三、sql的增删改查
1.使用Insert插入数据
INSERT [INTO] <表名> [列名] VALUES <值列表>
其中:“[]”代表可选的;“<>”代表必需的。
INSERT INTO Authors (AuthorName,Sex,Age,Email,TelPhone,City)
VALUES ('吴玉鹏',1,47,'wyp@sohu.com','01090876529','北京')
注意
1:值列表的个数必须与列名数目保持一致。
2:值列表中值的数据类型、精度要与对应的列类型保持一致
3:可以不指定列名,但值列表中值的顺序应该与表中字段顺序保持一致 。
4:不应为标识列字段指定值,因为它是系统控制自动增长的 。
5:值列表中的数据项,应符合对应列的检查约束要求 。
使用Insert语句向具有缺省值的列插入数据:
1:可以使用DEFAULT(缺省)关键字来代替插入的数值。
2:Insert语句中不指定具有默认值的列名和列值 。
2、使用Insert Select语句插多行数据
INSERT INTO <表2> [列名]
SELECT <列名> FROM <表1>
注意:
1、<表2>必须事先存在。如果不存在,执行时将会出现错误。
2、查询出的字段数目、数据类型、字段顺序,与插入列保持一致。
SELECT <列名> INTO <新表> FROM <原始表>
注意:<新表>不能事先存在,它是在执行该语句时系统自动创建的。
SELECT IDENTITY(数据类型, 标识种子, 标识增量) as 列名
INTO <新表> FROM <原始表>
SELECT IDENTITY(int, 1, 1) as Id, AuthorName,Age,Email,City
INTO NewAuthorsName FROM Authors
使用Union关键字插入多行数据: Union语句中不能使用DEFAULT关键字
3、Update语句修改数据
UPDATE <表名> SET <列名=值> [WHERE <更新条件>]
注意:
1、<列名=值>为必选项,用于更新表中某列数据,在SET后面可以出现多 个,需用逗号隔开。
2、Where关键字是可选的,用来限定条件,如果Update语句不限定条件,表中所有数据行都将被更新。
4、Delete语句删除数据
DELETE FROM <表名> [WHERE <更新条件>]
5、使用Truncate Table语句删除数据
Truncate Table <表名>
注意:
1、Truncate Table只删除表中的数据行,不会删除表结构及各种约束。
2、Truncate Table不能删除具有引用关系的数据表。
Truncate Table Authors 等同于Delete From Authors
6、SELECT查询语句
SELECT <列名> FROM <表名>
[WHERE <查询条件表达式>]
[ORDER BY <排序的列名>[ASC或DESC]]
- 使用“*”查找所有列
- 使用WHERE过滤部分行数据
- 使用As子句将列转别名 别名的三种方式:as 空格 =
- 使用“+”连接多个字段,合并成一列 SELECT AuthorName +' '+ City as 作者居住城市 FROM Authors
- 使用Top关键字查询表中限定行数
- 使用PERCENT按百分比取数据
- 在查询结果中使用常量列
- 使用DISTINCT关键字屏蔽重复数据
- 使用IS NULL查询空数据
- UNION联合查询
- ORDER By 排序:默认升序,DESC降序
7、模糊查询
查询时,字段中的内容并不一定与查询内容完全匹配,只要字段中含有这些内容。
LIKE进行模糊查询:WHERE <列名> [NOT] LIKE <字符表达式>
--查找表叫张什么妹的,名字有三个字,中间一个字不是数字
select * from MyStudent where FName like '张[^0-9]妹'
转义字符:[]
--查找名字中有%的学生
select * from MyStudent where FName like '%[%]%'
IN进行模糊查询:WHERE <列名> IN <[常量列表]> (<常量列表>中各常量值用逗号隔开 )
BETWEEN进行模糊查询:WHERE <列名> [NOT] BETWEEN <起始表达式> And <结束表达式>
注意:判断null值必须使用is null 或is not null