• MySQL数据库管理



    一、数据库管理

    1.SQL语句概述

    ​SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

    1.1 SQL语言

    • Structured Query Language的缩写,即结构化查询语言
    • 关系型数据库的标准语言
    • 用于维护管理数据库
      包括数据查询、数据更新、访问控制、对象管理等功能

    1.2 SQL分类

    • DDL :数据定义语言

    • 用于创建数据库对象,如库、表、索引等

    • DML :数据操纵语言
      用于对表中的数据进行管理

    • DQL :数据查询语言
      用于从数据表中查找符合条件的数据记录

    • DCL :数据控制语言
      用于设置或者更改数据库用户或角色权限

    2、DDL数据定义语言

    用于创建数据库对象,如库、表、索引等

    creat
    drop
    alter
    
    
    • 1
    • 2
    • 3
    • 4

    2.1 创建新的数据库

    CREATE DATABASE 数据库名;
    
    
    • 1
    • 2

    在这里插入图片描述

    2.2 创建新的表

    CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
    
    
    • 1
    • 2

    主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。

    例:create database school;
    use school;
    create table CLASS1 (id int not null,name char(10) not null,sex char(1),primary key (id));
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在这里插入图片描述

    2.3 删除指定的数据表

    use 数据库名
    DROP TABLE 表名;或 DROP TABLE [数据库名].表名;
    
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    2.4 删除指定的数据库

    DROP DATABASE 数据库名;
    
    
    • 1
    • 2

    在这里插入图片描述

    3、DML数据操控语言

    数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据。

    insert
    update
    delete
    
    
    • 1
    • 2
    • 3
    • 4

    格式:

    INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);
    
    
    • 1
    • 2

    3.1 向数据表中插入新的数据记录

    例:create database school;
     
    use school;
     
    create table CLASS (id int NOT NULL,name char(10) NOT NULL, score decimal(5,2), passwd char(48) DEFAULT'',PRIMARY KEY (id));
     
    insert into CLASS (id,name,score,passwd) values(1,'zhangsan',99,PASSWORD('123456'));
    insert into CLASS (id,name,score,passwd) values(2,'lisi',59,123456);
     
    #PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示:若不使用PASSWORD(),查询时以明文显示。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    在这里插入图片描述

    3.2 查询数据记录

    SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
     
    例:select * from CLASS;
    select name,score from CLASS where id=1;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    3.3 修改、更新数据表中的数据记录

    UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
     
    例:insert into CLASS (id,name,score,passwd) values(3,'wangwu',77,123456);
    insert into CLASS (id,name,score,passwd) values(5,'liliu',66,123456);
    select * from CLASS;
     
    update CLASS set id=4 where name='liliu';
    select * from CLASS;
     
    update CLASS set name='san',score=100 where id=3;
    select * from CLASS;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    插入两条内容并查看
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.4 在数据表中删除指定的数据记录

    DELETE FROM 表名 [WHERE 条件表达式];
     
    例:delete from CLASS where id=3;
    select * from CLASS;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    4、DQL数据查询语言

    select name from CLASS\G         #以列表方式竖向显示
    select * from CLASS limit 2;      #只显示头2行
    select * from CLASS limit 2,3;    #显示第2行后的前3行
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在这里插入图片描述

    5、DCL数据控制语言

    5.1 修改表名

    ALTER TABLE 旧表名 RENAME 新表名;
     
    例:alter table CLASS rename CLASS1;
    show tables;
    select * from CLASS1;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    5.2 扩展表结构(增加字段)

    ALTER TABLE 表名 ADD address varchar(50) default 'nanjing';#default ‘nanjing’:表示此字段设置默认值 nanjing;可与 NOT NULL 配合使用
     
    例:alter table CLASS1 add address varchar(50) default 'nanjing';
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    5.3 修改字段(列)名,添加唯一键

    ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
     
    例:alter table CLASS1 change name student varchar(20) unique key;
    select * from CLASS1;
     
    例:insert into CLASS1 (id,student,score,passwd) values(3,'yyy',250,123456);
    select * from CLASS1;
    insert into CLASS1 (id,student,score,passwd) values(5,'yyy',250,123456);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述
    在这里插入图片描述每个表中只能由一个主键 ,但是许多内容都需要唯一性,这就是唯一键的作用
    在这里插入图片描述

    5.4 删除字段

    ALTER TABLE 表名 DROP 字段名;
     
    例:alter table CLASS1 drop score;
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    二、数据库基本操作

    1、登录数据库

    [root@yzq mysql]# mysql -u root -p
    
    • 1

    在这里插入图片描述

    2、查看数据库结构

    2.1 查看数据库信息

    注意:数据库命令不区分大小写

    show databases;
    show databases\G 
    #命令结束必须以;或者\G结束命令
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2.2 查看数据库中包含的表

    USE 数据库名; #切换进入数据库,后面可以不加结束符
    
    show tables;  #查看表,必须加结束符
    show tables in mysql;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    在这里插入图片描述

    2.3 显示数据表的结构

    DESCRIBE [数据库名.]表名;
    可缩写成:DESC 表名;
    
    
    • 1
    • 2
    • 3
    Field :字段名称
    Type  :数据类型
    Key   :键
    Default :默认值
    Extra   :扩展属性,例如:标志符列
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    在这里插入图片描述

    3、常用的数据库类型

    int	    整型
    float	单精度浮点 4字节32位
    double	双精度浮点 8字节64位
    char	固定长度的字符类型
    varchar	可变长度的字符类型
    text	文本
    image	图片
    decimal(5,2)	5个有效长度数字,小数点后面有2位
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4、char和varchar的区别

    • ​对char来说,最多能存放字符个数255个,char如果存入数据的实际长度比指定长度要小 会补空格至指定长度。如果存入的数据的实际长度大于指定长度 低版本会被截取,高版本会报错
    • char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了​

    varchar存储规则:

    • 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
    • 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65535字节

    5.案例扩展

    if not exists   表示检测要创建的表是否已存在,如果不存在就继续创建
    int(4) zerofill 表示若数值不满4位数,则前面用“0”填充,例0001
    auto_increment  表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
    unique key      表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键
    not null        表示此字段不允许为NULL
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    免费代理IP VS 付费代理IP,为何选择后者更明智?
    九九乘法表
    vue3 响应式 ref 、reactive、computed的区别,和watch 监听器的使用
    基于Python + SnowNLP实现一个文本情感分析系统
    实战讲解Redis基础数据类型List增删改查(带Java源码)
    EF7创建模型入门篇
    java计算机毕业设计计算机组成原理教学网站源码+mysql数据库+系统+lw文档+部署
    1.初识jQuery
    基础算法篇——归并排序
    关于seata启动时连接数据库异常,Mysql版本8.0
  • 原文地址:https://blog.csdn.net/weixin_71429790/article/details/126811192