SQL基本语句以及示例

时间:2022-08-28 15:40:00

基本语句:

/*dorp colunm*/

语法:ALTER TABLE 表名   DROP COLUMN 要删除的字段 验证财务转换的正确性,查询以下两个表是否有数据

/*表连接inner jion*/

语法:left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录,右表中没有对应的列的话就显示为空 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录,左表中没有对应的列的话就显示为空 inner join(等值连接) 只返回两个表中联结字段相等的行 select 要展示的列 from A inner join B on A.aID = B.bID

/*select*/

语法:SELECT 栏位名 FROM 表格名  将资料从数据库中的表格内选出

/*DISTINCT*/

语法:SELECT DISTINCT 栏位名 FROM 表格名 查询表格/栏位内有哪些不同的值,而每个值出现的次数并不重要

/*where*/

语法: SELECT 栏位名 FROM 表格名 WHERE 条件选择性地抓取资料where 备注:SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

/*AND|OR*/

语法:SELECT 栏位名 FROM 表格名 WHERE 简单条件 AND|OR 简单条件复杂条件是由二或多个简单条件透过AND 或是 OR 的连接而成and or

/*in*/

语法: SELECT 栏位名 FROM 表格名 WHERE 栏位名 IN ('值一', '值二', ...)依照一或数个不连续 (discrete) 的值的限制之内抓出资料库中的值。

/*BETWEEN*/

语法:SELECT 栏位名 FROM 表格名 WHERE 栏位名 ( NOT)BETWEEN '值一' AND '值二' 可以运用一个范围 (range) 内抓出资料库中的值

/*LIKE*/

语法:SELECT 栏位名 FROM 表格名 WHERE 栏位名 LIKE {'模式'} 能让我们依据一个模式(pattern) 来找出我们要的资料 % 替代一个或多个字符 _ 仅替代一个字符 [charlist] 字符列中的任何单一字符 [^字符]或者[!字符] 不在字符列中的任何单一字符

/*ORDER BY*/

语法: SELECT 栏位名1,栏位二 FROM 表格名 WHERE 条件 ORDER BY 栏位一 ASC/ DESC, 栏位二 ASC, DESC 对抓出的资料排列。 『备注:ASC从小到大;DESC从大到小』

/*函数*/

语法: SELECT 函数名(栏位名) FROM 表格名对数字做一些运算

『备注:函数名:AVG (平均);COUNT (计数);MAX (最大值);MIN (最小值);SUM (总合);UCASE (函数把字段的值转换为大写);LCASE (函数把字段的值转换为小写)。SELECT MID(column_name,start[,length]) FROM table_name提取栏位中的某一些值』UCASE() 语法: SELECT UCASE(column_name) FROM table_name     函数UCASE 函数把字段的值转换为大写。

/*GROUP BY*/

语法:SELECT "栏位1", SUM("栏位2") FROM "表格名"GROUP BY "栏位1" 根据栏位1来分类

/*HAVING*/

