0
点赞
收藏
分享

微信扫一扫

MySQL数据库中DDL 数据库定义语言

小桥流水2016 2022-03-30 阅读 84
mysql

DDL :数据库定义语言,操作数据库对象的,比如数据库对象:表,表有行有列,行,就是数据记录;列:属性(字段)

三个语句: CREATE 语句: 创建对象 ,比如,创建表
           ALTER 语句:改变修改对象的,比如,修改表
           DROP 语句: 删除对象的,比如:删除表,删除用户,删除数据库
           
 工作中:使用情况(开发: DDL 定义数据库 -- 》DML 操作数据 --》DQL 查询数据)
                 (测试: 编写测试计划,方案,用例,做测试准备工作,待代码提交至测试,
                   执行测试 -- 》DQL ((DML)))

-- create 语句

创建数据库:  CREATE DATABASE 数据库名;

CREATE DATABASE TEST0307;

SHOW DATABASES;  -- 命令显示数据库情况

USE test0307;  -- use 数据库名,选择具体的数据库操作,相当于在工具中用鼠标直接选择

-- 创建表:

CREATE TABLE 表名(列名1 数据类型(size),
                  列名2 数据类型(size),
                  ...
                  DATE);

-- desc 命令,查看表的结构,即表中列的信息

-- alter 修改,改变表

-- 加列

ALTER TABLE 表名 ADD(列名 数据类型(),
                     列名2 数据类型(),
                     ...)

-- 改列:一般都是用来修改列的取值范围的,modify
   -- 如果需要列的名字,使用 change ,小心谨慎

   # 修改列的取值范围,扩大存储范围
     ALTER TABLE t112 MODIFY id2 FLOAT(8,3);

   # 修改列的数据类型

     ALTER TABLE t112 MODIFY id2 VARCHAR(20);

   # 修改列名

     ALTER TABLE t112 CHANGE id2  idid22  VARCHAR(20);  -- 会影响到新增数据以及调用这个表的列的程序代码

# 修改表的名字: rename

ALTER TABLE 表名 RENAME 新表名;

ALTER TABLE t112 RENAME tt118;

-- 删除列

ALTER TABLE 表名 DROP 列名;

ALTER TABLE yp DROP yp_scrq;

----------------------------  DROP 语句 删除数据库对象

-- 删除表

DROP TABLE 表名; -- 谨慎使用,使用之前必须备份数据

DROP TABLE tt118;

-- 删除数据库

DROP DATABASE 数据库名;

DROP DATABASE TEST0307;   -- 没有授权,不要使用

面试: DROP 、 DELETE  的区别, DELETE 删除的是表中数据,删除的时候是一条一条删除,即使不加查询条件,对表
       结构没有影响。
       DROP :删除的是表结构和表数据
       
       DROP 删除要比 DELETE 效率高。

------------------------------------ 约束 (了解)--------------------------------

约束:用来限制什么样的数据可以进入表中,什么样的数据无法写入,直接影响的就是 DML 语句的执行;

4种常见的约束:非空约束、唯一约束、主键约束、外键约束(完整性约束)

约束一般建议在创建表的时候创建上去,约束都是添加在列上面的。

1、非空约束:如果有一列添加了非空约束,那么这一列的值不能为空值  NULL ,即,插入数据的时候, NULL 无法写入

例如:公民信息表:身份证号、姓名、年龄、性别、电话

DROP TABLE human;
CREATE TABLE human(
 id CHAR(18),
 NAME VARCHAR(30) NOT NULL,
 age INT(3),
 sex CHAR(2),
 phone CHAR(11));

2、 唯一约束:如果有一列添加了唯一约束,那么这一列如果有值的话,这个值必须唯一,不能和该列其它值重复;
但是这个列可以为空值。
    即:这个列可以没有值,为 NULL ,但是如果有值,必须唯一不得重复
    
    
DROP TABLE human;
CREATE TABLE human(
 id CHAR(18),
 NAME VARCHAR(30),
 age INT(3),
 sex CHAR(2),
 phone CHAR(11) UNIQUE);

3、主键约束:是非空约束和唯一约束的集合,这个列既不能为空,也不能重复 (结论:用主键信息作为查询条件,有且只有一条结果出来。)

DROP TABLE human;
CREATE TABLE human(
 id CHAR(18) PRIMARY KEY,
 NAME VARCHAR(30),
 age INT(3),
 sex CHAR(2),
 phone CHAR(11) UNIQUE);

4、外键约束,也叫完整性约束:涉及两个表,其中一个是父表,一个子表:这两个表之间存在继承和从属关系。

如果子表中一个列添加了外键约束,这个列的值必须要在父表中先存在,即子表的数据要在父表中 能找到,数据一般

都是编号,不会将名称作为外键。

语法: FOREIGN KEY(子表的列名) REFERENCES 父表的表名(父表列名)

举报

相关推荐

0 条评论