1,sql ORDER BY关键字
select * from 表名
order by asc(desc)
对结果集按照某一属性进行排序
ORDER BY 排列时,不写明ASC DESC的时候,默认是ASC。
默认是升序,但可以在后面添加DESC关键字进行降序排列
2,SQL INSERT INTO 语句(增)
insert into 表名(表的属性1,表的属性2)
velues(插入的数据1,插入的数据2);
3,SQL UPDATE 语句(改)
更新数据
语法:update 表名 set 属性名1=“”,属性名2=“” where 属性名=“”;
执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。
4,SQL DELETE 语句(删)
DELETE 语句用于删除表中的行
delete from 表名 where 属性名=“” ;
您可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:
delete * from 表名;
sql关于删除的三个语句 drop truncate delete
5,SQL SELECT TOP, LIMIT, ROWNUM 子句
并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。
下面的 SQL 语句从 "Websites" 表中选取头两条记录:
select * from websites limit 2;
在 Microsoft SQL Server 中还可以使用百分比作为参数。
下面的 SQL 语句从 websites 表中选取前面百分之 50 的记录:
select top 50 percent * from websites;
6,SQL LIKE 操作符
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
下面的 SQL 语句选取 name 以字母 "G" 开始的所有客户:
select * from 表名
where name like 'G%';
下面的 SQL 语句选取 name 以字母 "k" 结尾的所有客户:
select * from 表名
where name like '%k';
下面的 SQL 语句选取 name 包含模式 "oo" 的所有客户:
select * from 表名
where name like '%oo%';
下面的 SQL 语句选取 name 不包含模式 "oo" 的所有客户:
select * from 表名
where name not like '%oo%';
一些常规模式
'%a' //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
‘_a_’ //三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的
7,SQL 通配符
下面的 SQL 语句选取 url 以字母 "https" 开始的所有网站:
select * from 表名
where url like 'https%';
下面的 SQL 语句选取 url 包含模式 "oo" 的所有网站:
select * from 表名
where url like '%oo%';
下面的 SQL 语句选取 name 以一个任意字符开始,然后是 "oogle" 的所有客户:
select * from 表名
where name like '_oogle';
下面的 SQL 语句选取 name 以 "G" 开始,然后是一个任意字符,然后是 "o",然后是一个任意字符,然后是 "le" 的所有网站:
select * from 表名
where name like 'G_o_le';
MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。下面的 SQL 语句选取 name 以 "G"、"F" 或 "s" 开始的所有网站:
select * from 表名
where name regexp '^[GFs]';
下面的 SQL 语句选取 name 以 A 到 H 字母开头的网站:
select * from 表名
where name regexp '^[A-H]';
下面的 SQL 语句选取 name 不以 A 到 H 字母开头的网站:
select * from 表名
where name regexp '^[^A-H]'
首先说下LIKE命令都涉及到的通配符:
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或者[!charlist] 不在字符列中的任何单一字符
其中搭配以上通配符可以让LIKE命令实现多种技巧:
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、K
8,SQL IN 操作符
IN 操作符允许您在 WHERE 子句中规定多个值。
下面的 SQL 语句选取 name 为 "Google" 或 "菜鸟教程" 的所有网站:
select * from 表名
where name in ('Google','菜鸟教程');
9,SQL BETWEEN 操作符
BETWEEN 操作符用于选取介于两个值之间的数据范围内的值。
下面的 SQL 语句选取 alexa 介于 1 和 20 之间的所有网站:
select * from 表名
where alexa between 1 and 20;
如需显示不在上面实例范围内的网站,请使用 NOT BETWEEN:
select * from 表名
where alexa not between 1 and 20;
10,SQL INNER JOIN 关键字
INNER JOIN 关键字在表中存在至少一个匹配时返回行
select 列名
from 表名1
inner join 表名2
on 表名1.列名 = 表名2.列名
11,SQL LEFT JOIN 关键字
从左表(表名1)返回行,即使右表(表名2)没有匹配
select 列名
from 表名1
left join 表名2
on 表名1.列名=表名2.列名
12,SQL RIGHT JOIN 关键字
从右表(表名2)返回行,即使左表(表名2)没有匹配
select 列名
from 表名1
right join 表名2
on 表名1.列名= 表名2.列名;
13,SQL FULL OUTER JOIN 关键字
交集 两个表的数据都返回
select 列名
from 表名1
full outer join 表名2
on 表名1.列名= 表名2.列名;
14,SQL UNION 操作符
合并两个或多个select 语句的结果集
语法
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
注 只会选取不同的值 要选取所有的值要用 union all
SELECTcolumn_name(s)FROMtable1
UNION ALL
SELECTcolumn_name(s)FROMtable2;
15,SQL COUNT() 函数
下面的 SQL 语句计算 "access_log" 表中 "site_id"=3 的总访问量:
select count(count)as nums from access_log
where site_id=3;
下面的 SQL 语句计算 "access_log" 表中总记录数:
select count(*)as nums from access_log;
下面的 SQL 语句计算 "access_log" 表中不同 site_id 的记录数:
select count(distinct site_id)as nums from access_log;
16,SQL HAVING 子句
在sql中增加having字句的原因是,where关键字无法与聚合函数一起使用
having字句可以让我们筛选分组后的各种数据。
现在我们想要查找总访问量大于 200 的网站。
我们使用下面的 SQL 语句
select
网友评论