黑马程序员+SQL基础(上)
黑马程序员+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基础(上)的更多相关文章
- 黑马程序员+Winform基础(上)
黑马程序员+Winform基础 ---------------<a href="http://edu.csdn.net"target="blank"> ...
- 黑马程序员+SQL基础(下)
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net ...
- 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)
正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G QQ 1481135711 这是我总 ...
- 黑马程序员_Java基础:网络编程总结
------- android培训.java培训.期待与您交流! ---------- Java语言是在网络环境下诞生的,它是第一个完全融入网络的语言,虽然不能说它是对支持网络编程做得最好的语言,但是 ...
- 黑马程序员----java基础笔记中(毕向东)
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...
- 黑马程序员_Java基础组成
Java语言基础组成 2.1关键字 main不是关键字,但被JVM所识别的名称. 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有字母都为小写. 用于定义数据类型的关 ...
- 黑马程序员_Java基础视频-深入浅出精华版--PPT 文件列表
\day01\code\第一章_Java概述.ppt;\day01\resource\资料\50道编程题(有精力的同学看看).doc;\day01\resource\资料\Sun_Java程序员认证考 ...
- 黑马程序员_Java基础:IO流总结
------- android培训.java培训.期待与您交流! ---------- IO流在是java中非常重要,也是应用非常频繁的一种技术.初学者要是能把IO技术的学透,java基础也就能更加牢 ...
- 黑马程序员——JAVA基础之泛型和通配符
------- android培训.java培训.期待与您交流! ---------- 泛型: JDK1.5版本以后出现新特性.用于解决安全问题,是一个类型安全机制. 泛型好处: ...
随机推荐
- DailyRollingFileAppender的使用
DailyRollingFileAppender是日志记录软件包Log4J中的一个Appender,它能够按一定的频度滚动日志记录文件. 如果您不熟悉Log4J,建议阅读一下 使用Log4j进行日志记 ...
- PHP中spl_autoload_register函数的用法
spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明bool spl_autolo ...
- Shell文本处理 - 匹配与编辑
正则表达式 符号 含义 . 匹配任意ASCII中任意单个字符,或是字母,或是数字 ^ 匹配行首 $ 匹配行尾 * 匹配任意字符或前一个的一次或多次重复 \ 转义,被转义的有$ . ‘ “ * [ ] ...
- 通过viewmodel找到view
如何通过viewmodel找到view? 之前的做法是,在view加载时(Loaded),将view保存到viewmodel中,后来想想Caliburn-Micro,自带方法可以通过viewmodel ...
- AC算法 及python实现
零 导言 软件安全课上,老师讲了AC算法,写个博客,记一下吧. 那么AC算法是干啥的呢? ——是为了解决多模式匹配问题.换句话说,就是在大字符串S中,看看小字符串s1, s2,...有没有出现. AC ...
- Hibernate查询
HIbernate查询 使用get方法 使用get方法通过持久类名和ID号查找一个对象Stu instance = (Stu) getsession() .get("com.lovo.po. ...
- JavaBean知识
四.JavaBean的概念1.JavaBean一般具有的特点:a.字段都是私有的. private String name;b.提供公共的getter或setter方法(属性).getter或sett ...
- 清空stringbuilder
大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilder时却不知道怎么清空,因为它没有clear或em ...
- android 应用笔记
android 应用笔记 android 应用笔记 小书匠 Android 综合教程 Android常用技巧 安卓系统架构 安卓源码开发 安卓驱动 Linux内核 安卓应用开发 Java 教程 tic ...
- seaJS 简单例子,理解seaJS
学习心得: 记得第一次学underscore的时候,去的官网(不管什么都是官网好),呼啦一长列语法,我就一个个看,看完也不知道underscore是做什么的.就是现在underscore我也用不上,学 ...