黑马程序员+SQL基础

---------------<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流!-------------

1  DBMS:数据库管理系统(oracle,mssqlserver,db2,access,mysql,sybase等)

2  分类:不同类的数据放到不同的数据库中,便于对各个分类进行个性化管理,避免命名冲突,安全性更高

3  table: 表,不同类型的资料放到不同的格子中

4  Column:列 ;Field 字段

5  主键:pk 唯一标识行  ;业务主键:用业务意义的字段做主键,如身份证号;逻辑主键:没有任何业务意义字段做主键,推荐用逻辑主键

6  外键 fk ;创建数据库,创建表,设置主键

7 数据类型:int ,bit,char(10),datetime,float,image,decimal(18,0),money,bigint,smallint,nvarchar(50)…

8  varchar,nvarchar,char的区别:char不满足长度,会自动用空格填充,varchar则不会,Var:variable可变

9  sql语句中字符串用单引号‘’,大小写不敏感,但字符串值还是大小写敏感的

10  新建查询:

create table T_Person(id int not null,name nvarchar(10),age int not null)   --创建表

drop table T_person   --删除表

select NEWID()--guid

11   SQL主要分DDL数据定义语言(create table, drop table ,alter table)和DML数据操作语言(select insert)

12  主键类型:int, uniqueidentifier (guid)   (标识规范)自动增长,一个表只能有一个标识列

13  .net生成guid方法:Guid.NewGuid(),数据库中用newid()方法;int自增字段优点:占用空间小,易读,效率低;guid:效率高,不易读, 占用空间大;业界更倾向于Guid

14 数据插入:insert into 表名(列名)values(值);可以给字段默认值,如果guid类型主键的默认值设定为newid()会自动生成

insert into T_person(name,age) values ('kk',20) --插入数据

insert into T_person values ('jj',20) --插入数据

15 Guid主键:
create table T_Person2(id uniqueidentifier  not null,name nvarchar(10),age int not null)   --创建表

insert into T_Person2(id,name,age)values(NEWID(),'ll',20)  --插入数据NEWID()

select * from T_Person2 --查询表

16 更新数据:
    update T_Person2 set name='qq',age=30 --更新多条数据

update T_Person2 set name='qq',age+=1 --更新自己的数据

select * from T_Person2 --查询表

17  条件更新数据:

update T_Person2 set name=N'青年人' where age>35 ---更新年龄大于的人员名字为青年人

update T_Person2 set name='38' where age=38    --更新年龄等于的名字为

update T_Person2 set name='gg' where (age>35 and age<40) or age=31  --更新年龄在到岁或者是岁的名字为gg

18  删除数据  
delete from T_Person2 where age<21 --删除年龄小于

select * from T_Person2 --查询表

19  检索数据
select * from T_Person2 --查询表

select name as 姓名,age as 年龄 from T_Person2 --as取别名

select 1+2 as 列,GETDATE() as 日期,NEWID() as 编号 --可不于数据库相关

20 聚合函数

select COUNT(*)from T_Person2 --统计多少条数据

select MIN(age)from T_Person2--最小年龄

select MAX(age)from T_Person2--最大年龄

select AVG(age)from T_Person2--平均年龄

select SUM(age) from T_Person2 --求和年龄

21  排序
  select * from T_Person2 order by age desc--按年龄排序(降序)

select * from T_Person2 order by age asc,name desc --按年龄排序(升序),后年龄降序

select * from T_Employee where FAge>23 order by FAge desc,FSlary asc –年龄大于23,按年龄降序,工资升序进行排序

22  通配符(模糊查询)
    select * from T_Employee where FName like ‘_erry’    -- _表示一个字符(like)

Select * from T_Employee where FName like ‘%n%’   --%表示多个字符,含有n字符的

Select * from T_Empployee where FName like ‘n%’    --以n开头姓名
23 空值处理(null :不知道)

Select null+1   --null不知道

Select ‘abc’+’123’  --abc123

Select * from T_Employee where FName is(not) null –查询姓名为null的数据
24 多值匹配
    select * from T_Employee where FAge in(23,45,28)   –in用法

Select * from T_Employee where FAge>20 and FAge<30  —-年龄20~30

Select * from T_Employee where FAge  between 20 and 30  --年龄20~30

25 数据分组

Select FAge,count(*) from T_Employee group by FAge –根据年龄分组后计数

Select FAge,count(*) from T_Employee group by FAge having count(*)>1 --聚合函数不能出现在where语句中,应放在having语句中(放在group by后)

Select FAge,count(*) from T_Employee group by FAge having FSalary>2000

--此句错误,having是对分组后信息的过滤,能用的列和Select中能用的列一样;而where对原数据进行过滤

26 限制结果集函数

select top 3 * from T_Employee where FSalary desc –工资前三数据

select top 3 * from T_Employee where id not in(select top 5 id from T_Employee order by FSalary desc)   --id(6~9)工资降序数据    分页效果

select distinct FDepartment from T_Employee   -- distinct消除完全重复的数据

