黑马程序员--msSqlServer复习小结

------- Windows Phone 7手机开发、 .Net培训、期待与您交流! -------
 
主键:能唯一标示一行记录的字段或者字段组;不能重复,不能为空;一张表只能有一个主键.
外键:一个表中的某数据项的数据要参照另一个表的主键数据,可以重复,可以为空;一张表中可以有多个外键
索引:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
 
SQL语句主要分为:DDL、DML、DCL
DDL:Data Definition Language(数据定义语言),操作数据库对象和数据库对象的属性,例如:Create\Drop\ALTER\ Table、Create\drop index;
DCL:Data Control Language(数据控制语言),操作是数据库对象的权限 例如:grant\revoke\commit\rollback\lock;
DML:Data Manipulation Language(数据操纵语言),操作是数据库对象中包含的数据,例如:Insert\update\delete\select

创建数据表:create table 表名(字段1 字段类型,字段2,字段类型…… 约束定义1, 约束定义2……)
添加字段:alter table 表名 add 字段名 字段类型
删除字段:alter table 表名 drop 字段名
销毁数据表:drop 表名
清空数据表:delete from 表名
插入数据:insert into 表名 (字段1,字段2,……) values (值1,值2,……)
数据更新:update 表名 set 字段=值(where 字段=值)
数据检索:
SELECT〈列名〉[{,〈列名〉}]
FROM〈表名或视图名〉[{,〈表名或视图名〉}]
[WHERE〈检索条件〉]
[GROUP BY <列名1>[HAVING <条件表达式>]]
[ORDER BY <列名2>[ASC|DESC]];
where后过滤条件:
"_":匹配单个字符;
"%":匹配多个字符;
"[]":匹配满足集合要求的字符
eg:
select * from student where name like '_M[Ja]%'
判断值:<>、>、<、not 、=、in 、between and
数据分组: group by ,而其一般聚合函数(max min count sum等);
注意:
group by +
select count(*) as 人数, subject as 科目 from student
where (className<> 'math') group by subject
--》筛选出每个科目有多少个学生(不包括数学)
group by ALL + 类似于 left join功能
select count(*) as 人数, subject as 科目 from student
where (className<> 'math') group by all subject
--》筛选出每个科目有多少个学生(包括数学,只不过人数会显示为0[聚合函数会根据返回值的类型用默认值0或者NULL来代替聚合函数的返回值])
 
Having子句:
HAVING子句可以让我们筛选成组后的各组数据,WHERE子句只能聚合前先筛选记录.但是不能筛选聚合后的组记录,where只能作用在GROUP BY 子句和HAVING子句前。但是HAVING子句能在聚合后对组记录进行筛选。
 
Union\union all--联合结果集
如果两个查询结果直接没有任何的联系,只是需要二者显示在一起,就可以使用union函数联合
注意:1.每个结果集必须有相同的列;2.每个结果集的列类型必须相容
union和union all 的区别:union会自动将查询出来的结果进行重复比较如果有重复,则只显示一条,而union  all 则将查询出来的结果直接显示出来
注:distinct,去除的表的重复数据,而union是表和表之间的
 
 
------- Windows Phone 7手机开发、 .Net培训、期待与您交流! -------
 

你可能感兴趣的:(UNION,distinct,MySQLserver)