语法:SELECT "栏位1", SUM("栏位2")FROM "表格名"GROUP BY "栏位1" HAVING (函数条件)对函数的产生的值来设定条件,此处为SUM("栏位2),即通过GROUP BY "栏位1"将栏位一相同的和起来,SUM("栏位2")的值为合起来的值,HAVING (函数条件)筛选计算得到的值

/* 别名*/

语法:SELECT "表格别名"."栏位1" "栏位别名"FROM "表格名" "表格别名"

/*TRIM*/

语法:TRIM([[位置] [要移除的字符串] FROM ] 字符串)[位置] 的可能值为 LEADING (起头), TRAILING (结尾), or BOTH (起头及结尾)。 这个函数将把 [要移除的字符串] 从字符串的起 头、结尾,或是起头及结尾移除。如果我们没有列出 [要移除的字符串] 是什么的话,那空 白就会被移除。 LTRIM(字符串) 将所有字符串起头的空白移除。 RTRIM(字符串) 将所有字符串结尾的空白移除。TRIM 函数是用来移除掉一个字符串中的字头或字尾。最常见的用途是移除字首 或字尾的空白。 备注:这个函数在不同的数据库中有不同的名称; MySQL: TRIM(), RTRIM(), LTRIM() Oracle: RTRIM(), LTRIM() SQL Server: RTRIM(), LTRIM()

/*CONCAT*/

语法: CONCAT(字符串1, 字符串2, 字符串3, ...) 将字符串1、字符串2、字符串3,等字符串连 在一起。请注意,Oracle 的CONCAT()只允许两个参数;换言之,一次只能将两个字符串串 连起来。不过,在Oracle 中,我们可以用 || 来一次串连多个字符串CONCATENATE:将由不同栏位获得的资料串连在一起。 备注:每一种数据库都有提供方法来达到这个目的:MySQL: CONCAT() Oracle: CONCAT(), || SQL Server: +

/*SUBSTR*/

语法: MySQL: SUBSTR(), SUBSTRING() Oracle: SUBSTR() SQL Server: SUBSTRING()substring 函数是用来抓出一个栏位资料中的其中一部分 最常用到的方式如下 (在这里我们用SUBSTR()为例): SUBSTR(str,pos): 由<str>中,选出所有从第<pos>位置开始的字符。请注意,这个语法不适 用于SQL Server 上。 SUBSTR(str,pos,len): 由<str>中的第<pos>位置开始,选出接下去的<len>个字符

/*建表CREATE*/

语法:CREATE TABLE "表格名"("栏位 1" "栏位 1 资料种类","栏位 2" "栏位 2 资料种类",... ) 备注:NOT NULL;UNIQUE(唯一):栏位名 UNIQUE:;CHECK(条件)(栏位中的所有资料均符合条件要求):CHECK(栏位名><=某值); 主键 (Primary Key):栏位名 Primary Key ;外来键 (Foreign Key)与references合用•NOT NULL ;DEFAULT :默认值

/*新建视图*/

语法: CREATE VIEW "VIEW_NAME" AS "SQL 语句"

/*新建索引索引 (Index)*/

语法:CREATE INDEX "INDEX_NAME" ON "TABLE_NAME" (COLUMN_NAME)新建索引索引 (Index) 可以帮助我们从表格中快速地找到需要的资料

/*ALTER*/

语法:ALTER TABLE "table_name"[改变方式]改变表格结构,[改变方式] :加一个栏位: ADD "栏位 1" "栏位 1 资料种类";删去一个栏位: DROP "栏位 1";改变栏位名称: CHANGE "原本栏位名" "新栏位名" "新栏位名资料种类";改变栏位的资料种类: MODIFY "栏位 1" "新资料种类";

/* 删除表格*/

语法:DROP TABLE "表格名"

/*清除表格内容*/

语法: TRUNCATE TABLE "表格名"

/*给表格输入资料*/

语法: INSERT INTO "表格名" ("栏位1", "栏位2", ...)VALUES ("值1", "值2", ...)一次一笔 INSERT INTO "表格1" ("栏位1", "栏位2", ...)SELECT "栏位3", "栏位4", ...FROM "表格2"数据源来自另一个表格

/*修改表中资料*/

语法: UPDATE "表格"SET "栏位1" = [值1], "栏位2" = [值2]WHERE {条件} /*Update 语句用于修改表中的数据*/ UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

/*直接由数据库中去除一些资料。*/

语法:DELETE FROM "表格名" WHERE {条件}

/*UNION*/

语法: [SQL 语句 1]UNION[SQL 语句 2]查询出两个表格之中有相同栏位名的内容并且内容不可以重复

/*UNION ALL*/

语法: [SQL 语句 1] UNION ALL[SQL 语句 2]查询出两个表格之中有相同栏位名的内容可以重复

/*INTERSECT*/

语法:[SQL 语句 1]INTERSECT[SQL 语句 2]UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选 出),而 INTERSECT 则比较像 AND (这个值要存在于第一句和第二句才会被选出)。 UNION 是联集,而 INTERSECT 是交集 MINUSSQL [SQL 语句 1]MINUSSQL 语句 2]先找出第一个 SQL 语句所产生的结果,然后 看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而 不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃,即为同时又或者同时没有,但是不同的值只会列一次

/*比较运算素*/

语法: SELECT "栏位1"FROM "表格"WHERE "栏位2" [比较运算素](SELECT "栏位1"FROM "表格"WHERE [条件]) [比较运算素] 可以是相等的运算素,例如 =, >, <, >=, <=. 这也可以是一个对文字的运算素, 例如 "LIKE"。

/*EXISTS*/

语法: SELECT "栏位1"FROM "表格1"WHERE EXISTS(SELECT *FROM "表格2"WHERE [条件])EXISTS 是用来测试内查询有没有产生任何结果。如果有的话,系统就会执行外 查询中的 SQL。若是没有的话,那整个 SQL 语句就不会产生任何结果。

