mysql表的管理

MySQL表的管理

数据库服务器、数据库、表和记录的关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kGGaKpDB-1589891318350)(C:\Users\liuzh\AppData\Roaming\Typora\typora-user-images\1589722528949.png)]

所以我们在MySQL服务器上会存有很多的数据库,在每个数据库下都会有很多的表,在每个表中才会存有具体的数据!

例如我们有个数据库叫 LPL,在库中有个叫hero的表,表中有如下数据:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-msnBoViC-1589891318352)(C:\Users\liuzh\AppData\Roaming\Typora\typora-user-images\1589723776601.png)]

字段和记录

那么在这个表中最顶上的一行,我们称之为字段 ,这个表中一个有3个字段:ID 英雄 职业

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tgnrNwse-1589891318354)(C:\Users\liuzh\AppData\Roaming\Typora\typora-user-images\1589723932654.png)]

字段下面的内容我们称之为记录,一行就是一条记录,表中一共有10条记录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p37TneJB-1589891318356)(C:\Users\liuzh\AppData\Roaming\Typora\typora-user-images\1589723992173.png)]

字段决定了我们每一列所存储数据的类型和约束条件

比如ID列 我们给他的字段类型就为整型数字,当然我们也可以加上一些约束条件,比如这一列约束为非空,那么就必须要写入一个值!

约束条件不是必须要定义的,但是字段类型必须要定义!

常用的字段类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4kcNVk9N-1589891318359)(C:\Users\liuzh\AppData\Roaming\Typora\typora-user-images\1589724345956.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bajnhjuk-1589891318361)(C:\Users\liuzh\AppData\Roaming\Typora\typora-user-images\1589724350933.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xst6sNMc-1589891318363)(C:\Users\liuzh\AppData\Roaming\Typora\typora-user-images\1589724356544.png)]

常见的字段约束条件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hCO2qHfi-1589891318364)(C:\Users\liuzh\AppData\Roaming\Typora\typora-user-images\1589724383487.png)]

表的基本管理

创建一个表

创建表的语句格式为:

create table 表名(
字段名1  类型  [字段约束],
字段名2  类型  [字段约束],
…
);

我们来创建一个学生的信息表stu,包含内容要有,学号、姓名、性别

  • 登录数据库

    [root@node-161 ~]# mysql -uroot -pabcd1234
    Warning: Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.6.10 Source distribution
    
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> 
    
  • 创建数据库1801A

    mysql> create database 1801A;
    Query OK, 1 row affected (0.00 sec)
    
  • 进入1801A库中

    mysql> use 1801A;
    Database changed
    
  • 创建stu表

    mysql> create table stu( ID int(10),姓名 char(10),性别 char(5));
    Query OK, 0 rows affected (0.01 sec)
    
  • 查看表是否被创建成功

    mysql> show tables;
    +-----------------+
    | Tables_in_1801A |
    +-----------------+
    | stu             |
    +-----------------+
    1 row in set (0.00 sec)
    

    我们可以看到在1810A库中就一张表stu,这张就是我们刚刚创建的表

  • 查一下stu表的结构

    mysql> desc stu;
    +--------+----------+------+-----+---------+-------+
    | Field  | Type     | Null | Key | Default | Extra |
    +--------+----------+------+-----+---------+-------+
    | ID     | int(10)  | YES  |     | NULL    |       |
    | 姓名   | char(10) | YES  |     | NULL    |       |
    | 性别   | char(5)  | YES  |     | NULL    |       |
    +--------+----------+------+-----+---------+-------+
    3 rows in set (0.00 sec)
    

重命名一张表

  • 语法格式:

    alter table 表名 rename [to] 新表名;
    或者
    rename table 旧表名 to 新表名;
    
  • 例子:

    rename table stu to student;
    

删除一张表

mysql> drop table wg;

向表中插入记录

  • 语法格式为:

    • 全部列插入数据的方式

      insert into 表名 values(字段值1,字段值2,字段值3,..);
      
    • 部分列插入的方式

      insert into 表名(字段名1,字段名2,...) values(字段值1,字段值2,..) ;
      
  • 向stu表中插入一条记录

    mysql> insert into stu values(1001,'周睿杰','男');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> insert into stu values(1002,'樊玉柱','男');
    

