0


初识数据库

数据库


文章目录


MySQL

  MySQL的安装与初步认识
  库和表的操作以及MySQL中的数据类型
  基础增删改查
  进阶增删改查
  索引与事务


MySQL的安装与初步认识

初步认识:

    数据库: 存储数据的仓库
      存储介质: 本质上数据的存储介质依然是磁盘 (也有内存数据库, 但是基于内存的易失特性, 因此最终还是需要持久化存储)
      数据库与文件存储的区别: 数据库不单单是存储数据的仓库还包含一套数据库管理系统
       数据安全问题: 文件是在磁盘上随意存储, 但是数据库的数据通过管理系统提议进行管理
       文件不利于海量存储, 查询: 数据库管理系统为数据的存储设计了一套合适的数据结构
       文件在进程中控制不方便: 数据库管理系统通常是C/S架构, 不仅仅支持本地访问, 也支持远程访问, 并且内部实现安全操作
    数据库种类:
      关系型数据库: 以某种关系模型 (库, 表, 行, 列) 进行数据组织的数据库
        Oracle, SqlServer, MySQL, mariadb, sqlite…
      非关系型数据库: 当前更多指的是不基于sql实现的数据库
        Redis, MongoDB, memcached,
      sql: 结构化查询语言

MySQL服务器安装

CentOS 7通过yum安装mariadb

https://zhuanlan.zhihu.com/p/49046496
mysql -uroot       打开mysql客户端

在这里插入图片描述
查看字符集的设置正确与否:
  1. 打开客户端连接服务器成功

show variables like"%char%";

在这里插入图片描述

数据库基础

 库的操作,数据类型,表的操作
  sql语法规则-注意事项:
    sql语句并不区分大小写;
    sql语句每一条都要以英文分号结尾;
    sql语句中并不区分单引号与双引号;
    sql语句中库名称,表名称,字段属性名称不能随意使用关键字;

库的操作

  查看所有数据库:

show databases;

  创建数据库:

create database if not exists db_name;

  删除数据库:

drop database db_name;

  选择所要操作的数据库:

use db_name;

  查看当前选定的数据库:

select database();

表的操作

  因为涉及到一张表中数据类型的定义
    如一张学生表,其中应该有年龄,学号,姓名……
  数据类型
    整型:bit(n), tinyint, smallint, int, bigint
    浮点型:float(m, d), double(m, d), decimal(m, d), numeric(m, d); m表示数字的格式,d表示其中小数的数字占据的个数
    字符串类型:varchar(n), text, mediumtext, blob; n表示字符的个数限制, 不是所占字节长度的限制
    日期类型:timestamp,datestamp
  表的操作:前提是一定要先选择所操作的数据库
    查看库中所有的表:

show tables;

    创建表:

create table if not exists student_tb(sn int, name varchar(8), age int, ch decimal(4, 2), en decimal(4, 2), birth datetime);

    查看表结构:

describe student_tb; desc student_tb;

    修改表结构:

alter table student_tb add math decimal(4, 2); alter table student_tb drop age;

    删除表:

drop table student_tb;

基础增删改查

  新增:insert [into]
    默认全列插入:

insert student_tb values(1101, "张三", 18, 87.55, 9.999, "2003-08-07 12:12:32");

    指定列插入:

insert student_tb (sn, name, ch, en, age) values(1002, "李四", 67.5, 87.5, 19);

    多列插入:

insert student_tb (sn, name, ch, en, age) values(1002, "赵六", 57.5, 47.5, 19)(1003, "王五", 77.5, 94.5, 17);

  修改:update……set……; 修改数据需要注意的是一定要设置过滤条件,否则会针对全部数据进行修改
    默认全部修改:

update student_tb set birth="2003-08-15 08:32:54";

会对表中所有学生的生日进行修改
    修改指定列指定行数据:

update student_tb set birth="2003-08-15 08:32:54" where name="张三";

  删除:delete from……
    默认删除表中所有数据:

delete from student_tb;

    删除指定行数据:

delete from student_tb where name="赵六";

  查询:select……from……
    默认全列查询:

select * from student_tb;

    指定列查询:

select sn, name, ch, en, from student_tb;

    查询字段是表达式:

select sn, name, ch+en from student_tb;

    查询字段起别名:

select sn, name, ch, en, ch+en, as total, from student_tb;

    去重查询:distinct; 去重的查询结果只有去重依据字段
      单列去重:

select distinct sn from student_tb;

      多列去重:

select distinct sn, name from student_tb;

    排序查询:order by … desc/asc; desc-降序、asc-升序; 默认是升序
      以单列排序:

select * from student_tb order by ch desc;

      以多列排序:

select * from student_tb order by sn desc, ch desc;

第一列相同情况下使用第二列进行排序
    分页查询:limit n -限制去除前n条; limit n offset s --从偏移量第s条开始取出n条数据
      查询语文成绩前三名:

select * from student_tb order by ch desc limit 3;

      每页2条,获取第1条数据:

select * from student_tb order by ch desc limit 2 offset 2;

(第0页是第0条和第1条,则第1页偏移量从2开始)
    条件查询:给查询设置一个过滤条件,符合条件的数据才能被查询出来
      而条件查询会使用到条件表达式
      比较的关系运算符:<, >, >=, <=, =, !=, <=>, <>
      范围查询:between … and…

select * from student_tb where ch between 60 and 80;

      集合查询:in (a, b, c…)

select * from student_tb name in("张三", "张老三", "张小三");

      模糊查询:like

select * from student_tb where name like "%四%";

      空值查询:is null, is not null

select * from student_tb where birth is not null;

    逻辑运算符:
      逻辑与:and -双目运算符,连接两个条件表达式,两个同为真
      逻辑或:or -双目运算符,连接两个条件表达式,任意一个为真,则结果为真
      逻辑非:not

标签: 数据库

本文转载自: https://blog.csdn.net/qq_48711800/article/details/123997298
版权归原作者 李憨憨_ 所有, 如有侵权,请联系我们删除。

“初识数据库”的评论:

还没有评论