/*CASE*/

语法:SELECT CASE ("栏位名") WHEN "条件1" THEN "结果1" WHEN "条件2" THEN "结果2" ... [ELSE "结果N"] END FROM "表格名" "条件" 可以是一个数值或是公式。 ELSE 子句则并不是必须的。

/*COALESCE*/

语法: SELECT COALESCE(NULL,NULL,3,4,5) FROM dual返回表达式中第一个非空表达式 其返回结果为:3

/*TOP*/ 子句:

语法:TOP 子句用于规定要返回的记录的数目。对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。 SELECT TOP 数字|百分比 column_name(s)FROM table_name SQL Server SELECT column_name(s) FROM table_name LIMIT 数字  MySQL SELECT column_name(s)  FROM table_name  WHERE ROWNUM <= 数字  Oracle

/*select into from*/

语法:SELECT 列名  INTO 新表名 [IN 数据库名] FROM 旧表名  把希望的列插入新表

/*CREATE DATABASE*/

语法:CREATE DATABASE 数据库名  用于创建数据库。

/*substr*/

语法: substr('字符串', 起始位置, 长度)  取得字符串中指定起始位置和长度的字符串    /*NULLIF*/ NULLIF(value1, value2) 当且仅当value1和value2相等时,NULLIF才返回NULL。否则它返回value1。

/*GREATEST/ LEAST*/

语法: GREATEST(value1, value2,value3......valuen)  LEAST(value1, value2,value3......valuen))GREATEST和LEAST函数从一个任意的数字表达式列表里选取最大或者最小的数值。列表中的NULL数值将被忽略。  只有所有表达式的结果都是NULL的时候,结果才会是NULL。

   /*NVL*/

语法:NVL( string1, replace_with)。它的功能是如果string1为NULL,则NVL函数返回replace_with的值,  否则返回string1的值,如果两个参数都为NULL ,则返回NULL

扩展用户的表空间:

语法: alter user  用户名 unlimited on 表空间名

给用户赋予权限

语法: grant all privileges to 用户名 新建表空间 create tablespace 表空间名 datafile '服务器上的路径表空间名' size 大小;

示例:

/*建表*/ CREATE TABLE STUDENT ( NAME CHAR(10), SALES CHAR(10) CHECK(SALES>0) ) CREATE TABLE GEOGRAPHY ( REGION_NAME CHAR(10), STORE_NAME  CHAR(10) )

CREATE TABLE STORE_INFORMATION ( STORE_NAME  CHAR(10), SALES CHAR(10), shijian char(20) )

ALTER TABLE GEOGRAPHY MODIFY STORE_NAME  CHAR(20)

ALTER TABLE STUDENT ADD  SEX   CHAR(20) ALTER TABLE STUDENT CHANGE  SEX SEXY   CHAR(10)

/*ALTER TABLE STUDENT DROP SEX   */ CREATE VIEW V_GEOGRAPHY AS SELECT STORE_NAME FROM GEOGRAPHY

CREATE INDEX IDX_STUDENT_SALES ON STUDENT (SALES)

/*UPDATE  STUDENT SEI  SALES = 100 WHERE NAME = 'Sophia'*/

/*插数据*/

INSERT INTO STUDENT (NAME,SALES)  VALUES('john','10');

INSERT INTO STUDENT (NAME,SALES)  VALUES('Jennifer','15');

INSERT INTO STUDENT (NAME,SALES)  VALUES('Stella','20');

INSERT INTO STUDENT (NAME,SALES)  VALUES('Sophia','40');

INSERT INTO STUDENT (NAME,SALES)  VALUES('Greg','50');

INSERT INTO STUDENT (NAME,SALES)  VALUES('Jeff','20');

/*删除数据*/

DELETE FROM STUDENT WHERE NAME = 'john' INSERT INTO STORE_INFORMATION (store_NAME,SALES,shijian) VALUES('Los Angeles','$1500','Jan-05-1999');

INSERT INTO STORE_INFORMATION (store_NAME,SALES,shijian) VALUES('San Diego','$250','Jan-07-1999');

INSERT INTO STORE_INFORMATION (store_NAME,SALES,shijian) VALUES('Los Angeles','$300','Jan-08-1999');

INSERT INTO STORE_INFORMATION (store_NAME,SALES,shijian) VALUES('Boston','$700','Jan-08-1999');

