sql重点语法

2018-08-17  本文已影响0人  writing_琪

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 

上一篇 下一篇

猜你喜欢

热点阅读