码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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连表带数据删除 

     

     

  • 相关阅读:
    【MY杂记】- SpringBoot 配置全局 Json 序列化与反序列化
    React高手必学:自定义Hooks,轻松飞升技术巅峰!
    【力扣每日一题】2023.9.10 打家劫舍Ⅳ
    FFmpeg5.1.3编译动态库详细教程(基于Linux虚拟机)
    第八篇、线程优先级和守护线程
    115.(leaflet篇)leaflet空间判断-点与矩形的空间关系
    算法通关村16关 | 滑动窗口如此简单
    TypeScript基础入门(一、常用类型)
    世强硬创获昕感科技授权代理,SiC MOSFET实现超低导通电阻
    别乱用了!文件写入的6种方法
  • 原文地址:https://blog.csdn.net/weixin_63056061/article/details/126055654
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号