常用SQL语法

来源:互联网 发布:nginx 开启hsts 编辑:程序博客网 时间:2024/06/05 19:54

常用SQL语法

表名 <>
列名 ()

列值对 [=]

GROUP BYORDER BY (ASC/DESC)


/dialect/ INSERT INFO <>() VALUES (值1, 值2,….) WHERE [=];
INSERT INFO TSupplier values(55555,N’高大上有限公司’,N’中国IT’,’11111’);


–清空表结构
drop table tableA;

–复制表结构
create table tableA as select * from tableB

–删除整张表 速度快 慎用!
truncate table <>
DELETE FROM <> where [=]


UPDATE <> SET [=] WHERE [=];


SELECT () FROM<> WHERE [=];
左连接
SELECT () FROM <> LEFT JOIN <> ON <>.() = <>.() WHERE [=];
/dialect/–方言
DISTINCT [SELECT DISTINCT “STR” FROM TCRIQI ;] 查询该列下的唯一值


–表 列 操作 -

–增加列
ALTER TABLE “表名” ADD ( “列名” VARCHAR2(44) NULL ) ;//(表名和列名都不用加引号)

–修改多列:
alter table emp4 modify (test varchar2(20),test2 varchar2(20));

–删除多列:
alter table emp4 drop (test,test2);

–单列中要加关键字COLUMN,然而再删除多列的时候,不能加COLUMN关键字。

–LIKE
SQL 通配符必须与 LIKE 运算符一起使用。
通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist] 或者 [!charlist] 不在字符列中的任何单一字符

–HAVING
–在 SQL 中增加 HAVING(分组后有用) 子句原因是,WHERE(分组前有用)关键字无法与合计函数一起使用。
–用例:
–现在我们希望查找客户 “Bush” 或 “Adams” 拥有超过 1500 的订单总金额。
–我们在 SQL 语句中增加了一个普通的 WHERE 子句:
SELECT Customer,SUM(OrderPrice) FROM Orders
WHERE Customer=’Bush’ OR Customer=’Adams’
GROUP BY Customer
HAVING SUM(OrderPrice)>1500
–http://www.w3school.com.cn/sql/sql_having.asp

–条件:EXISTS (存在)

1>方法executeQuery 

用于产生单个结果集(ResultSet)的语句,例如:被执行最多的SELECT 语句。
这个方法被用来执行 SELECT 语句,但也只能执行查询语句,执行后返回代表查询结果的ResultSet对象。

2>方法executeUpdate

用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。
INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。
executeUpdate 的返回值是一个整数(int),指示受影响的行数(即更新计数)。
对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

3>方法execute: 可用于执行任何SQL语句,返回一个boolean值,表明执行该SQL语句是否返回了ResultSet。

如果执行后第一个结果是ResultSet,则返回true,否则返回false。
但它执行SQL语句时比较麻烦,通常我们没有必要使用execute方法来执行SQL语句,而是使用executeQuery或executeUpdate更适合。
但如果在不清楚SQL语句的类型时则只能使用execute方法来执行该SQL语句了。

–查找表中多余的重复记录
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)

–oracle
时间加一天:to_date(‘2016-04-06’,’yyyy-mm-dd’)+1; sysdate+1;
时间加一月:add_months(sysdate, 1);
时间加一年:add_months(sysdate, 12);

–查询索引:
SELECT 索引名称=a.name
,表名=c.name
,索引字段名=d.name
,索引字段位置=d.colid
FROM sysindexes a
JOIN sysindexkeys b ON a.id=b.id AND a.indid=b.indid
JOIN sysobjects c ON b.id=c.id
JOIN syscolumns d ON b.id=d.id AND b.colid=d.colid
WHERE a.indid NOT IN(0,255)
– and c.xtype=’U’ and c.status>0 –查所有用户表
AND c.name=’message’ –查指定表
ORDER BY c.name,a.name,d.name

–copy表结构:
create table table1 as select * from table2;

–UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
union all

–调用带输出参数的存储过程:
declare
uu VARCHAR2(100);
BEGIN
HN_RCS_ERRORDATA_TO_EAS(‘2017-04-14’,uu);
dbms_output.put_line(uu);
END;

–oracle保持进程:
begin
WHILE 5>1 LOOP
dbms_output.put_line(‘ok’);
END LOOP;
end;

–oracle杀掉进程:
SELECT
sess. SID, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode
FROM
vlockedobjectlo,dbaobjectsao,vsession sess
WHERE
ao.OBJECT_id = lo.object_id AND lo.session_id = sess. SID;

ALTER SYSTEM KILL SESSION ‘113,18487’;

–Chinese_PRC_CI_AS/Chinese_PRC_CS_AS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则,CI表示不区分大小写,AS表示区分重音。

排序规则的后半部份即后缀 含义:

_BIN 指定使用向后兼容的二进制排序顺序。

_BIN2 指定使用 SQL Server 2005 中引入的码位比较语义的二进制排序顺序。

_Stroke 按笔划排序

_CI(CS) 是否区分大小写,CI不区分,CS区分(case-insensitive/case-sensitive)

_AI(AS) 是否区分重音,AI不区分,AS区分(accent-insensitive/accent-sensitive)

_KI(KS) 是否区分假名类型,KI不区分,KS区分(kanatype-insensitive/kanatype-sensitive)

_WI(WS) 是否区分全半角, WI不区分,WS区分(width-insensitive/width-sensitive)

区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。

区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项。

原创粉丝点击