sql数据黑马程序员——SQL入门

最近研究sql数据,稍微总结一下,以后继续补充:

    ———————- ASP.Net+Android+IO开辟S、.Net培训、等待与您交流! ———————-      

    

今天看了SQL入门视频,简单的记录下。

 

  • Catalog、Table、Column

    Catalog(分类)又叫数据库DataBase、表空间TableSpace。 

    将不同类的数据放到不同的数据库中,存储在不同的表中,表中每一列(Column)代表数据的一项属性。

    分类的利益:1.便于对各个Catalog的管理

                        2.防止定名冲突

                        3.安全性更高

    

 

  • 主键 PrimaryKey

    是数据行的独一标识。不会重复的列才能当主键。分为业务主键和逻辑主键。

    业务主键:应用有业务意思的字段做主键。

    逻辑主键:应用没有任何业务意思的字段做主键。

    SQL中经常使用的主键类型:int(bigint)+标识列(主动增加字段)和 uniqueidentifier 类型(GUID)

    SQL中应用newid()方法失掉一个GUID,C#中应用Guid.NewGuid()方法获得GUID。

    

 

  • SQL语句

    SQL语句是标准的数据库操纵语句。对大小写不敏感。

    需要注意的一些地方:sql中字符串用单引号表现,而不是用双引号;等于判断用“=”,不等判断用“!=”或者“<>”。

    一般将sql语句分为两类:DDL和DDM。

    DDL(数据定义语言):create、drop、alter操纵

    DDM(数据操纵语言):insert、delete、update、select操纵

    

 

  • SQL中常见的类型

    bit 只能选择0或者1

    int 32位数                 bigint 64位数

    char(lenth) 指定lenth长度的字符串

    varchar(lenth) 可变长字符串,长度最大值lenth                nvarchar(lenth) 允许字段含有非ASCII码的字符串,如中文

    

 

  • 一些基本的SQL语法

    create table Person(id int not null, name varchar(50), age int)

    insert into Person(id, name, age) values(1, ‘A’, 10)

    update Person set age=18 where id=1

    select * from Person

    delete form Person       与drop不同的是:drop删除全部表结构,delete删除的是表中的数据

    drop talbe Person

    

 

  • 排序 order by

    排序方式:ASC递增,DESC递减。

    需要注意 order by 要放在 where 语句之后,   select * from Person where age > 10 order by age

    当对多个项目排序时早年往后进行,     select * from Person order by age DESC,name ASC

    

 

  • 分组 group by

    group by 必须放在 where 之后。没有出现在 group by 子句中的列是不能放在 select 语句的列名列表中的。

    select age, name from Person group by age     应用就是错误的,对age分组后,每一组中可能有多个name值

    每日一道理

虽然你现在还只是一株稚嫩的幼苗。然而只要坚韧不拔,终会成为参天大树;虽然你现在只是涓涓细流,然而只要锲而不舍,终会拥抱大海;虽然你现在只是一只雏鹰,然而只要心存高远,跌几个跟头之后,终会占有蓝天。

    

 

  • Having语句

    用于对分组进行过滤。聚合函数不能出现在where子句中,除非该聚合位于Having语句或选择列表所包含的子查询中。

    Having 要位于group by 之后。并且Having中不能应用为参数分组的列。

    select age, count(*) from Person group by age having coung(*)>1

    

 

  • 通配符过滤(模糊匹配)

    分为单字通配符和多字通配符两种。

    单字通配符用“_”表现,只能代表一个字符。多字通配符用“%”。

    select * from Person wher name like ‘A%’      查找结果为所用姓名以A扫尾的数据

    

 

  • 空值处置

    在sql中null表现不知道的意思,而不是编程语言中的空。

    应用 is null, is not null 可以进行空值的判定。

    select * from Person where name is not null

    

 

  • 多值匹配

    应用 and、or、between and 做判定范围的连接。

    select * from Person where age=10 or age=18

    

 

  • 制约结果集行数

    select top 3 * from Person order by age        按照年龄升序排列后,取得排前三的数据行

    select top 3 * from Person where id not in (select top 5 id from Person order by age DESC) order by age DESC   取得年龄降序排6、7、8的三个数据行

    

 

  • 去掉重复数据

    应用 distinct 关键字可以去掉查询结果中重复的数据行。

    select distinct age from Person

    

 

  • 结合 union

    要求进行结合的每个结果集必须有相同的列数,并且列必须类型相容。

    有 union 和 union all 两种结合方式。

    union 会默认去掉完全相同的数据,因为需要进行重复值扫描,所以 union 效率低。

    union all 不进行重复行合并。

    select name, salary from Person

    union

    select ‘工资合计’, sum(salary) from Person

    -The End-

    

    © Jervis

     

     

    ———————- ASP.Net+Android+IOS开辟.Net培训、等待与您交流! ———————-

    详细请查看:http://edu.csdn.net

文章结束给大家分享下程序员的一些笑话语录: 程序员喝酒
  我偶尔采用“木马策略”、“交叉测试”,时间不长就开始“频繁分配释放资源”,“cache”也是免不了的了,
  不过我从不搞“轮巡”,也不会“捕获异常”,更不会“程序异常”,因为我有理性
克制的。  

——————————— 原创文章 By
sql和数据
———————————

    原文作者:坚固66
    原文地址: https://www.cnblogs.com/jiangu66/p/3153206.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