mysql基本使用

mysql

  • 基本指令

    • set character_set_client = gbk; 暂时修改当前的数据集
  • 库操作

    • create database 库名; 创建
    • show database ; 查看
    • show create database 库名; 查看创建库语句
    • alter database 库名 default character set 编码方式 collate 编码方式_bin
    • drop database if exists 库名;
  • 数据类型

    • 整型
      • int bigint
    • 浮点型与定点型
      • float double
      • decimal(m,d)
    • 日期时间
      • datetime
      • 使用now 来获取当前系统的日期和时间
    • 字符串&二进制
      • 字符串 : char varchar
      • 二进制 : binary varbinary
  • 表操作

    • create table 表名(

      ​ 字段1 数据类型 [外间约束],…

      )

    • show create table 表名; 查看创建表语句

      ​ show create table 表名\G. ; 对齐显示

    • desc 表名 ; 查看字段集合

      NULL KEY(是否编码索引) DEFAULT EXTRA(附加信息)

    • alter table 旧表 rename 新表 ; 改名

    • alter table 表名 change 旧字段 新字段 INT; 修改字段名

      注意: 数据类型必须与原有数据类型相同

    • alter table 表名 modify 字段 新数据类型 ; 修改数据类型

    • alter table 表名 add 新字段 数据类型 [约束][frist | after 字段]

    • alter table 表名 drop 字段 ; 删除字段

    • alter table 表名 modify 字段1 数据类型 [first | after 字段]; 排列位置

    • drop table 表名 ;删表

  • 约束

    primary key 唯一标识,每个数据表中只有一个

    foreign key 外键关联

    not null 非空

    unique 唯一

    auto_increment 自增

  • 外键详解

    • 创建外键

      指定主键:foreign key(字段名)

      引用外键:references(外键字段名)

    • 事件触发限制

      • on delete 和 on update 可设参数 cascade 跟随外键改动
      • restrict 限制跟随外键改动
      • set null 设置空值
      • set default 设置默认值
    • 创建时使用外键

      create table temp(

      ​ id int,

      ​ name char(10),

      ​ foreign key(id) references 外联表(id)on delete cascade on update cascade

      ​ )

  • 记录

    • 插入记录
      • 指定字段 insert into 表名(k1,k2…) vlaues (v1,v2…)

      • 不指定字段 insert into 表名 vlaues (v1,v2…)

      • 添加多条记录

        insert into 表名(k1,k2…)

        vlaues (v1,v2…),(v1,v2)

    • 修改记录

      update 表名 set 字段名 = 新值 [,…] [where condition];

    • 删除记录

      delete from 表名 [where condition]

      清空:(区别网上查一下,了解即可,truncate 效率更高)

      delete from 表名;

      truncate table 表名;

  • select 语句基本用法

    select [all | distinct ] k1 , k2 …| *

    from 表名列表

    [where condition]

    [group by 字段名]

    [having condition]

    [order by 别名 [asc | desc]]

    limit [offset] n;

    ​ **distinct: 用于剔除查询结果中重复的数据 **

    from:从指定表中查询数据,一张表或多张表

    group by: 将查询结果按照指定字段进行分组

    order by:排序 asc升序 desc 降序

    hvaing: 对分组数据进行指定条件过滤

    limit: 偏移量 offset :0表示第一条数据 ; 条数 n:返回查询记录数

    目前感觉查询语句不是那么的重要,会简单的where字句查询就行了

    • 基本查询

      select * from 表名

    • 为列区别名

      select class as 班级 , now() as 时间 from 表名

    • 使用distinct去消重复查询

      select distinct class as 班级 from 表名

    • where 子句

      select distinct class as 班级 from 表名 where condition

    • 模糊查询

      % : 任意字符0 个 或多个

      _ : 任意字符 1 个

      select distinct class as 班级 from 表名 where name like ‘张%’

    • order by子句

      select distinct class as 班级 from 表名 where name like ‘张%’ order by score

      注意:

      - asc(升序默认) desc(降序)
      - 可以选择多列
      - order by 子句必须放在where 子句后面
      
    • 集合函数

      count(*): 不能与distinct 连用

      sum() any() min() max()

    • group by 子句

      使用 group by必须符合两种情况:

      - 应用了集合函数
      - 未应用集合函数的字段必须包含在group by子句中
      

      select sgender as 性别,count(*) as 人数

      from studentinfo

      group by sgender

      ​ group by 通常与having 子句配合使用,使用having 进行二次筛选

      where 子句 和 having 子句 区别表现:

      • where 子句的设置的查询筛选条件在group by 子句的之前发生作用,并且条件中不能使用集合函数
      • having 子句设置筛选条件在group by 子句之后发生作用,并且条件中允许使用集合函数

      SQL 执行函数

      • where 子句
      • group by 子句
      • 执行聚合函数
      • having 子句
    • 多表查询

      连接语法格式:

      ​ select 列名列表

      ​ from 表名1 left | right | inner | full join 表2

      ​ on 表名1.列名 比较运算符 表名2.列名

      • 内连接 inner join

      • 左外连接 left join

      • 右外连接 right join

      • 外连接 full join

    • 创建存储过程

      • 创建

      ​ delimiter //

      ​ create procedure test([in 变量名 数据类型])

      ​ begin

      ​ select * from 表名;

      ​ end

      ​ //

      • 调用

        call test();

        //

    • 创建函数过程

      • 创建

      create function hello(w char(20) charset utf8)
      -> returns char(50)
      -> reads sql data
      -> begin
      -> return concat(‘hello’,w,’!’);
      -> end
      -> //

      • 调用

      set @a = ‘hellow’;
      -> set @b = hello(@a);
      -> //

      select @b

    • 事务

      start transaction; 开启事物

      执行操作语句

      commit; 提交这一次事务

      rollback; 取消这一次事物

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值