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);
执行后如下图: