• MySQL——数据库基础


    目录

    一,数据库的操作

    1.显示当前数据库(show databases;)

    2.创建数据库(create database[if not exists] 数据库名;)

     (1) if not exists 的作用

     (2)使用的字符集——utf8mb4

    3.使用数据库(use 数据库名;)

    4.删除数据库(drop database  [if exists] 数据库名;)

     二,常用数据类型——对应java类型

    1.数值类型

    2.字符串类型

    3.日期类型

    三,表的操作

    1.创建表(create table 表名(列名 类型 ,列名 类型...);)

    2.查看表

    (1).查看数据库有哪些表(show tables;)

     (2).查看表中的结构(desc 表名;)

    3.删除表(drop table[if not exists] 表名;)

    四,数据库的增删改查(CRUD)

    1.增(insert into 表名) 

    (1).一行数据,全列插入

    (2).多行数据,全列插入

    (3).多行数据,指定列插入

    注:在新增的时候,发现值不能是中文怎么解决?

    2.查(select from 表名)

    (1).全列查询

    (2).指定列查询

    (3).对列进行运算

    (4).对查询结果的列重命名

    (5).查询的时候进行去重

    (6).查询的时候进行排序

    (7).条件查询(where)

    (8).分页查询

     3.改(update 表名)

     4.删(delete from 表名)


    一,数据库的操作

    1.显示当前数据库(show databases;)

    SHOW DATABASES; / show databases;

    首先要说明的是MySQL 大小写字母皆可

    2.创建数据库(create database[if not exists] 数据库名;)

    create database[if not exists] 数据库名;

     (1) if not exists 的作用

    if not exists 加不加都可,但若数据库名重复

    不加 if not exists ——报错

     加 if not exists 后——警告

     (2)使用的字符集——utf8mb4

    系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci,但是MySQL的utf8编码不是真正的utf8,没有包含某些复杂的中文字符。MySQL真正的使用的是utf8mb4

    可用创建方式:

    create database if not exists 数据库名 character set utf8;

    后续可以插入中文

     

    3.使用数据库(use 数据库名;)

    use 数据库名;

    在对表进行操作前需要先使用库 

    4.删除数据库(drop database  [if exists] 数据库名;)

    drop database  [if exists] 数据库名字;

     数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除,一不小心,损失百万

     二,常用数据类型——对应java类型

    1.数值类型

    1.bit(M)——boolean  M指定位数,默认为1字节 ,M范围1~64,存储数值范围0~2^M-1 

    2.tinyint——byte        1字节

    3.smallint——short     2字节

    4.int——integer           4字节

    5.bigint——long          8字节

    6.float(M,D)——float                 4字节 M指定长度,D指定小数位数,会发生精确丢失

    7.double(M,D)——double         8字节

    8.decimal(M,D)——bigdecimal  M/D最大值+2字节  M指定长度,D指定小数位数,精确数值

    9.numeric(M,D)——bigdecimal  M/D最大值+2字节  M指定长度,D指定小数位数,精确数值

    注意:

    ①数值类型可以指定为无符号(unsigned),表示不取负数,但不推荐这样使用

    ②对于放不下的数据,一开始就使用bigint类型

    2.字符串类型

    1.varchar——string         可变长度字符串

    2.text——String               长文本文件

    3.mediumtext——string   中等长度文本数据

    4.blob——byte                 二进制形式的长文本数据   

    对于一个不清楚类型的文件,可以尝试使用记事本来打开,若出现内容可以看懂,有规律,即是文本文件,反之,为二进制文件

    3.日期类型

    1.datetime——java.util.Date  举例 '2022-08-01 12:00:00'

    2.timestamp——java.util.Date

    三,表的操作

    操作表之前,需要先使用该数据库

    use 数据名;

    1.创建表(create table 表名(列名 类型 ,列名 类型...);)

    create table [if not exists] 表名 (列名 类型  comment '注释' ,列名 类型 /*注释*/, ...);

    注释:括号内 comment' 注释'   ,   /* 注释*/

               括号外 -- 注意“--”后的空格

    注意,1.如果列较多,建议分行来写

               2.可以先在其他编辑器编辑,再粘贴

    create table 表名 (
     id int,
     name varchar(20) comment '姓名', 
     password varchar(50) comment '密码',
     age int ,
     sex varchar(1),
     birthday timestamp,
     amout decimal(13,2),
     resume text
    );

     注意:

    1.varchar后面的数字不能省略

    2.末尾的  );   单独占最后一行

    2.查看表

    (1).查看数据库有哪些表(show tables;)

    show tables;

     (2).查看表中的结构(desc 表名;)

    desc 表名; (desc "描述")

     解释:

    1.11是描述的打印格式,可以省略

    2.Field字段

    3.20是最多存20个字符,不可省略

    3.删除表(drop table[if not exists] 表名;)

    drop table[if not exists] 表名;

    同样危险

    四,数据库的增删改查(CRUD)

    1.增(insert into 表名) 

    (1).一行数据,全列插入

    insert into 表名 values (值,值,...); 

    (2).多行数据,全列插入

    insert into 表名 values ( 值,值 ,...),( 值,值 ,...),( 值,值 ,...);

    (3).多行数据,指定列插入

    insert into 表名 (列名,列名,...) values ( 值,值 ,...);

     注意列-值对应

    注:在新增的时候,发现值不能是中文怎么解决?

    1.直接在建立数据库时加上utf8

    create database  数据库名 character set utf8;

    2.直接在配置文件时把数据库默认字符集设为utf8,具体操作如下:

    http://t.csdn.cn/9V6O7

    2.查(select from 表名)

    (1).全列查询

    select * from 表名;

    注意:这个操作是一个危险操作,如果当前存储的数据量大,很容易导致读磁盘和写网卡的时间非常长,甚至于把磁盘带宽和网卡带宽都吃满,通俗来讲,就是变卡变死机

    显示表与查表不同

     

    (2).指定列查询

    select 列名,列名... from 表名;

     

    (3).对列进行运算

    select 列名 + 列名... from 表名;

    计算结果以结果正确性为先,无关整形,浮点型,注意点是数字不能加字符

    (4).对查询结果的列重命名

    select 表达式 as 别名 from 表名;

     

    (5).查询的时候进行去重

    select distinct 列名 from 表名;

     

    (6).查询的时候进行排序

    1.以某列为基准进行升序排序

    select * from 表名 order by 列名;

     

    2.以某列为基准进行降序排序

    select * from 表名 order by 列名 desc;

     

    3.以多列为基准进行排序,按顺序依次排序,如果首列出现相同项,再按第二个列排

    select * from 表名 order by 列名,列名;

     

    (7).条件查询(where)

    select * from 表名 where 列名 运算表达式; 

                优先级and > or > not

     举几个栗子:

    < , > , >= , <= . = , !=

    表达式: 

    in:

     

     

    Like: 

    1.   like + '%孙' 匹配以孙结尾的    2.'孙%'匹配以孙开头的   3.'%孙%匹配以孙结尾的'

    (8).分页查询

    select * from 表名 limit N; 查询前N条记录

    select * from 表名 limit N offset M;从第M条开始,查询N条记录

     3.改(update 表名)

    update 表名 set 列名=值  [where  条件] [ order by 列名 ] [ limit N];

     

     危险操作

    4.删(delete from 表名)

    delete from 表名 where 条件;

    和drop不一样,delete只是删除数据,但是drop连表带数据删除 

     

     

  • 相关阅读:
    中国运动服行业并购重组机会及投融资战略研究咨询报告
    Linux设备驱动模型之字符设备
    并购交易:埃克森美孚商谈以250美元/股的价格收购先锋自然资源
    Webgis系统调试与发布
    GRE简单模拟 Generic Routing Encapsulation
    使用jmx exporter采集kafka指标
    数组(数据结构)
    LabVIEW
    fetch的简单使用
    acwing周赛 排队问题--二分+单调栈的思想
  • 原文地址:https://blog.csdn.net/weixin_63056061/article/details/126055654