SQL相关总结

DDL(数据定义语言)语句:

                ### create database  -- 创建新数据库

                ### alter database -- 修改数据库

                ### create table -- 创建新表

                ### alter table -- 变更数据库表

                ### create index -- 创建索引

                ### drop index -- 删除索引

DML(数据操作语言)部分

               ### select - update - delete - insert into

               注意:SQL对大小写不敏感!

SQL特殊用法:

             例1:从Persons表中选取居住的城市已‘A’或‘L’或'N'开头的人

                        select  * from Persons Where city Like '[ALN]'

            例2: Inner join,在表中存在至少一个匹配时,inner join关键字返回行。

                    注意:Inner join 与 join是相同的。

            例3:left join,关键字会从左表那里返回所有的行,即使在右表中没有匹配的行。同理right join.

            例4:full join,结合的左,右外连接的结果。连接表将包含的所有记录来自两个表,并使用null作为两侧确实匹配结果

                  ELECT table1.column1,table2.column2...FROM table1 FULL JOIN table2 ON table1.common_field=table2.common_field; 

                如果你的数据不支持Full join,如mysql不支持 full join ,那么可以使用union all子句。 

                SQL>select id,name,amount,date from customers left join orders on customers.id = orders.customer_id 

                        union all

                        select id,name,amount,date from customers left join orders on customers.id = orders.customer_id 

            例5、Union,操作符用于合并两个或多个select语句的结果集,请注意,union内部的select语句必须拥有相同数量的列,列

                    也必须拥有相似的数据类型。同时,每条select语句中的列的顺序必须相同。

                    注释:默认地,union操作符选取不同的值,如果允许重复的值,请使用Union all,另外,Union结果集中的列名总是等于

                    union 中第一个select 语句中的列名。

            例6、Select into语句从一个表中选取数据,然后把数据插入另一个表中

                    select * into new_table_name [ IN externaldatabase] from old_tablename

                    select column_name(s) into new_table_name [IN externaldatabase] from old_tablename

            例7、Default,约束用于向列中插入默认值

                    如果没有规定其他的值,那么会将默认值添加到所有的新记录

                    create table persons

                    (

                        Id_P int NOT NULL,

                        LastName varchar(255) NOT NULL,

                        FirstName varchar(255),

                        Address varchar(255),

                        City varchar(255) Default 'Sandnes'

                    )    

            SQL Nulls

                    查询的时候,如数据表中列带有Null值的记录,必须使用 IS NULL操作符。

                    不带有Null值的记录,必须使用 IS NOT NULL操作符

            SQL ISNULL()

                    Oracle使用NVL()函数将表中的Null值转化为0

            SQL functions

            函数的基本类型是:Aggregate函数:Aggregate函数的操作面向一系列的值,并返回一个单一的值

                                            Scalar函数:Scalar函数的操作面向某个单一的值,并返回基于输入值的一个单一的值。

                 1、 SQL avg(),AVG函数返回数值类的平均值,Null值不包括在计算中

                         Select avg(column_name) from table_name

                   2、Count(column_name)函数返回指定指定列的值的数目(Null不计入)

                        1、Select Count(column_name)  from table_name    (f返回指定列的数目,null不计入)

                        2、Select Count(*) from table_name(返回表中的记录数)

                        3、Select Count(Distinct column_name) from table_name(函数返回指定列的不同值的数目)

                   3、first() 函数返回指定的字段中第一个记录的值,提示:可使用ORDER BY语句对记录进行排序

                        Select first(column_name) from table_name

                    4、last() 函数返回指定的字段中最后一个记录的值,可使用order by语句对记录进行排序

                        Select last(column_name)  from table_name

                    5、max函数返回一列中的最大值。null值不包括在计算中

                        Select max(column_name) from table_name

                    6、min 函数返回一列中的最小值。null值不包括在计算中

                        Select min(column_name) from table_name

                    7、sum()  函数返回数值列的总数(总额)

                        Select SUM(column_name) from table_name

                    8、group by 合计函数(比如SUM)常常需要添加group by 语句

                        group by 语句用于结合合计函数,根据一个或多个列对结果绩进行分组

                    9、Having 在SQL中增加Having子句原因是,Where关键字无法与合计函数一起使用

                        Select column_name,aggregate_function(column_name) From table_name where column_name operator value

                        group by column_name Having aggregate_function(column_name) operator value    

                        Select customer,SUM(OrderPrice) From Orders group by Customer Having SUM(OrderPrice) < 2000

                    10、ucase () 函数把字段的值转换为大写

                        Select Ucase(colummn_name) from table_name

                    11、lcase()函数把字段的值转换为小写

                            Select LCASE(column_name) From table_name

                    12、mid() 函数用于从文本字段中提取字符(MySQL,Sql Server不可用)

                            Select MID(column_name,start[,length]) From table_name

                            column_name 必须。要提取字符的字段

                            start 必须。规定开始位置(起始值是1)

                            length可选。要返回的字符数。如果省略,则Mid()函数返回剩余文本。

                            Select MID(city,1,3)  as SmallCity From Persons

                    13、len() 函数返回文本字段中值的长度(mysql→Length()、Sql Server →len())

                            Select LEN(column_name) From table_name 

                      14、round() 函数用于把数值字段舍如为指定的小数位数

                             Select  Round(column_name,decimals) From table_name 参数 描述

                            -column_name 必须。要舍入的字段

                            -decimals 必须。规定要返回的小数位数

                        15、now() 函数返回当前的日期和时间(mysql→now(),Sql server→getdate())

                                Select now() from table_name 

                                Select getdate() from table_name

                        16、format() 函数用于对字段的显示进行格式化

                                Select  Format(column_name,format) From table_name

                                column_name 必须,要格式化的字段

                                format,必须,规定格式。

                                SELECT FORMAT(getdate(),'yyyy-MM-dd HH:mm:ss') From table_name(→Sql Server)

                                SELECT DATE_FORMAT(Now(),'%Y-%m-%d %H:%i:%S') FROM table_name(→Mysql)

                                

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,438评论 0 13
  • 关系型数据库和SQL SQL语言的三个部分DML:Data Manipulation Language,数据操纵语...
    Awey阅读 1,935评论 0 13
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,062评论 0 0
  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,220评论 0 7
  • 我想划破厚重的茧,跨越多层围栏的河床,心中满是对未来的张望。 各种挫折阻挡我的前进步伐,可我并不会因此放弃飞翔。 ...
    浅晗墨阅读 129评论 1 4