写在之前的话:

  之前一直在用MSSERVER,刚用MySQL时有很多的不适应。就此小结一下工作中遇到的问题和场景,文中出现的局限性欢迎指出

  MySQL有客户端式(SQLyog),可托拉拽和写代码;或者通过命令行的方式进行交互(mysql -h10.***.***.*** -P*** -u***  -p****);

  MySQL与MSSERVER之间的优劣,就要涉及到具体的业务场景了。MySQL开源化,性能优越但数据量大的话不建议,其中索引对查询有质的提升,适合实时数据支持如WEB;MSSERVER比较全面,有自动化性能分析、ETL、job、图表等,更加倾向于中小型数据集成分析

数据库操作

  创建数据库:create database demon;

  删除数据库:drop database demon;

表操作

创建

  1.1、创建数据表

     create table s_position
        (
            id int not null auto_increment,
            name varchar(20) not null default '经理', #设定默认值
            description varchar(100),
            primary key PK_positon (id),   #设定主键
            unique (id,name)   #设定唯一值
        );
  1.2、复制表/结构(不用添加“AS”,将结构和内容都复制过去,若仅复制结构使用limit 0 选项)
    create table tab1 select * from table1;
  1.3、创建临时表(临时表只在当前连接可见,当这个连接关闭的时候,会自动drop)
    create temporary table tab1 (name varchar(25),...);
  1.4、创建表进行判断
    create table if not exists tabl1 (.....);
  1.5、表重命名
    alter talbe table1 rename as table2;
修改
  2.1、增加列
    alter talbe table1 add (test vhar(10),hehe char(12));
  2.2、修改列
    alter table table1 modify test char(20) not null
  2.3、修改默认值
    alter table table1 alter test set default 'system';
   2.4、去掉默认值
    alter table table1 alter test drop default;
  2.5、去掉列
    alter table table1 drop column test;
    删除多列
    alter table table1 drop column test1,
                column test2,...;
  2.6、创建索引
    create index index_name on table_name(column_name);
  2.7、删除主键  
     alter table table1 drop primary key;
  2.8、增加主键
    alter table table1 add primary key PK_depart_pos (department_id,position_id);
 
更新 
  格式
    单表:update [LOW_PROORITY] [IGNORE] TABLENAME set COLUMN_NAME="***" WHERE CLOLUMN_NAME="&&&" [ORDER BY  ...] [LIMIT rows]
    或
    多表:update [LOW_PROORITY] [IGNORE] TABLENAME [,tab2,tab3,....] set col_name1=expr1,.... [where ...]
 
  说明
    如果指定关键词LOW_PRIORITY,update的执行将被延迟,直到没有其他的客户端正在读取表;如果指定关键词IGNORE,则更新语句将不会异常中止,即使在更新过程中出现了重复键错误。导致冲突的记录将不会被更新;如果在一个表达式中从tbl_name中访问一个列,update使用咧的当前值
    
  示例:多表更新
      update tab1 ,tab2 set column1=column2,... where condition1='***'
 
常用函数
 
1、date和time
          a.当前datetime:now():2017-06-07 14:31:52
          b.返回时间:time():select time(now());  --->14:31:52
          b1.返回日期:date():select date(now()); --->2017-06-07
          c.返回年月日:year()/month()/day()
          d.返回时分秒:hour()/minute()/second()
          e.取时间含义:dayname()--星期几;
                                dayofweek():返回日期对应的星期:1--周日;2--周一;。。
                                dayofyear():返回日期为该年的第多少天;
                                last_day():返回某个日期的最后一天;-->select last_day(now());  '2017-06-30'
          f.日期计算:  interval:灵活性加减日期
                                      select now()+interval +5 day;
                                      select now()+interval -4 minute;
                              datediff(enddate,start_date),返回天数
                              timestampdiff(interval,begin_date,end_date ):求对应的时间差(天、时、分、秒)
 
2、字符串函数
               a.长度
                    char_length():字符串长度 我是 --> 2  
                    length():字符长度,”我是” --> 4  【字母/符号/数字 一个字符】
               b.拼接函数
                    concat(str1,str2,...):
                    concat(seperator,str1,str2,...):带有分隔符的拼接函数
               c.字符查找
                    locate(find_str,str,start):
               d.字符截取
                    substring(str,start[,end])
               e.替换
                    replace(str,old_str,new_str)
               f.插入
                    insert(str,start,length,repr):在指定的位置插入字符或字符串
          示例:select insert('aaabcdefg',3,5,'what')  ---aawhatfg
                    select insert('aaabcdefg',3,1000,'what')  ---aawhat
               g.补充:
      补充:①重复函数repeat(str,count)
               ②大小写转化:lower(str)/Lcase(str)、Upper(str)/Ucase(str)
               ③反转函数:reverse(str)
               ④空格函数:space(N)
               ⑤去空格函数:ltrim()、rtrim()、trim()
 
3.数值函数
               a.转换
                    cast
               b.截取
                    round(data,n):四舍五入,保留小数位数n位
                    truncate(data,n):截取数据到n位,不四舍五入
                    floor():数据的最大整数部分
                    ceil():大于数据的最小整数
               c.取最小值
                    least(arg1,...):取最小值
               d.数据处理
                    rand():随机小数
                    format(,n):数据格式化,转化为含千分位数据,四舍五入保留n位小数
 
