zoukankan      html  css  js  c++  java
  • mysql常用技巧

    1.什么是数据库

    数据库是按照数据结构,存储和管理数据的仓库。

    关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等书序概念和方法来处理数据库中的数据。

    DB:数据库   DBA:数据库管理员  DSMS:数据库管理系统

    SQL:结构化查询语言.  DQL:数据查询语言 DML:数据操作语言 DDL:数据定义语言 TCL:事务控制语言

    mysql 是最流行的关系型数据库管理系统。

    登入mysql  -h 域名  -u  用户名 -P 端口号  -p 密码

    查看mysql版本 mysql --version    

    或进入mysql  select version

    2、mysql语法规范

    1.不区分大小写,建议关键字用大写

    2.每条命令以;结尾

    3.单行注释  # 或--空格 ,多行注释 /*...*/

    查看所有的数据库  show databases;

    打开制定的数据库  use 库名;

    查看库下所有的表. show tables;

    查看别的库下的表。show tables from 库名;

    查看表结构  desc 表名;

    产看当前使用的数据库 select database();

    3.数据库操作

      创建数据库  create database [if not exists] 数据库名 [default] character set 字符集;

      修改数据库 alter database  数据库名 character set 字符集

      删除数据库 drop database [if exists ] 数据库名

    4.mysql数据结构

      数字型 tinyint、smallint、int、bigint  float(M,D) 整数个数+小数个数总共为M个,小数个数为M个 Double(M,D) 

      字符串类型 char(M) 固定长度  varchar(M)最大可显示M位 text 长文本 blob 二进制 set集合(value1,value2) enum枚举(value1,value2)

      日期型  date 日期 time 时间 datetime 日期时间 timestemp 时间戳 year 年 

    5.表操作

    create table [if not exists ] 表名(字段名 类型 约束条件)

    常见约束条件

      not null 非空

      default 默认值

      unique 唯一值

      foreign key 外键

      auto_increment 自增 

    外键设置

      要在从表中设置

      从表的外键类型要与主键相关联列的类型一样

      主表的关联列至少位一个Key ,一般为主键

      插入数据时,先插主表,再插从表

      删除数据时,先删从表,在删主表

    创建约束的时机 : 创建表时,修改表时

    create table(id int primary key auto_increment ,name varchar(20),age int,constraint fk foreign key(表2的列名) reference 主表(列名) )

    修改表结构 alter table 表名

      add column 字段名 类型 [first | after 列名]  添加新字段

      add index [索引名] 字段名. 添加索引

      add primary key (字段名)  添加主键

      add unique(索引)  字段名. 添加唯一

      change column 字段名 新字段名 类型

      modify column 字段名 新类型

      drop column 字段名

      drop primary key 删除主键

      drop index  索引名

      rename [as] 新表名 

      add [constraint 约束名] 约束类型(字段名)

    删除表 drop table 表名

    6.算数运算符

    + - * / % div

    7.比较运算符

     = != <> > is null  between and   、in 、    like  、regexp 匹配字符串 

    匹配符:% 任意多个字符。- 任意一个字符

    8、逻辑运算符

    && and 与。 || or 或 ! not 非  xor 异或

    9、表数据的增删改

    insert into 表名(column1,column2) values(value1,value2)

    insert into 表名  set column1 = value1 

    update 表名 set column1 = value1 [where 条件表达式]. 

    delete from 表名 [where 条件表达式]

    truncate table 表明

    *****delete与truncate的区别

    1.delete 可与where连用 

    2.对于存在自增加列的表,使用truncate后,添加数据从1开始,delete从上次计数后一个开始

    3.truncate 效率高

    4.delete 可用于事务,回滚 

    5.truncate 无返回值 delete可显示受影响的行数

    级联删除。  on delete casecade       on delete setnull 

    10、表数据的查询

    select 查询内容                       5

    from 表1 别名1  [inner | left |right] join 表2 别名2  on 连接条件.        1

    where  筛选条件。                                   2 

    group by 字段名分组                 3 

    having 分组后筛选条件              4

    order by  字段名                6          

    limit  a,b 从索引a开始,显示b条数据        7

    distinct 删除重复值

    聚合函数.  sum avgminmax count

    子查询。select 查询是另一个查询的附属. = > exists any all 

    select * from 表A where user_id in (select user from 表b )

    ***合并查询union 与union all 的区别

    union all 不删除重复值

    union 删除重复值

    11、mysql中常用函数

    字符函数           

    length :计算字节长度 length(字符)

    concat :拼接字符串  concat(str1,str2)

    lower : 小写  lower(str)

    upper : 大写 upper(str)

    substr(str,index1,[length2]). 截取  在字符串中,从索引1开始,截取长度为length2的长度

    instr(str,substr) 查询索引位置。在str中查找第一次出现substr的索引位置,找不到则为0

    trim(str from string) 删除  string中删除指定str

    lpad(str,length,str2) 左填充  总长度为length,长度不够,用指定的字符串str2左填充

    rpad(str,length,str2)右填充   总长度为length,长度不够,用指定的字符串str2右填充

    replace(str,str2,str3)  替换.  在字符串str中,用str3替换str中的str2 

    数字函数

    round(1.654,2) 四舍五入  小数后保留两位小数

    ceil(2,3)  向上取整

    floor(2.3) 向下取整

    truncate(1.2222,2) 小数后截断2位

    mod(10,3) 取余。

    日期函数

    now :显示现在的日期和时间

    curdate : 显示现在的日期 

    cuttime: 显示现在的时间

    year : 显示年份

    month:显示月份

    day :显示日

    datediff(日期1,日期2)。计算两个日期的时间差

    str_to_date :字符串格式变为时间格式 str_to_date("19930804","%Y%m%d")

    date_format:日期 准化为字符串  date_format(now(),"%Y-%m-%d")

    12、条件语句

    一、if (条件,值1,值2)

    二、

       if 条件1  then 语句1

      elseif 条件2 then 语句2

      elseif 条件3 then 语句3

      else 条件n

      end if   

    select if(10>5,1,0)

    case 两种使用情况 

      一、case 要判断的字段或表达式

        when 常量1 then 显示的值1或语句1

        when 常量2 then 显示的值2或语句2

        ...

        else 要显示的值n或语句n

        end 

      二 、 case 

        when 要判断的语句1 then 显示值1或语句1

        when 要判断的语句2 then 显示值2或语句2

        ...

        else 要显示的值n或语句n

        end 

    13、视图

      多次用到同一个结果

      查询的sql语句复杂

      create view 视图名 as (查询语句) 创建试图

      drop view 试图名.       删除试图

      show create 试图名   查看试图

      desc 试图名.        

    14.存储过程和函数

    创建存储过程    create procedure 存储过程名(参数列表)begin 存储过程  end

    参数列表包括三部分。 参数模式.  列名。 参数类型。

    参数模式:

    in :输入值。该参数可以作为输入

    out :输出值  该参数为输出值

    inout :输入输出值。该参数可输入也可输出

    delimiter  重构结束标志 

    call  存储过程名(实参列表)

    删除存储过程

    drop procedure 存储过程名

    查看存储过程的信息

    show create procedure 

    存储过程可以有0个返回值或多个返回值

    函数只有1个返回值

    创建一个函数 create function 函数名(函数列表) returns 返回类型

    begin.  函数体 return  end 

    函数列表.  参数名 参数类型

    调用函数 

    select 函数名(实参)

  • 相关阅读:
    1 . CentOS 7的yum更换为国内的阿里云yum源
    0. vagrant+vbox创建centos7虚拟机
    git上传到码云和下载到本地
    spring boot udp或者tcp接收数据
    你好,博客园
    使用firdder抓取APP的包
    初见loadrunner
    sublime快捷键大全
    html中行内元素与块级元素的区别。
    html.css溢出
  • 原文地址:https://www.cnblogs.com/Ezhizen/p/12229620.html
Copyright © 2011-2022 走看看