DDL(Data definition language)

DDL(Data definition language)

数据定义语言,用于描述数据库中要存储的现实世界实体的语言。

操作

数据库

建立,修改,删除:create/alter/dorp database

建立,修改,删除:create/alter/drop table

清空表:truncate table

重命名表:rename table

视图

建立,修改,删除:create/alter/drop view

索引

建立,删除:create/drop index

注意:当我们删除了这里的索引,不会对数据造成影响,但是,会对sql执行计划造成影响

关于视图

1, 什么是视图-view

视图是一个自定义的查询结果表文件记录

用视图简化大表查询难度

2, 创建视图

create view 视图名称 as 查询语句

create view my_user3 as select * from user2;

视图的数据是脱离原表的

视图的数据也可以被增删改查,但是改了之后不影响原表数据

只能将查询结果作为视图创建出来

3,删除视图

drop view 视图名称 as 查询语句

4, 修改视图

alter view 视图名称 as 查询语句

alter view my_user3 as select * from user2;

5, 视图的作用

(1),面向视图查询,可以提高查询效率

select emp.ename, emp.deptno, dept.dname

from emp join dept

on emp.deptno = dept.deptno
create view myview as

select emp.ename, emp.deptno, dept.dname

from emp join dept

on emp.deptno = dept.deptno;
从上图的myview中抽取数据

select * from myview; 

(2),隐藏细节

面向视图查询,不知道该视图背后的查询的真实表是哪些。

注意:视图里面的select语句不能有子查询

关于表

清空表:tuncate table 表名

truncate table course;

 

重命名表:rename table 表名 to 新表名

rename table course to coursesee;

创建表的三种模式

1,正常创建

create table user() {

id int primary key not null,

name varchar(100) not null

}

2,在查询出的新表的基础上创建表

create table user3 as select * from s;

 

3,create table user4 like user3;

修改表

1,删除表的多列

ALTER TABLE t2 DROP COLUMN c, DROP COLUMN d;

2,修改表的引擎

ALTER TABLE t1 ENGINE = InnoDB;

1,更改字符集

ALTER TABLE t1 CHARACTER SET = utf8;

更多操作详见官网api:

https://dev.mysql.com/doc/refman/8.0/en/alter-table.html

删除表

DROP TABLE IF EXISTS `t_customer`;

删除一个或多个表,你必须具有drop每个表的特权。

ALTER更改操作

//添加主键

alter table c add ind int(2) unsigned not null auto_increment,add primary key(ind);

 

//添加一个新列

alter table tablename(表名) add fieIdname(列名) fieldtyle(列的类型)

alter table c add cno int;

//删除列

alter table table_name(表名) drop field_name(列名)

如:alter table c drop column cno;

//修改原字段名称及类型

ALTER TABLE tablename CHANGE old_field_name new_field_name field_type;

alter table s change sname studentname char(10);

 

alter table s change studentname studentname varchar(100) not null default 'null';

 

//重命名表

alter table c rename course;

 

//添加索引

mysql>ALTER TABLE tablename ADD INDEX 索引名 (字段名1[,字段名2……]);

alter table c add index ind_cteacher(cteacher);

 

//添加关键字搜索

alter table s add primary key(sno);

 

//加唯一限制条件的索引

alter table c add unique uni_ind(ind);

 

//删除某个索引

alter table c drop index uni_cname;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值