• MYSQL数据库管理


    目录

    一、基本概念

    1.1库和表

    1.2常用的数据类型

    二、MySQL数据库管理

    2.1登录mysql

    2.2查看当前服务器中的数据库 

    2.3查看数据库中包含的表 

     2.4查看数据表的结构

     2.5查看mysql版本

     三:SQL语句

    3.1DDL:数据定义语言,用于创建数据库对象,如库、表、索引等

    3.1.1创建新的数据库

    3.1.2删除指定的数据库 

    3.1.3创建新的表

    3.1.4删除指定的数据表  

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

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

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

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

    3.3DQL:查询数据记录

    3.4DCL:修改表名和表结构

    3.4.1修改表名 

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

    3.4.4删除字段 

    3.5使用if判断,创建表并测试自增和填充

     四:数据表高级操作 

    4.1克隆表——将数据表的数据记录生成到新的表中

    4.1.1先创建再导入

     4.1.2创建的时候同时导入

     4.2清空表——删除表内的所有数据

    4.2.1delete删除

     4.3创建临时表

    五:总结


    前言:MySQL 是最流行的关系型数据库管理系统,本文将介绍MySQL的基本操作,数据库、表、字段的增删改查等一些常规操作

    一、基本概念

    1.1库和表

    数据库----->数据表----->行(记录):用来描述一个对象的信息

    数据库----->数据表----->列(字段):用来描述对象的一个属性

    1.2常用的数据类型

    • int:整型#####用于定义整数类型的数据
    • float:单精度浮点4字节32位#####准确表示到小数点后六位
    • double:双精度浮点8字节64位
    • char:固定长度的字符类型#####用于定义字符类型数据
    • varchar:可变长度的字符类型
    • text:文本
    • image:图片
    • decimal(5,2):5个有效长度数字,小数点后面有2位#####指定长度数组

    注:char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际

    长度大于指定长度,低版本会被截取,高版本会报错

    主键是唯一的,但主键可以由多个字段构成

    char占用空间,查询效率高,最大达到255;varchar不占用空间,查询效率低,最大可达到65535

    二、MySQL数据库管理

    2.1登录mysql

    1. mysql -u root -p
    2. 输入密码

    2.2查看当前服务器中的数据库 

    1. SHOW DATABASES;
    2. #大小写不区分,分号“;”表示结束

    2.3查看数据库中包含的表 

    1. USE 数据库名;
    2. SHOW TABLES;
    3. #示例1
    4. use mysql
    5. show tables;

     2.4查看数据表的结构

    1. use mysql
    2. describe user;
    3. desc user;
    4. desc user \G
    5. 使用绝对路径查看
    6. desc mysql.user;

     

    Field字段名称
    type数据类型
    Null是否允许为空
    Key主键
    Type数据类型
    Null是否允许为空key:主键
    Default默认值
    Extra扩展属性,例如:标志符列
    id1 3 5 7 

     2.5查看mysql版本

    1. #在mysql内查看mysql版本
    2. select version();
    3. #在linux系统中查看mysql版本
    4. mysql -V

     三:SQL语句

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

    SQL语句分类:

    语句代表的意思
    DDL数据定义语言,用于创建数据库对象,如库、表、索引等
    DML数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据
    DQL数据查询语言,用于从数据表中查找符合条件的数据记录
    DCL数据控制语言,用于设置或者更改数据库用户或角色权限

    3.1DDL:数据定义语言,用于创建数据库对象,如库、表、索引等

    create:创建

    drop:删除

    alter:修改

    3.1.1创建新的数据库

    1. CREATE DATABASE 数据库名;
    2. #示例:创建一个名为vermouth的数据库
    3. creat database vermouth;

    3.1.2删除指定的数据库 

    1. create database [数据库名];创建数据库
    2. show databases; 查看已有数据库
    3. drop database [数据库名]; 删除指定数据库
    4. show databases; 查看已有数据库

     3.1.3创建新的表

    1. #主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
    2. CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
    1. #示例:
    2. use vermouth;
    3. create table xiao (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT'',PRIMARY KEY (id));
    4. desc xiao; #查看xiao数据表的各个字段

    3.1.4删除指定的数据表  

    1. create table cha (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT'',PRIMARY KEY (id));
    2. show tables;
    3. drop table cha; ##删除指定的表
    4. show tables;
    5. #如不用USE进入库中,则需加上数据库名
    6. DROP TABLE [数据库名.] 表名;

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

    insert:插入

    update:修改

    delete:删除 

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

    1. #向数据表中插入新的数据记录
    2. insert into 表名(字段1,字段2,字段3) values(字段1的值,字段2的值,字段3的值);
    3. #示例
    4. INSERT INTO xiao (id,name,score,passwd) values(1,'zhangsan',90,PASSWORD('123456'));
    5. #PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示;如果不使用PASSWORD(),查询时以明文显示
    6. select * from xiao;

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

    1. #格式
    2. UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
    3. #示例
    4. UPDATE xiao SET name='wangwu',passwd='' WHERE id=1;

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

    1. #格式:
    2. DELETE FROM 表名 [WHERE 条件表达式];
    3. #示例:
    4. delete from xiao where id=4;

    3.3DQL:查询数据记录

    select:查询 

    1. #格式
    2. SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];

     示例1:查看所有数据

    select * from xiao

    示例2:查询指定数据

    1. select name,score from xiao;
    2. select name,score from xiao where id=1;

     示例3:以列表方式竖向显示

    select * from xiao \G

    示例4:只显示前2行

    select * from xiao limit 2;

     示例5:显示第一行后的前俩行

    select * from xiao limit 1,2;

    3.4DCL:修改表名和表结构

    3.4.1修改表名 

    1. #格式
    2. ALTER TABLE 旧表名 RENAME 新表名;
    3. #示例
    4. alter table xiao rename cheng;

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

    1. #default 'default值':表示此字段设置默认值 地址未填写!;可与 NOT NULL 配合使用
    2. ALTER TABLE 表名 ADD address varchar(50) default 'default值';
    3. #示例
    4. alter table cheng add address char(20) default '地址不详';

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

    1. #格式
    2. ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
    3. unique key:唯一键(特性:唯一,但可以为空,空值只允许出现一次)
    4. key:唯一且非空(主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键)
    5. CHANGE:可修改字段名、数据类型、约束等所有项
    6. 每个表中只能由一个主键 ,但是许多内容都需要唯一性,这就是唯一键的作用
    7. #示例
    8. alter table cheng change name user_name char(100) unique key;

    3.4.4删除字段 

    1. #格式
    2. ALTER TABLE 表名 drop 字段名;
    3. #示例
    4. alter table cheng drop score;

    3.5使用if判断,创建表并测试自增和填充

    1. use vermouth;
    2. create table if not exists kfc (
    3. id int(4) zerofill primary key auto_increment,
    4. name varchar(10) not null,
    5. cardid int(18) not null unique key,
    6. hobby varchar(50));
    • if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
    • int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,例0001
    • auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
    • unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键
    • not null:表示此字段不允许为NULL

    进行测试:

    1. insert into kfc values(1,'zhangsan',123456,'钓鱼');
    2. select * from kfc;
    3. insert into kfc (name,cardid,hobby) values('lisi',456789,'学习');
    4. select * from kfc;

     四:数据表高级操作 

    4.1克隆表——将数据表的数据记录生成到新的表中

    4.1.1先创建再导入

    1. #通过like方法,复制kfc表结构生成kfc01表
    2. create table kfc01 like kfc;
    3. #导入数据
    4. insert into kfc01 select * from kfc;

     4.1.2创建的时候同时导入

    create table kfc02 (select * from kfc);

    1. #获取数据表的表结构、索引等信息
    2. show create table kfc01\G

     4.2清空表——删除表内的所有数据

    4.2.1delete删除

    DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录 

    1. #delete from 表名;
    2. delete from kfc;

    删除类型小结:

    1. drop table table_name
    2. 属于DDL
    3. 不可回滚(无法回复)
    4. 不可带where
    5. 表内容和结构删除
    6. 删除速度快
    7. truncate table table_name
    8. 属于DDL
    9. 不可回滚
    10. 不可带where
    11. 表内容删除
    12. 删除速度快
    13. delete from table_name
    14. 属于DML
    15. 可回滚(可恢复)
    16. 可带where
    17. 表结构在,表内容要看where执行的情况
    18. 删除速度慢,需要逐行删除
    19. 不再需要一张表的时候用drop
    20. 想删除部分数据行时候,用delete,并且带上where子句
    21. 保留表而删除所有数据的时候用truncate
    22. 删除速度:drop > truncate > delete
    23. 安全性:delete 最好

     4.3创建临时表

    临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表

    1. ##添加临时表kfc03
    2. create temporary table kfc03 (
    3. id int(4) zerofill primary key auto_increment,
    4. name varchar(10) not null,
    5. cardid int(18) not null unique key,
    6. hobby varchar(50));
    7. ## 查看当前库中所有表
    8. show tables;
    9. ##在临时表中添加数据
    10. insert into kfc03 values(1,'zhangsan',123456,'running');
    11. ##查看当前表中所有数据
    12. select * from kfc03;
    13. ##退出数据库
    14. quit
    15. ##重新登录后进行查看
    16. mysql -u root -p
    17. ##查看之前创建的临时表中所有数据,发现已经被自动销毁
    18. select * from test03;

    int(4)zerofill:表示若数值不满4位数,则前面用"0"填充,例:0001

    auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次

    unique key:表示此字段唯一约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键 

    not null:表示此字段不允许为NULL

    五:总结

    本章我们学习了数据库的基本操作以及基本命令,数据库管理的SQL语句:DDL、DML、DQL、DCL。如何进行增删改查,在进行数据库操作时,指令后要加分号; 

  • 相关阅读:
    Vue3属性绑定方式分析
    Golang 调度器 GPM模型
    分词器与词表
    阿里云国际站如何进行实名登记?
    经典面试题 | 讲一讲 JVM 的组成
    写技术博客的一些心得分享
    总结C++单例模式
    HTML爱心特效代码
    vue+elementUI
    Java中的强引用、弱引用
  • 原文地址:https://blog.csdn.net/qq_44239779/article/details/126852362