美文网首页
SQL相关总结

SQL相关总结

作者: 夏_8a64 | 来源:发表于2020-01-17 16:32 被阅读0次

    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)

                                    

    相关文章

      网友评论

          本文标题:SQL相关总结

          本文链接:https://www.haomeiwen.com/subject/tfafzctx.html