JAVA11_30学习总结(MySQL)

今日内容

1.MySQL

1.1什么是数据库?

数据库就是存储数据的仓库!
    数据库存储数据
        1)存储空间非常大!
            --成千上万上亿条数据,用户可以进行增删改查!
        2)数据独立性高
        3)实现数据共享
        4)减少数据的冗余度
        5)通过数据库可以实现数据的统一性和维护性!

1.2DDL语句基础语法

库的操作
    1)查询所有库 
        show databases;
        
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| 111                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
    2)创建库的语法
    如果没有这个库,就创建这个库
        ---create database if not exists 库名;
        
mysql>  create database if not exists szr;
Query OK, 1 row affected (0.00 sec)
​
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| 111                |            |
| mysql              |
| performance_schema |
| sys                |
| szr                |
+--------------------+
7 rows in set (0.00 sec)
    直接创建库 
        ---create database 库名;
        
mysql>  create database szr1;
Query OK, 1 row affected (0.00 sec)
​
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| 111                |
| mysql              |
| performance_schema |
| sys                |
| szr                |
| szr1               |
+--------------------+
7 rows in set (0.00 sec)
    3)查询指定库的信息--包括它的字符集
        ---show create database 库名;
        
mysql> show create database szr;---现在是utf8编码格式
+----------+----------------------------------------------------------------------+
| Database | Create Database                                                                                                                                               |
+----------+----------------------------------------------------------------------+
| szr      | CREATE DATABASE `szr` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */                                                             |
+----------+-----------------------------------------------------------------------+
1 row in set (0.00 sec)
    4)修改库的字符集
        ---alter database 库名 (default(省略)) character set 字符集格式;
        
mysql> alter database szr character set gbk;
Query OK, 1 row affected (0.00 sec)
​
mysql> show create database szr;--改成gbk格式了
+----------+-------------------------------------------------------------+
| Database | Create Database                                             |
+----------+-------------------------------------------------------------+
| szr      | CREATE DATABASE `szr` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+-------------------------------------------------------------+
1 row in set (0.00 sec)
    5)删除库
    如果存在库名,则删除
        ---drop database if exists 库名; 
    直接删除库
        ---drop databse 库名; 
表的操作
    -- 普通注释 单行注释
    # 特殊注释
    /*多行注释*/
创建表的前提
    use 库名;
mysql常见的数据类型:
    int
        --int(int类型的字符数)
            前者:int---默认11位,当前这个字段(列的名称) 值本身的实际位数 (推荐)
                年龄这个字段----- 25--使用int就可以表示即可
            后者:int(3)----给用户id(编号:1,2....n)---->不够三位补0 (不推荐后者)
                id--->1---------------->001
    varchar(字符长度)
        --字符串类型
            姓名这个字段---->varchar(20) ---->最大长度取到20, "钟离" 实际两个字符
                在mysql中字符串写的时候---->可以使用""双引号,也可以使用''单引号
    date
        --日期类型---仅仅表示日期
    datetime
        --日期+时间
    timestap
        --时间戳---当前插入数据或则修改/删除数据的即时时间
    double
        --小数类型
            double(3,2): 小数是3位数,小数点后保留2位
    clob
        --大字符类型,某个表中某个字段---使用clob来存储大文本!
    blob
        --大字节类型---存储大图片文件---大字节类型
查询库中有哪些表
    show tables ;
创建表的语法
    create table 表名(
        字段名称1 字段类型1,
        字段名称2 字段类型2,
        字段名称3 字段类型3,
        ....
        字段名称n 字段类型n
        ) ;
        mysql> create table student(
        -> id int,
        -> name varchar(10),
        -> age int,
        -> gender varchar(5),
        -> avg_socre double(3,1)
        -> );
查询表的结构--看到表的字段有哪些
     desc 表名;
修改表的字段类型
    alter table 表名 modify 字段名称 修改后字段类型;
修改字段名称--这个语法不要直接同时修改字段类型--并不改变字段类型
    alter table 表名 change 以前的字段名称 现在的字段名称 以前的字段类型;
修改表--添加一个新的字段
    alter table 表名 add 字段名称 字段类型;
修改表--- 删除表中某个字段
    alter table 表名 drop 字段名称 ;
修改表名
    alter table 表名 rename to 新表名;
查询表的字符集
    show create table 表名;
修改表的字符集
    alter table 表名 character set 字符集格式;
复制表---快速去创建有一个结构相同的表
    create table 新表名 like 旧表名;
删除表
    如果存在输入的表名--删除
        drop table if exists 表名;
    直接删除表名
        drop table 表名; 

1.3DML语句

表的操作
    插入数据
        1)插入全表数据
            insert into 表名 values(值1,值2,值3,值3...值n);
        2)插入全表数据也支持一次插入多条
            insert into 表名 values(值1,值2,值3,值3...值n),(值1,值2,......值n),(..) ;
        3)插入数据
           --插入部分字段,没有插入的字段值就是null(空值)
           --也可以支持一次插入多条数据,部分字段
            insert into 表名(字段名称1,字段名称2.,等部分字段)values(值1,值2,值3...),(值1,值2,值3...),(...);
    修改数据
        1)带条件修改(一次修改一个或者多个)---条件--一般都是非业务字段去修改
            update 表名 set 字段名称= 值(修改内容) where 字段名称= 值(修改条件);
            update 表名 set 字段名称1= 值1,字段名称2=值2,....(修改内容)where 字段名称= 值(修改条件);
        2)修改的时候如果不带where条件,属于批量修改(很少用)
    删除
        1)带条件删除
            delete from 表名 where 字段名称 = 值; (条件一般使用非业务字段删除)
            delete from 表名 where 字段名称1 = 值1 and 字段名称2 = 值2 ....多个条件删除
        2)删除全表数据
            delete from 表名; 是删除全表数据,表结构还在
          删除全表数据
            truncate table 表名;  是删除全表数据,表结构也删除
    查询
        1)查询全表
            select 全部字段名称 from表名;
            select * from 表名;
                --*代表全部字段 (实际开发中禁用*)
        2)带条件查询
            查询全表字段并且给别名 给别名as--可省略
                SELECT 字段名称 AS '编号' FROM 表名;
            查询时候指定部分字段
            查询指定字段如何去重
                ---关键字distinct
                SELECT DISTINCT 字段名称 (ASS省略)'编号' FROM 表名;

面试题

delete from 表名 和 truncate table 表名都是删除全表,有啥区别?

delete from 表名
    仅仅是删除表的全部数据,表结构还在
        -如果表中的id有自增长约束存在,不会影响自增长约束的值
            -下一次插入数据之后在上一次id的基础之上继续自增!
truncate table 表名
    不仅仅将表的全部数据删除,
        -而且它会删除这个表,会在创建一个创建空表,直接影响了这种(非业务字段id)自增长主键的值
            -下一次插入数据的时候,从1开始继续自增!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五目炒饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值