写在之前的话:

  之前一直在用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. js实用方法记录-js动态加载css、js脚本文件

    js实用方法记录-动态加载css/js 附送一个加载iframe,h5打开app代码 1. 动态加载js文件到head标签并执行回调 方法调用:dynamicLoadJs('http://www.yi ...

  2. Java图书管理系统(用Java常用集合实现)

    图书管理系统 一.需求说明 1.功能:登录,注册,忘记密码,管理员管理,图书管理. 2.管理员管理:管理员的增删改查. 3.图书管理:图书的增删改查. 4.管理员属性包括:id,姓名,性别,年龄,家庭 ...

  3. REDIS安装与配置

    1. mkdir /home/redis/ 2. mkdir /home/redis/conf 3. mkdir /home/redis/data 4. cd /home 5. 下载redis版本3. ...

  4. 项目管理之 Objective-C 编码规范

    目录: 一.格式化代码 二.命名 命名要求 1. 类的命名: 规则: 大驼峰命名法,每个单词的首字母都采用大写字母.一般添加业务前缀.后缀一般是当前类的种类. ViewController:后缀:Vi ...

  5. Web开发安全小贴士

    想要开发出一个安全的.健壮的Web应用其实是非常困难的, 如果你想要快速开发出一款集使用价值.用户体验度.以及安全性为一身的产品,以下安全步骤很必要!!!     数据库 1.对类似访问令牌.电子邮箱 ...

  6. Java IO流--练习

    1)将若干个Student对象,若干个Teacher对象,写出到d:/0404/a.txt中 2)将该文件中所有Student对象反序列化回来装入List, 所有的Teacher对象反序列化回来转入另 ...

  7. vue-cli项目中怎么mock数据

    在vue项目中, mock数据可以使用 node 的 express模块搭建服务 1. 在根目录下创建 test 目录, 用来存放模拟的 json 数据, 在 test 目录下创建模拟的数据 data ...

  8. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  9. 平面之后3D成主流?VR全景表示不服!——全景智慧城市常诚

    目前很多人对VR全景这个词汇没有明确的概念,更没有人做过全面的研究,VR全景是什么?VR全景可以做什么?不同于我们经常听到的VR色情,全景智慧城市常诚今天就来为各位做一个系统全面的介绍,深入了解之后, ...

  10. eclipse maven项目中使用tomcat插件部署项目

    maven的tomcat插件部署web项目,我简单认为分两种,一种是部署到内置tomcat,另一种是部署到安装的tomcat. 第一种部署,默认是部署在内置tomcat的8080端口,如果不需要改端口 ...