4.控制流函数
               a.case 
                    case when ....then ...else ... end
               b.if
                    if(condition,true_value,false_value)
               c.ifnull
                    ifnull(arg1,arg2):arg1位空时则取值arg2,
               d.nullif
                    nullif(arg1,arg2):arg1=arg2时为空,否则为arg1
 
转载请注明出处!欢迎邮件沟通:shj8319@sina.com
 

MySQL快速入门 基本技能篇的更多相关文章

  1. .NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了

    写在前面 上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能.今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git ...

  2. MySQL快速入门(二)

    目录 MySQL快速入门(二) 约束条件 自增 自增的特性 主键 外键 级联更新/删除 表与表之间的关系 外键约束 操作表方法 查询关键字 练习数据 select··from where 筛选 gro ...

  3. MySql基础笔记(一)Mysql快速入门

    Mysql快速入门 一)基本概念 1)表 行被称为记录,是组织数据的单位.列被称为字段,每一列表示记录的一个属性. 2)主键 主键用于唯一的标识表中的每一条记录.可以定义表中的一列或者多列为主键, 但 ...

  4. Java快速入门-02-基础篇

    Java快速入门-02-基础篇 上一篇应该已经让0基础的人对 Java 有了一些了解,接一篇更进一步 使用 Eclipse 快捷键 这个老师一般都经常提,但是自己不容易记住,慢慢熟练 快捷键 快捷键作 ...

  5. Java快速入门-01-基础篇

    Java快速入门-01-基础篇 如果基础不好或者想学的很细,请参看:菜鸟教程-JAVA 本笔记适合快速学习,文章后面也会包含一些常见面试问题,记住快捷键操作,一些内容我就不转载了,直接附上链接,嘻嘻 ...

  6. MySQL 快速入门教程

    转:MySQL快速 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据 ...

  7. Scala快速入门 - 基础语法篇

    本篇文章首发于头条号Scala快速入门 - 基础语法篇,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的 ...

  8. MySQL 快速入门(一)

    目录 MySQL快速入门 简介 存储数据的演变过程 数据库分类 概念介绍 MySQL安装 MySQL命令初始 环境变量配置 MySQL环境变量配置 修改配置文件 设置新密码 忘记密码的情况 基本sql ...

  9. SpringBoot快速入门(实战篇一)

    SpringBoot快速入门(一) 一SpringBoot简介 1.spring开发经历的阶段 Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 ...

随机推荐

  1. Git Flow Note

    近期困惑于Git代码版本控制,集中两天时间研究,其中基础知识来源于<Git权威指南>,分支思想则来源于一篇博文<A successful Git branching model> ...

  2. RPi WiringPi安装使用

    sudo apt-get install git-core git clone git://git.drogon.net/wiringPi   cd wiringPi ./build   使用Exam ...

  3. TCP协议随笔

    传输控制协议TCP是面向连接.保证高可靠性(数据无丢失.数据无失序.数据无错误.数据无重复到达)传输层协议.TCP/IP结构对应OSITCP/IP                           ...

  4. SparkMLlib学习之线性回归

    SparkMLlib学习之线性回归 (一)回归的概念 1,回归与分类的区别 分类模型处理表示类别的离散变量,而回归模型则处理可以取任意实数的目标变量.但是二者基本的原则类似,都是通过确定一个模型,将输 ...

  5. 忘记block格式 xib加载没有计算导航栏和tabbar的大小

    敲inlineBlock xib加载没有计算导航栏和tabbar的大小 /将这个属性改为no self.tabBarController.tabBar.translucent = NO; 判断优化,两 ...

  6. 极光开发者沙龙 之 移动应用性能优化实践 【一】旧酒新瓶——换个角度提升 App 性能与质量

    旧酒新瓶--换个角度提升 App 性能与质量 主讲人:高亮亮 ---   饿了么移动技术部高级iOS工程师,负责饿了么商家版iOS APP开发,对架构和系统底层有深入研究,擅长移动性能分析,troub ...

  7. stickUp.js:98 Uncaught ReferenceError: vartop is not defined at HTMLDocument.<anonymous> (stickUp.js:98)

    附加var vartop = 0;在var topMargin = 0;这之后,这里是我附加的代码:$(document).ready(function(){ var contentButton = ...

  8. sqlserver使用job删除过期备份文件

    享下链接:http://blog.csdn.net/xieyufei/article/details/33770067(注意这里主要说明怎么设置删除过期备份文件) 先说下sqlserver使用job删 ...

  9. 化繁为简(三)—探索Mapreduce简要原理与实践

    目录-探索mapreduce 1.Mapreduce的模型简介与特性?Yarn的作用? 2.mapreduce的工作原理是怎样的? 3.配置Yarn与Mapreduce.演示Mapreduce例子程序 ...

  10. Spring+SpringMVC+MyBatis深入学习及搭建(七)——MyBatis延迟加载

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6953005.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(六)——My ...