• MySQL(二) 数据表的基本操作


    2 数据表的基本操作

      *数据表和数据库还有mysql三者的关系:mysql中保存了很多数据库、一个数据库中可以保存很多表。

      通常情况下,为每一个应用创建一个数据库,为每一个JavaBean创建一个数据表。

      *对数据表进行操作的前提:表是在数据库下的,所以要先确实使用哪个数据库。

      格式:USE 数据库名;

      例:针对数据库test进行数据表的基本操作

    USE test;

      

      2.1  创建数据表

      格式:CREATE TABLE 数据表名(

          字段名1  数据类型[列级别约束条件],

          字段名2  数据类型[列级别约束条件],

          字段名3  数据类型[列级别约束条件]

          );

      2.1.1 创建没有约束的student1表

    CREATE TABLE student1(
        id INT(10),
        name VARCHAR(20),
        age INT(4)
    );

      

      注意:SHOW TABLES;语句用于查询该数据库底下的所有表。

      2.1.2 创建有约束的student2表

      六大约束:主键约束,外键约束,非空约束,唯一约束,默认约束,自动增加

      (1)主键约束

      *单字段主键约束

    CREATE TABLE student2(
        id INT(10) PRIMARY KEY,
        name VARCHAR(20),
        age INT(4)
    );

      *多字段主键约束

    CREATE TABLE student2(
        id INT(10),
        name VARCHAR(20),
        age INT(4)
        PRIMARY KEY(id,name)
    );

      (2) 外键约束

      (3) 非空约束

    CREATE TABLE student2(
        id INT(10) NOT NULL,
        name VARCHAR(20),
        age INT(4)
    );

      (4) 唯一约束

    CREATE TABLE student2(
        id INT(10),
        name VARCHAR(20) UNIQUE,
        age INT(4)
    );

      (5) 默认约束

    CREATE TABLE student2(
        id INT(10),
        name VARCHAR(20),
        age INT(4) DEFAULT 20
    );

      (6) 自动增加

    CREATE TABLE student2(
        id INT(10) PRIMARY KEY AUTO_INCREMENT,
        name VARCHAR(20),
        age INT(4)
    );

      注意:一个表只能一个字段使用AUTO_INCREMENT,并且使用这个约束的字段只能是整数类型(任意的整数类型TINYINT,SMALLIN,INT,BIGINT),从1开始增加的。

            一般就是给主键使用的,自动增加,使每个主键的值都不 一样,并且不用我们自己管理,让主键自己自动生成。

      2.2查询数据表  

      2.2.1 查看表的基本结构(DESCRIBE或者DESC)  

      格式:DESCRIBE 数据表名;

      例:查看数据表student1的基本结构

    DESCRIBE student1;

      

      2.2.2 查看已经创建的数据表的建表语句  

      格式:SHOW CREATE TABLE 数据表名;

      例:查看数据表student1的建表语句

    SHOW CREATE TABLE student1;

      

      2.3 修改数据表  

      修改数据表包括:对表中字段的增加、删除、修改。关键字为ALTER  

      2.3.1 修改表名  

      格式:ALTER TABLE 旧表名

            RENAME [TO] 新表名;

      例:将数据库test中的student1表名改为student表

    ALTER TABLE student1
    RENAME TO student;

      

      2.3.2 修改表中的字段名  

      格式:ALTER TABLE 表名

           CHANGE 旧字段名 新字段名 新字段类型

      例:将student表中的name字段改为username,数据类型改为CHAR(30)

    ALTER TABLE student
    CHANGE name username CHAR(30);

      

      注意:CHANGE不仅能改变字段名,还能一并修改字段的数据类型

      2.3.3 修改表中字段的数据类型

      格式:ALTER TABLE 表名

           MODIFY 字段名 数据类型;

      例:将student表中username字段的数据类型由CHAR(30)改为VARCHAR(25)

    ALTER TABLE student
    MODIFY username VARCHAR(25);

      

      2.3.4 修改字段的排列位置

      格式:ALTER TABLE 表名

           MODIFY 字段名1 数据类型 FIRST|AFTER 字段名

      解释:“字段名1”指的是要修改为值的字段,“数据类型”指的是字段1的数据类型,“FIRST”为可选参数,指的是将字段1修改为表的第一个字段,

           “AFTER 字段名2”是指将字段1插入到字段2的后面

      例:将username字段放到字段age的后面。原字段顺序为:id username age

    ALTER TABLE student
    MODIFY username VARCHAR(25) AFTER age;

      注意:MODIFY能在排序的同时改变字段1的数据类型;使用CHANGE能在排序的同时改变字段1的字段名和数据类型

      

      2.3.5 添加字段

      格式:ALTER TABLE 表名

           ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER 已存在字段名]

      例:在student数据表中添加一个新字段grade,数据类型为FLOAT,非空约束,并且放在age字段后面

    ALTER TABLE student
    ADD grade FLOAT NOT NULL AFTER age;

      

      2.3.6 删除字段

      格式:ALTER TABLE 表名

           DROP 字段名;

      例:删除student数据表的grade字段

    ALTER TABLE student
    DROP grade;

       

      2.3.7 删除表的外键约束

      格式:ALTER TABLE 表名

           DROP FOREIGN KEY 外键约束名  

      2.3.8 更新表的存储方式

      格式:ALTER TABLE 表名

           ENGINE=更改后的存储引擎名

      2.4 删除数据表

      2.4.1 删除无关联表

      格式:DROP TABLE 表名;

      例:删除数据表student

    DROP TABLE student;

        

      2.4.2 删除被其他表关联的主表

      在有外键关联关系的两张表中,如果删除主表,那么是删不掉的,并且会报错。因为有张表依赖于他。那怎么办呢?针对这种情况,总共有两种方法:

      *先删除子表,然后再删除父表。

      *先解除外键关系,然后再删除父表。

  • 相关阅读:
    ios UIImageView
    ios UILable
    [leetCode]116. 填充每个节点的下一个右侧节点指针
    [leetCode]1002. 查找常用字符
    [leetCode]199. 二叉树的右视图
    [leetCode]784. 字母大小写全排列
    [leetCode]1297. 子串的最大出现次数
    [leetCode]1239. 串联字符串的最大长度
    1095. 山脉数组中查找目标值
    [leetCode]1235. 规划兼职工作
  • 原文地址:https://www.cnblogs.com/tcxpz/p/10012111.html
Copyright © 2020-2023  润新知