zoukankan      html  css  js  c++  java
  • 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;

     

  • 相关阅读:
    C++解析一些我们需要的数据
    C语言0数组、柔性数组使用介绍
    正点原子T100智能焊台-试用-拆机测评
    简单工厂模式、工厂模式、抽象工厂模式比较
    一次小模块的使用过程-LC12S无线模块介绍
    正点原子DS100拆解全过程-硬件工程师必备
    STM32通过rosserial接入ROS通讯开发
    Linux下实现Firewalld Net 外网端口转发至内网
    Windows中使用netsh portproxy端口转发
    低延迟网穿透工具FRP
  • 原文地址:https://www.cnblogs.com/HelloM/p/13568567.html
Copyright © 2011-2022 走看看