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 删除被其他表关联的主表

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

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

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

 

 

posted @ 2018-11-24 15:57  糖醋小瓶子  阅读(450)  评论(0编辑  收藏  举报