• MySQL的表操作


    表介绍:

    • 表就相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段:

    • 例:
    • id,name,age,sex
      1,yj,18,male
      2,lijie,20,male
      3,yong,female
      
      id,name,age,sex称为字段,其余的,一行内容称为一条记录

    建表语法:

    #建表语法#
    create table curriculum( id int, #数据类型为整数 name char(12), #长度为12 字段命3 类型[(宽度) 约束条件] ); #放在中括号里的内容可不写
    mysql> create  database python;    #新建数据库名为python
    Query OK, 1 row affected (0.04 sec)
    mysql> use python;    #切换数据库
    Database changed
    mysql>  create table staff_info (id int,name varchar(50),age int(3),sex enum('male','female'),phone bigint(11),job varchar(11));
    Query OK, 0 rows affected (0.30 sec)    #建表
    
    mysql> show tables;    #查看当前数据库下的表
    +------------------+
    | Tables_in_python |
    +------------------+
    | staff_info       |
    +------------------+
    1 row in set (0.04 sec)
    
    mysql> desc staff_info;    #查看表
    +-------+-----------------------+------+-----+---------+-------+
    | Field | Type                  | Null | Key | Default | Extra |
    +-------+-----------------------+------+-----+---------+-------+
    | id    | int(11)               | YES  |     | NULL    |       |
    | name  | varchar(50)           | YES  |     | NULL    |       |
    | age   | int(3)                | YES  |     | NULL    |       |
    | sex   | enum('male','female') | YES  |     | NULL    |       |
    | phone | bigint(11)            | YES  |     | NULL    |       |
    | job   | varchar(11)           | YES  |     | NULL    |       |
    +-------+-----------------------+------+-----+---------+-------+
    
    mysql> select id,name,sex from staff_info;
    Empty set (0.03 sec)
    
    mysql> select * from staff_info;
    Empty set (0.02 sec)
    创建表:
    mysql> insert into staff_info (id,name,age,sex) values (1,'YJ','18','female');
    Query OK, 1 row affected (0.16 sec)    #插入数据
    
    mysql> insert into staff_info (id,name,age,sex) values (2,'sys','20','male');
    Query OK, 1 row affected (0.09 sec)
    
    mysql> insert into staff_info (id,name,age,sex) values (3,'fyj','21','male');
    Query OK, 1 row affected (0.05 sec)
    
    mysql> select * from staff_info;    #查看表
    +------+------+------+--------+-------+------+
    | id   | name | age  | sex    | phone | job  |
    +------+------+------+--------+-------+------+
    |    1 | YJ   |   18 | female |  NULL | NULL |
    |    2 | sys  |   20 | male   |  NULL | NULL |
    |    3 | fyj  |   21 | male   |  NULL | NULL |
    +------+------+------+--------+-------+------+
    3 rows in set (0.02 sec)
    插入数据:
    insert into 表 values (值1,值2,值3);
        # 这张表有多少的字段,就需要按照字段的顺序写入多少个值
    insert into 表 values (值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
        # 一次性写入多条数据
    insert into 表 (字段1,字段3 ) values (值1,值3);
        # 指定字段名写入,可以任意的选择表中你需要写入的字段进行
    写入数据的方式
    desc 表名;
        能够查看到有多少个字段类型长度,看不到表编码,引擎,具体的约束信息只能看到一部分
    show create table 表名;
        能查看字段类型长度编码引擎约束
    查看表结构的两种方式
    mysql> describe staff_info;
    +-------+-----------------------+------+-----+---------+-------+
    | Field | Type                  | Null | Key | Default | Extra |
    +-------+-----------------------+------+-----+---------+-------+
    | id    | int(11)               | YES  |     | NULL    |       |
    | name  | varchar(50)           | YES  |     | NULL    |       |
    | age   | int(3)                | YES  |     | NULL    |       |
    | sex   | enum('male','female') | YES  |     | NULL    |       |
    | phone | bigint(11)            | YES  |     | NULL    |       |
    | job   | varchar(11)           | YES  |     | NULL    |       |
    +-------+-----------------------+------+-----+---------+-------+
    6 rows in set (0.00 sec)
    
    mysql> desc staff_info;
    +-------+-----------------------+------+-----+---------+-------+
    | Field | Type                  | Null | Key | Default | Extra |
    +-------+-----------------------+------+-----+---------+-------+
    | id    | int(11)               | YES  |     | NULL    |       |
    | name  | varchar(50)           | YES  |     | NULL    |       |
    | age   | int(3)                | YES  |     | NULL    |       |
    | sex   | enum('male','female') | YES  |     | NULL    |       |
    | phone | bigint(11)            | YES  |     | NULL    |       |
    | job   | varchar(11)           | YES  |     | NULL    |       |
    +-------+-----------------------+------+-----+---------+-------+
    6 rows in set (0.00 sec)
    
    
    #show create table
    mysql> show create table staff_info;
    +------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table      | Create Table                                                                                                                                                                                                                                                                  |
    +------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | staff_info | CREATE TABLE `staff_info` (
      `id` int(11) DEFAULT NULL,
      `name` varchar(50) DEFAULT NULL,
      `age` int(3) DEFAULT NULL,
      `sex` enum('male','female') DEFAULT NULL,
      `phone` bigint(11) DEFAULT NULL,
      `job` varchar(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    +------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.04 sec)
    desc和show create table
    1. 修改表名:
          ALTER TABLE 表名
                          RENAME 新表名;
    mysql> alter table staff_info
        -> rename xxb;
    Query OK, 0 rows affected (0.34 sec)
    
    2. 增加字段:
          ALTER TABLE 表名
                          ADD 字段名  数据类型 [完整性约束条件…],
                          ADD 字段名  数据类型 [完整性约束条件…];
    mysql> alter table xxb
        -> add hh char(12);
    Query OK, 0 rows affected (0.41 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    3. 删除字段:
          ALTER TABLE 表名
                          DROP 字段名;
    mysql> alter table xxb
        -> drop job
        -> ;
    Query OK, 0 rows affected (0.53 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    4. 修改字段:
          ALTER TABLE 表名
                          MODIFY  字段名 数据类型 [完整性约束条件…];
          ALTER TABLE 表名
                          CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
          ALTER TABLE 表名
                          CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
    
    5.修改字段排列顺序/在增加的时候指定字段位置
        ALTER TABLE 表名
                         ADD 字段名  数据类型 [完整性约束条件…]  FIRST;
        ALTER TABLE 表名
                         ADD 字段名  数据类型 [完整性约束条件…]  AFTER 字段名;
        ALTER TABLE 表名
                         CHANGE 字段名  旧字段名 新字段名 新数据类型 [完整性约束条件…]  FIRST;
        ALTER TABLE 表名
                         MODIFY 字段名  数据类型 [完整性约束条件…]  AFTER 字段名;
    修改表结构语法:

    建立表之间的关系:

    • 一对多或称为多对一
    • 一个老师可以教多个班级
    =====================多对一=====================
    create table press(
    id int primary key auto_increment,
    name varchar(20)
    );
    
    create table book(
    id int primary key auto_increment,
    name varchar(20),
    press_id int not null,
    foreign key(press_id) references press(id)
    on delete cascade
    on update cascade
    );
    
    
    insert into press(name) values
    ('北京工业地雷出版社'),
    ('人民音乐不好听出版社'),
    ('知识产权没有用出版社')
    ;
    
    insert into book(name,press_id) values
    ('九阳神功',1),
    ('九阴真经',2),
    ('九阴白骨爪',2),
    ('独孤九剑',3),
    ('降龙十巴掌',2),
    ('葵花宝典',3)
    ;
    
    • 服务和机器
      一个服务可能被部署到多台机器上,一台机器上也可以部署多个服务
      
      学生和课程
      一个学生可以选择多门课程,一门课程也可以被多个学生选择

    多对多

    • 三张表:出版社,作者,书
    • 多对多:一个作者可以写多本书,一本书也可以有多个作者,双向的一对多,即多对多

    删除表:

    drop table 表名:

  • 相关阅读:
    linux 解压文件
    linux 文件夹操作
    adb 安装apk报INSTALL_FAILED_NO_MATCHING_ABIS
    Android Tab类型主界面 Fragment+TabPageIndicator+ViewPager
    Android 图表
    Android Manifest文件
    BroadcastReceiver介绍
    Android dimen
    Android Dialog
    Android 获取加速传感器的值,并去除杂音
  • 原文地址:https://www.cnblogs.com/yjtxin/p/12629893.html
Copyright © 2020-2023  润新知