搜索
查看: 6011|: 0

SQL基础学习笔记

[复制链接]

183

主题

8

回帖

820

积分

高级会员

积分
820
发表于 2014-8-7 10:23:30 | 显示全部楼层 |阅读模式
一、基本操作
创建数据库: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)不存在传递函数依赖,即非主键特征之间不存在依赖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-12-23 10:22 , Processed in 0.054484 second(s), 24 queries .

快速回复 返回顶部 返回列表