4、DDL语言

4、DDL语言

Data Define Language 数据定义语言

包括:①库的管理:创建(create)、修改(alter)、删除(drop)

   ②表的管理:创建(create)、修改(alter)、删除(drop)

 

4.1库的管理

4.1.1库的创建:

create databaseif not exists)库名;

4.1.2库的修改:一般不改

 

4.1.3库的删除:

drop database (if exists) 库名;

 

4.2表的管理

4.2.1表的创建:

create table 表名(
    列名 列的类型 [(长度) 约束],
    ……
);

例1:创建book表

create table book(
    id int,
    bname varchar(20),
    authorid int,
    publishidate dateime
);

 

4.2.2表的修改:

alter table 表名
add|drop|modify|change|reanme to 列名 [列类型 约束];

①修改列名:

alter table 表名 change 旧列名,新列名 类型;

②修改列的类型或约束

alter table 表名 modify 列名 新类型;

③添加新列

alter table 表名 add 新列 类型;

④删除列

alter table 表名 drop 列名;

⑤修改表名

alter table 表名 rename to 新表名;

 

4.2.3表的删除

drop table if exists 表名;

 

4.2.4表的复制

仅复制表的结构:

create table copy like 旧表;

复制表的结构和数据:

create table copy
select * from 旧表;

 

4.3常见的数据类型

数值型:整型(int)、浮点型(float(M,D)、double(M,D))、定点型(dec(M,D)、decimal(M,D))  #M表示整数部位+小数部位,D表示小数部位;定点型精度较高

字符型:较短文本(char、varchar)、较长文本(text、blob)

日期型:date、time、datetime、year、month、date

 

4.4常见的约束

约束的含义:一种限制,用于限制表中的数据,为了保证表中数据的准确性和可靠性

分类:①not null:非空,用于保证字段的值不能为空(如姓名,学号等)

   ②default:默认,用于保证字段有默认值(如性别)

   ③primary key:主键,用于保证字段具有唯一性,非空(如学号,员工编号)

   ④unique:唯一,用于保证字段具有唯一性,可以为空(如座位号)

   ⑤check:检查,(如年龄,性别)

   ⑥foreign key:外键,用于限制两表的关系,保证字段值来自主表的关联列的值,要求在从表添加外键约束,用于引用主表中的某列的值(如学生表的专业编号)

主键和唯一的区别:主键具有唯一性,非空,一个表中只能有一个,允许组合

         唯一具有唯一性,可以为空,一个表中可以有多个,允许组合

 

4.4.1创建表时添加约束

添加列级约束:直接在字段和类型后面添加约束即可

       支持的约束:非空、默认、主键、唯一

添加表级约束:在各字段的最下面添加 constraint 约束名 约束类型(字段名)

例2:

复制代码
create table stuinfo(
    id int,
    stuname varchar(20),
    age int,
    majorid int,
    constraint pk primary key(id),
    constraint uq unique(seat),
    constraint fk_major foreign key(majorid) referece major(id)
);
复制代码

 

4.4.2修改表时添加约束

添加列级约束:

alter table 表名 modify 列名 类型 新约束;

添加表级约束:

alter table 表名 add constraint 约束名 约束类型(字段名);

 

4.4.3修改表时删除约束

alter table 表名 drop 约束;

 

4.5标识列(自增长列)

 自增长列的定义:可以不用手动插入值,系统默认的序列值

关键字:auto_increment;  #设置自增长列

     set auto_increment_increment=步长;  #设置步长

 

posted @   luluylulu  阅读(195)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示