查询表中的记录

  • 查询记录我们都会使用select

    select的基本语法格式为:

    select  查询字段 from 表名 where 条件;
    

    我们可以用*****来代表所有字段,查询例子如下:

    • 查询stu表中所有的字段的数据,就是所有的数据,数据表中数据量比较大的时候,这个会查询很长时间

      mysql> select * from stu;
      +------+-----------+--------+
      | ID   | 姓名      | 性别   |
      +------+-----------+--------+
      | 1001 | 周睿杰    | 男     |
      | 1002 | 樊玉柱    | 男     |
      +------+-----------+--------+
      2 rows in set (0.00 sec)
      
    • 只查询stu表中的姓名和性别

      mysql> select 姓名,性别 from stu;
      +-----------+--------+
      | 姓名      | 性别   |
      +-----------+--------+
      | 周睿杰    | 男     |
      | 樊玉柱    | 男     |
      +-----------+--------+
      2 rows in set (0.00 sec)
      

表的复制

  • 我们在创建一个新的表的时候,也可以直接复制已经存在的表来创建!这样如果有相同结构的表直接复制即可!复制分为两种情况:

    • 只复制表结构,不复制内容

      create table 新表名 like 旧表名;//只复制表结构不复制数据
      
    • 复制表的结构和内容

      create table 新表名 select * from 旧表名;
      

修改表结构

  • 我们知道通过desc语句可以查看一张表的结构,例如查看stu表的结构

    mysql> desc stu;
    +--------+----------+------+-----+---------+-------+
    | Field  | Type     | Null | Key | Default | Extra |
    +--------+----------+------+-----+---------+-------+
    | ID     | int(10)  | YES  |     | NULL    |       |
    | 姓名   | char(10) | YES  |     | NULL    |       |
    | 性别   | char(5)  | YES  |     | NULL    |       |
    +--------+----------+------+-----+---------+-------+
    3 rows in set (0.00 sec)
    
  • 通过查询我们可以看到一张表有几个字段,字段的类型和约束条件有哪些等信息!如果我们修改应该如何操作!

    • 增加一个字段

      • 语法格式

        alter table 表名 add 字段名 字段类型 [after 列名];
        
      • 给stu表增加一个年龄字段

        mysql> alter table stu add 年龄 int(3) after 性别;
        Query OK, 0 rows affected (0.04 sec)
        Records: 0  Duplicates: 0  Warnings: 0
        
    • 删除一个字段(删除一整列数据)

      • 语法格式:

        alter table 表名 drop 字段名;
        
    • 修改一个字段的类型和约束条件

      • 语法格式:

        alter table 表名 modify字段名 新字段类型;
        
      • 更改ID字段类型为varchar(8)

        mysql> alter table stu modify ID varchar(8);
        Query OK, 2 rows affected (0.08 sec)
        Records: 2  Duplicates: 0  Warnings: 0
        
    • 给字段中重命名

      • 语法格式:

        alter table 表名 change 旧字段名  新字段名 字段类型;
        
      • 更改ID 字段名为学号

        mysql> alter table stu change ID 学号 varchar(8);
        Query OK, 0 rows affected (0.00 sec)
        Records: 0  Duplicates: 0  Warnings: 0
        
    • 查询表结构

      更改后的表结构如下

      mysql> desc stu;
      +--------+------------+------+-----+---------+-------+
      | Field  | Type       | Null | Key | Default | Extra |
      +--------+------------+------+-----+---------+-------+
      | 学号   | varchar(8) | YES  |     | NULL    |       |
      | 姓名   | char(10)   | YES  |     | NULL    |       |
      | 性别   | char(5)    | YES  |     | NULL    |       |
      | 年龄   | int(3)     | YES  |     | NULL    |       |
      +--------+------------+------+-----+---------+-------+
      

      更改记录的数据,我们在查询stu表的时候,发现年龄这一列为空!我们单独来增加数据,需要用到updatae语句

查询条件where

  • 我们大多时候在查询的时候都需要做筛选,我们只需要查看符合条件的信息!例如查询所有河北的学生有哪些?年龄18岁以上的有哪些?甚至还有一些简单的统计例如 男生有多少个?女生有多少个?

​ 这些都称之为查询条件,我们只获取满足条件的数据,这就要用到where语句

  • 基本语法格式:

    select 查询字段  from 表名 where 条件;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值