INSERT INTO GEOGRAPHY (REGION_NAME,STORE_NAME)  VALUES('East','Boston');

INSERT INTO GEOGRAPHY (REGION_NAME,STORE_NAME)  VALUES('East','New York');

INSERT INTO GEOGRAPHY (REGION_NAME,STORE_NAME)  VALUES('West','Los Angeles');

INSERT INTO GEOGRAPHY (REGION_NAME,STORE_NAME)  VALUES('West','San Diego');

/*操作语句*/

SELECT store_NAME FROM STORE_INFORMATION

SELECT DISTINCT store_NAME FROM STORE_INFORMATION

SELECT a1.store_name, (a1.sales) a2  FROM STORE_INFORMATION A1 WHERE A1.SALES > 1000

SELECT  A1.STORE_NAME ,SUM(A1.SALES) FROM STORE_INFORMATION a1 WHERE A1.SALES > 1000 OR (A1.SALES > 250 AND A1.SALES< 725) GROUP BY A1.STORE_NAME

SELECT a1.store_name, a1.sales  FROM STORE_INFORMATION A1 WHERE A1.STORE_NAME IN ('Los Angeles','San Diego')

SELECT a1.store_name, a1.sales  ,A1.SHIJIAN  FROM STORE_INFORMATION A1 WHERE A1.SHIJIAN BETWEEN  'Jan-07-1999' AND 'Jan-08-1999'

SELECT * FROM STORE_INFORMATION A1 WHERE A1.STORE_NAME LIKE '%os%'

/*SELECT * FROM STORE_INFORMATION  ORDER BY SALES DESC*/

SELECT * FROM STUDENT  ORDER BY SALES  DESC ,NAME DESC SELECT SUM(A1.SALES) ZONGHE  FROM STORE_INFORMATION A1

SELECT COUNT(A1.STORE_NAME) JISHU  FROM STORE_INFORMATION A1 WHERE A1.STORE_NAME IS  NULL/IS NOT NULL SELECT COUNT(DISTINCT A1.STORE_NAME) JISHU  FROM STORE_INFORMATION A1

SELECT SUM(A1.SALES) ,A1.STORE_NAME  FROM STORE_INFORMATION A1 GROUP BY A1.STORE_NAME SELECT A1.STORE_NAME , SUM(A1.SALES)  FROM STORE_INFORMATION A1   GROUP BY STORE_NAME  HAVING SUM(A1.SALES) > 1400

SELECT A2.REGION_NAME ,SUM(A1.SALES) FROM STORE_INFORMATION A1 ,GEOGRAPHY A2  WHERE A1.STORE_NAME = A2.STORE_NAME   GROUP BY A2.REGION_NAME

SELECT A2.STORE_NAME,SUM(A1.SALES) FROM STORE_INFORMATION A1 ,GEOGRAPHY A2  WHERE A2.STORE_NAME = A1.STORE_NAME(+)   GROUP BY A2.STORE_NAME CREATE VIEW V_ZONGJI2 AS

SELECT A2.STORE_NAME,SUM(A1.SALES)a FROM STORE_INFORMATION A1 ,GEOGRAPHY A2  WHERE A2.STORE_NAME = A1.STORE_NAME(+)   GROUP BY A2.STORE_NAME SELECT B1.REGION_NAME ||''||B1.STORE_NAME FROM GEOGRAPHY B1 WHERE B1.STORE_NAME = 'Boston' select * from V_ZONGJI2 drop view V_ZONGJI2

SELECT a1.name,a1.sales,sum(a2.sales) FROM STUDENT a1, STUDENT a2 WHERE a1.sales< a2.sales OR (A1.NAME = A2.NAME AND A1.SALES = A2.SALES) GROUP BY A1.NAME,A1.SALES ORDER BY A1.SALES DESC,A1.NAME DESC select sum(a1.sales) from STORE_INFORMATION A1 inner join GEOGRAPHY A2 on  a2.REGION_NAME = 'West' and a1.store_name = a2.store_name

SELECT NAME ,SALES , RANK1  FROM (SELECT a1.name,a1.sales,COUNT(a1.sales)RANK1  FROM STUDENT a1, STUDENT a2 WHERE a1.sales< a2.sales OR (A1.NAME = A2.NAME AND A1.SALES = A2.SALES) GROUP BY A1.NAME,A1.SALES ORDER BY A1.SALES DESC,A1.NAME DESC)A3 WHERE RANK1 =( SELECT CEIL(COUNT(SALES)/2) FROM STUDENT)

