关闭

mysql 表的操作

标签: mysql索引-视图-约束
230人阅读 评论(0) 收藏 举报
分类:

1.创建一个student表:

    CREATE TABLE `student` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) DEFAULT NULL,
      `age` int(11) DEFAULT '18',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

执行后:

2.查看表的对象信息


    //在student表上右击,选对象信息,然后点击DDL查看student表的对象信息,如下:student表的对象信息
    CREATE TABLE `student` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) DEFAULT NULL,
      `age` int(11) DEFAULT '18',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

如下图:

3.添加sex列


    //1.alter table xxx add  xxx xxx ;  第一个xxx是表明,第二个是xxx:要添加的列,第三个是:列的属性。注意:添加完后记住要查看表的对象信息是否添加成功
    alter table student add  sex int(10) ;

    //2.刷新,查看表的对象信息:
    CREATE TABLE `student` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) DEFAULT NULL,
      `age` int(11) DEFAULT '18',
      `sex` int(10) DEFAULT NULL,  //已添加sex字段
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

执行sql语句:

4.修改sex列

    //1.alter table 表名 MODIFY 要修改列名 要修改列的类型;
    alter table student MODIFY sex char(10);

    //2.刷新,查看表的对象信息:
    CREATE TABLE `student` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) DEFAULT NULL,
      `age` int(11) DEFAULT '18',
      `sex` char(10) DEFAULT NULL,//已将int修改成char
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

5.删除sex列

    //1.alter table 表名 drop 列名;
    alter table student drop  sex;

    //2.刷新,查看表的对象信息:
    CREATE TABLE `student` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) DEFAULT NULL,
      `age` int(11) DEFAULT '18',
                                //已添加sex字段
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

约束

6.给name添加唯一约束

    //1.ALTER TABLE  表名 ADD unique(列名);
    ALTER TABLE `student` ADD unique(`name`);

    //2.刷新,查看表的对象信息:
    CREATE TABLE `student` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) DEFAULT NULL,
      `age` int(11) DEFAULT '18',
      `sex` int(10) DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `name` (`name`) //添加了唯一约束
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

添加外键约束

    //alter table 表名 add constraint 外键名 foreign key(外键字段名) REFERENCES 外表表名(外表主键字段名);
    alter table student add constraint key_dept_id foreign key(dept_id) REFERENCES dept(id);

视图

7.创建视图

    //create or REPLACE view 视图名 AS SELECT 该视图要返回的列 from 表名 where age>10
    create or REPLACE view v_student AS SELECT name,age from student

创建后如图:

8.查询创建视图

    //SELECT * from 视图名;
    SELECT * from v_student;

9.删除创建的视图

    //drop view 视图名;
    drop view v_student;

索引

10.给sex创建索引

    //CREATE INDEX 索引名 ON 表名 (列名);
    CREATE INDEX index_student ON student (sex);

    //2.刷新,查看表的对象信息:
    CREATE TABLE `student` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) DEFAULT NULL,
      `age` int(11) DEFAULT '18',
      `sex` int(10) DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `name` (`name`),
      KEY `index_student` (`sex`)// 创建了一个index_student索引
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

11.查看表的索引

    //SHOW INDEX in 表名
    SHOW INDEX in student
    //SHOW INDEX from 表名
    SHOW INDEX from student

执行后如下图:

12.删除在sex列创建的索引

    //第一种(简单,推荐):alter table 表名 drop index 索引名
    alter table student drop index index_student

    //第二种:DROP index 索引名 ON 表名 (列名);
    DROP index `index_student` ON `student` (sex);

执行后如下图:

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:56129次
    • 积分:1081
    • 等级:
    • 排名:千里之外
    • 原创:47篇
    • 转载:9篇
    • 译文:1篇
    • 评论:26条
    文章分类
    最新评论