写在之前的话:

  之前一直在用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. 基本DOS命令之 netstat 命令详解

     netstat 命令(查看端口) netstat 命令用于显示与 IP .TCP .UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况,可以使用 netstat 命令查看 ...

  2. 对 Servlet 的改进--------Struts2 引入

    通过上一篇博客:Servlet 的详解 http://www.cnblogs.com/ysocean/p/6912191.html,我们大致知道了 Servlet 的基本用法.但是稍微分析一下 Ser ...

  3. 跟着刚哥深入学maven

    前言:目前所有的项目都在使用maven,可是一直没有时间去整理学习,这两天正好有时间,好好的整理一下. 一.为什么使用Maven这样的构建工具[why] ① 一个项目就是一个工程 如果项目非常庞大,就 ...

  4. 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数

    隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法 ...

  5. javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...

  6. javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  7. Android之使用JAVA占位符格式数据(很实用)

    小编虽然是学java出生,但工作之后就一直从事android开发,很多java基础都忘记完了,最近一年从ES换到了AS,原来的很多习惯都收到了挑战,比如我喜欢ES写方法的时候先在JAVA projec ...

  8. Eclipse 下的 Maven的安装及配置

    http://jingyan.baidu.com/article/295430f136e8e00c7e0050b9.html

  9. php访问数据库$result=$mysql_qurey('')判断是否是空值

    在访问数据库后得到result值,前提是$relust为true,就是没有发生错误连接情况,但是查询的条件由于不满足导致返回值为空,此时判断就不能用!来决定是否有返回数据了,经过书籍搜索,用resul ...

  10. JS键盘事件对象之keyCode、charCode、which属性对比

    先说一些有关键盘事件的事项:用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown. onkeypress和onkeyup这 ...