SQL基本语句以及示例的更多相关文章

  1. SQL查询语句 常用示例

    SQL语言的应用 1.     找出姓李的读者姓名和所在单位. 2.     列出图书库中所有藏书的书名及出版单位. 3.     查找高等教育出版社的 所有图书及单价,结果按单价降序排序. 4.   ...

  2. sql查询语句示例

    今天没事又专门学习了一下sql查询语句,个人感觉太重要了,于是就找了网上的一个示例自己练了起来,感觉学到了很多,下面跟大家分享一下sql查询语句的示例操作. 首先,我建了5张表,分别如下: (a)学生 ...

  3. 在EF4&period;1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例

    在EF4.1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例 (2012-03-13 10:12:48) 转载▼   public ActionResu ...

  4. C&num;与数据库访问技术总结(六)之Command对象创建SQl语句代码示例

    Command对象创建SQl语句代码示例 说明:前面介绍了 Command 对象的方法和一些属性,回顾一下 Command对象主要用来执行SQL语句.利用Command对象,可以查询数据和修改数据. ...

  5. &lbrack;转&rsqb;MySQL 最基本的SQL语法&sol;语句

    MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下.   DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete ...

  6. 15个初学者必看的基础SQL查询语句

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...

  7. &lpar;转&rpar;经典SQL查询语句大全

    (转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...

  8. 经典SQL查询语句大全

    一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...

  9. 最基本的SQL语法&sol;语句

    DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOK ...

随机推荐

  1. Android开发笔记之《知识漏点纪录与学习》

    1. NDK的异常捕获方法 2. Andorid性能优化:http://www.cnblogs.com/yezhennan/p/5442557.html 3. 插件化与组件化:http://blog. ...

  2. 可在广域网部署运行的QQ高仿版 -- GG叽叽V1&period;8(源码)

    距离的GG 1.0发布已经三周了,这三周内,我利用业余时间为GG增加了视频聊天的功能.个人觉得进展有些缓慢,主要是因为大多数时间都花在了UI上.由于本人不会PS,所以图片素材都是从网上一个一个搜下来的 ...

  3. 泛函编程(37)-泛函Stream IO:通用的IO处理过程-Free Process

    在上两篇讨论中我们介绍了IO Process:Process[I,O],它的工作原理.函数组合等.很容易想象,一个完整的IO程序是由 数据源+处理过程+数据终点: Source->Process ...

  4. NumPy 学习(1): ndarrays

    Numpy 是Numerical Python的简写,用来进行高性能的科学计算以及数据分析的基础包.它是一些高级工具(pandas)的基础.它主要提供以下几个功能: (1). ndarray:计算快, ...

  5. 表单验证插件jquery&period;validate的使用方法演示

    jQueryValidate表单验证效果 jquery.validate验证错误信息的样式控制 <!--validate验证插件的基础样式--> input.error{border: 1 ...

  6. C&plus;&plus;实现串口的自动识别

    1.首先需要遍历注册表得到所有可用的串口 将得到的每一个串口保存到向量vector中,代码如下: // 得到所有的串口号 vector<string> cnComm::getComPort ...

  7. 当我们用自定义的类对象作为key时,我们必须在程序中覆盖HashCode&lpar;&rpar;和equals&lpar;&rpar;。

    Key值既然可以作为对象,那么也可以用一个自定义的类.比如: m.put(new sutdent(“Liucy”,30),”boss”) 如果没有语句来判定Student类对象是否相同,则会全部打印出 ...

  8. (27)Cocos2d-x 3&period;0 Json用法

    Cocos2d-x 3.0 加入了rapidjson库用于json解析.位于external/json下. rapidjson 项目地址:http://code.google.com/p/rapidj ...

  9. 20155320 2016-2017-2《Java程序设计》第1周学习总结

    20155320 2016-2017-2<Java程序设计>第1周学习总结 教材学习内容总结 本周学习内容 浏览课本,并就每一章提出一个问题. 认真学习第一.第二章的内容. 1至18章每章 ...

  10. &lbrack;转&rsqb;Shell脚本中获取SELECT结果值的方法

    http://blog.itpub.net/13885898/viewspace-1670297/ 有时候我们可能会需要在Shell脚本中执行SELECT语句,并将结果赋值给一个变量,对于这样的情形, ...