27联合结果集(union)合并

Select FName,FAge from T_TempEmployee union select FName,FAge from T_Employee  --两表的列名个数一样和数据类型相容(union会消去相同的数据)

Select FName,FAge from T_TempEmployee union all select FName,FAge from T_Employee  --两表的列名个数一样和数据类型相容(union all不会消去相同的数据)

28习题:
     报表:select N‘正式员工最高年龄’,max(FAge) from T_Employee
  union all  select N‘正式员工最低年龄’,min(FAge) from T_Employee

Union all select N‘临时员工最高年龄’,max(FAge) from T_TempEmployee

Union all select N‘临时员工最低年龄’,min(FAge) from T_TempEmployee
     合计:select FNumber,FSalary from T_Employee union all select N‘工资合计’,Sum(FSalary) from T_Employee

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>

黑马程序员+SQL基础(上)的更多相关文章

  1. 黑马程序员+Winform基础(上)

    黑马程序员+Winform基础 ---------------<a href="http://edu.csdn.net"target="blank"> ...

  2. 黑马程序员+SQL基础(下)

    ---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net ...

  3. 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

    正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G  QQ 1481135711 这是我总 ...

  4. 黑马程序员_Java基础:网络编程总结

    ------- android培训.java培训.期待与您交流! ---------- Java语言是在网络环境下诞生的,它是第一个完全融入网络的语言,虽然不能说它是对支持网络编程做得最好的语言,但是 ...

  5. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  6. 黑马程序员_Java基础组成

    Java语言基础组成 2.1关键字 main不是关键字,但被JVM所识别的名称. 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有字母都为小写. 用于定义数据类型的关 ...

  7. 黑马程序员_Java基础视频-深入浅出精华版--PPT 文件列表

    \day01\code\第一章_Java概述.ppt;\day01\resource\资料\50道编程题(有精力的同学看看).doc;\day01\resource\资料\Sun_Java程序员认证考 ...

  8. 黑马程序员_Java基础:IO流总结

    ------- android培训.java培训.期待与您交流! ---------- IO流在是java中非常重要,也是应用非常频繁的一种技术.初学者要是能把IO技术的学透,java基础也就能更加牢 ...

  9. 黑马程序员——JAVA基础之泛型和通配符

    ------- android培训.java培训.期待与您交流! ---------- 泛型:            JDK1.5版本以后出现新特性.用于解决安全问题,是一个类型安全机制. 泛型好处: ...

随机推荐

  1. 苗子sale record

    2016年7月11日 橘白/阳光 发广州 220  中通 719373064939 成功2016年7月11日 横纹RA    发潮州 250  中通 719373064940 成功2016年7月18日 ...

  2. object.bind()方法的低版本兼容

    Function.prototype.bind= function(obj){ var _self = this, args = arguments; return function() { _sel ...

  3. LSD-SLAM深入学习(4)-非ROS改造

    前言 没错,距离上一次博客的发布已经俩月了,今天是圣诞节,圣诞快乐. 在前几篇中已经完成了ROS下面的一系列操作.如有任何问题,feel free to contact me at robotsmin ...

  4. HandlerThread源码分析

    其实原本HandlerThread的分析不应该单独开一篇博客的,应该在讲消息机制的那一片中一起分析. 但当时忘记了,而且今天第一次用MarkDown写博客,有点上瘾,就再来一篇,权当滥竽充数过过手瘾. ...

  5. mysql日志 解析

    mysql有4种不同的日志,分别是二进制日志,查询日志,慢查询日志和错误日志,这些日记记录着数据库工作的方方面面,可以帮助我们了解数据库的不同方面的踪迹,下面先介绍二进制日志的作用和使用方法,并利用二 ...

  6. 《Linux 多线程服务端编程:使用 muduo C++ 网络库》电子版上市

    <Linux 多线程服务端编程:使用 muduo C++ 网络库> 电子版已在京东和亚马逊上市销售. 京东购买地址:http://e.jd.com/30149978.html 亚马逊Kin ...

  7. city-picker 选择省市县的一个控件,好用。

    我觉得好奇怪,这么好一个插件,为什么没有设置值的方法,还是我才疏学浅?? 我看有的人做法是把,把源代码里面的自动扫描机制注释掉 // $(function () { // $('[data-toggl ...

  8. linux不知道文件在哪,想查找文件内的字符串

    find . -name "*.*" |xargs grep "xxx"

  9. IEEE二进制浮点数算术标准学习

    看到有网上有个项目是要求将浮点数用二进制表示出来,需要用IEEE754标准,查了查维基和深入理解计算机系统,重新学习了一遍浮点数在计算机中的表示和内存中的存储, 先简单的做个笔记,后面需要更深入的理解 ...

  10. 《笨办法学C》笔记之指针

    C语言编程主要操作的对象就是指针. 指针从哪里来 指针就是表示内存存储区域的一组数值,使用%p格式化字符串. Linux系统会为程序维护两个临时变量存储位置:栈.堆.栈的空间少,栈通常在用户更高的地址 ...