数据挖掘知识

免费体验
当前位置: 首页 > 知识库 > 数据挖掘知识 >

SQL基础学习笔记

分享到:
时间:2013-10-14 22:09来源:谷歌推广seo网络知识 作者:谷歌优化怎么做
这个是这两天自己看SQL的一些总结。很想提一提的是,我看的教材是O'Reilly的深入浅出系列(Head First系列),这是我看到过的最有设计感的一本书,简单来说就是最能让我感觉到,作者是花了何等的努力去让读者能有效地学习教材的内容。

一、基本操作

创建数据库:create database databas_name;

创建表:create table table_name(var_name1 var_type,var_name2 var_type,...);

查看表格式:desc table_name;

删除表:drop table table_name;

查看数据:select * from table_name;

添加数据:insert into table_name(column_name1,column_name2,...)

          value('value1','value2',...);

选择数据:select columns_name from table_name 

          where conditions;

更改数据:update table_name

          set column_name1=value1,column_name2=value2(可以用表达式,如x=x+1)

          where conditions;

删除数据:delete from table_name 

          where conditions;

增加列:alter table table_name(也可用于修改其它的表的特性)

        add column column_name var_type (first/last/after/before column_name2(指定列位置));

改变列数据类型:alter table table_name

                change column column_name_old column_name_new var_type_new,

                modify column column_name var_type_new

排序:order by column_name (desc)

改特征值分组:group by column_name

复制表:create table new_table_name as

        select * from old_table_name

 

 

二、细节设置和高级命令

限定不允许Null:列数据类型加上not null

限定赋值范围:列数据类型加上check

列取默认值:列数据类型加上default value

主键设定:主键特征类型设定为not null,可以加auto_increment实现自动递增

声明主键:primary key(column_name)

限制查询数量:limit number/number1,number2

声明外键:constraint constraint_name

          foreign key (column_name)

          reference foreign_column_name (column_name)

联接,谷歌推广,给出两列所有的组合可能:

      select name1.column_name1,name2.column_name2

      from table_name1 as name1

      cross join

      table_name2 as name2(as可以不写)

自然联接,要求联接的表中名称相同的列要有相同的值,才会选择:natural join

外联接,给出不仅给出满足条件的项,还会列出其中一个表中不满足条件的项,而另一个表对应的数据为Null

子查询,即中间暂存变量,以括号内给出的select语句作为外层查询的输入。据称所有使用子查询的地方都可以用联接来实现

合并,将多次选择得到的结果合并起来:union

视图,即将查询做成函数,方便调用:

      create view view_name as

      select column_names from table_name where conditions

事务,要求一组数据操作要都一起完成,否则则都不进行,防止同时多方对表进行操作

      start transaction;%事务开始

      ……

      rollback;%放弃上面的操作,回到操作前的状态

      commit;%完成事务

 

三、选择时的条件表达

正则表达式:like expr

范围选取:in (value_name1,value_name2,...)

          between value1 and value2

 

四、表格设计原则

第一范式:1)数据要具有原子性,即每个特征只有一个值,且特征之间不能是同类,比如不应该设置特征为兴趣1,兴趣2,兴趣3...

          2)每一行,既每个事例必须要有一个唯一的识别项,即主键

多表:利用多张表来使数据表符合第一范式,用专属表来专门处理具有多个值的特征,以外键将表关联起来

第二范式:1)符合第一范式

          2)不存在部分函数依赖,即非主键特征依赖于组合主键的一部分而非全部,只要使用人工主键(与数据无关的id)作为主键即可

第三范式:1)符合第二范式

          2)不存在传递函数依赖,即非主键特征之间不存在依赖

(整理:英文推广TuiGuang123.com)
分享到:
------分隔线----------------------------
购买咨询 | 联系我们 | 产品报价 | 付款方式
网站地图 Copyright·深圳市亿推信息技术有限公司 版权所有 粤ICP备13042246号