mysql

  • MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
  • 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

mysql的操作:

(写完语句记得加;- - -代表具体的名称)

1.数据库操作

  • show databases; 显示所有的数据库
    在这里插入图片描述

  • 选择(使用)数据库
    use ---;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 创建数据库
    create database ---;
    在创建的时候 检测该数据库是否存在 不存在创建
    create database if not exists chat;
    如果存在,就直接使用use chat;

  • 删除数据库
    drop database ---;
    在这里插入图片描述

2.mysql的数据类型

1)数值类型:
在这里插入图片描述
2)日期和时间类型:
在这里插入图片描述
3)字符串类型:
在这里插入图片描述

3.数据表操作

  • 显示数据表
    show tables;

  • 创建数据表:
    (表名、表的字段名、定义每个表的字段)
    创建字段的时候 字段可以为null 也可以not null
    1)直接创建
    CREATE TABLE table_name (column_name column_type);
    在这里插入图片描述
    之后就可以查找到:
    在这里插入图片描述
    2)检测该表是否存在,如果不存在去创建:
    在这里插入图片描述

  • 查看表创建时的信息:
    show create table user;
    在这里插入图片描述

  • 设置数据表的编码格式(可写可不写,编码格式和数据库引擎默认设置)

  create table user(
  
  ) default  charset=utf8; 
  • 数据表的删除
    1)drop table user;
    在这里插入图片描述
    2) 检测判断: drop table if exists user;
  • 表的数据的增删改查:
    1)增加数据:(给现有列添加数据)
    添加数据,请注意不能为空的字段必须添加数据,可为空的字段可写可不写。
    属于varchar,日期类数据类型需要用引号包起来。
  • 一般方法:
    INSERT INTO table_name ( field1, field2,...fieldN )
    VALUES
    ( value1, value2,...valueN );

在这里插入图片描述

  • 增加数据的时候不写列(表里面所有的列都得添加数据)
    在这里插入图片描述
  • 一次性插入多条数据:
  insert into user
  values
  (),(),(),();  //这种写法是一次增加多条数据
  • 表创建好之后 ,添加列
    alter table user add column newcolumn varchar(100) not null;
    9
    2)查找数据:
  • 查询所有列:
    select * from user;
    在这里插入图片描述
    如果查看增加后的数据,文字出现乱码,可以使用:set names gbk; 就能正常显示。
  • 查询固定的若干列:
    select id,name,sex,age from user;
    (添加过两次数据)
    在这里插入图片描述
  • 查找表时候列起别名 (使用 as 起别名)
    在这里插入图片描述
    3)update 数据更新
    在这里插入图片描述
    在这里插入图片描述
    4) delete 删除数据操作
    delete from user;
    不加条件整张表数据全部删除 ,需要添加条件。

4.子句操作(增删改查都可)

  • where 子句:
    1)常规操作:
    update user set name="小王" where id=2;
    在这里插入图片描述
    2)多条件, 使用and关键字
    update user set name="小王" where id=2 and sex='男';
    在这里插入图片描述

  • like子句 (模糊查找)
    使用百分号 %字符来表示任意字符;
    如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
    select * from user where name like "张三";
    select * from user where name like "%张";
    select * from user where name like "张%";
    select * from user where name like "%张%";
    在这里插入图片描述

  • 排序: order by子句,可以和其他条件子句连用。
    select * from user order by age asc; 正序
    select * from user order by age desc; 倒序
    在这里插入图片描述

  • 分组:group by子句,对一个或者多个列进行分组 ;
    在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
    1)根据年龄分组,并统计每一组的个数。(COUNT函数)
    在这里插入图片描述
    2)根据名字分组,并为某一列求和。(SUM函数)
    在这里插入图片描述
    在这里插入图片描述
    3)WITH ROLLUP关键字(在分组的情况下,做最终的统计)
    在这里插入图片描述
    统计完成之后存在null空值 使用coalesce方法处理列上的空值:
    在这里插入图片描述

    5.多表链接查询

    1) 多表查询+分组以及虚拟表起别名+条件
    查询来自user和别名叫login的虚拟表中名字相同的若干列:
    在这里插入图片描述
    2) 子查询: 使用关键字 in
    在这里插入图片描述
    在这里插入图片描述

    6.主键 primarykey、外键 foreignkey 、唯一键 unique

    auto_increment :自增列,默认每次自增+1,设置自增列必须添加主外键。
    1)主键:是值不能为null,不能重复

    • 单主键:
      在这里插入图片描述在这里插入图片描述
    • 联合主键(一张表存在多个主键)
      在这里插入图片描述在这里插入图片描述
    • 表外添加主键
      alter table user add primary key (id);
    • 删除主键
      alter table user drop primary key;

    2)外键:是引用的主键外键,外键值必须和主键保持一致
    在这里插入图片描述在这里插入图片描述

    • 表外添加外键
      alter table score add foreign key (userid) references user (id);
    • 删除外键
      alter table user drop foreign key+外键名称;
      在这里插入图片描述

3)唯一键:是值可以为null ,不能重复( 主要约束数据的)

  • 单唯一键:
    在这里插入图片描述
  • 联合唯一键:
  create table userss(
   id int auto_increment primary key,
   name varchar(100),
   age int,
   unique key(name,age));

在这里插入图片描述

  • 外部添加唯一键
    alter table user add unique key(name);

7.存储过程 (考虑安全性)

设置:
1.
查询:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值