您现在的位置是:首页 >学无止境 >SQL语句之DDL语言网站首页学无止境

SQL语句之DDL语言

何中应 2024-07-24 06:01:03
简介SQL语句之DDL语言

说明:DDL(Data Definition Language,数据定义语言),用来定义数据库对象(数据库、表),包括了数据库和表的创建、查询、使用和删除操作。

一、数据库操作

新安装的数据库,默认有以下四个数据库,可输入下面的SQL语句查看

# 查看所有数据库
show databases ;

在这里插入图片描述

创建

创建一个名称为“db_test”的数据库;

create database db_test;

使用

使用db_test数据库,可以理解为切换到某个数据库内;

use db_test;

查询

(1)查询所有的数据库,可以看到我们刚刚新加的数据库;

show databases;

在这里插入图片描述

(2)查询当前的数据库

# 使用db_test数据库
use db_test;

select database();

在这里插入图片描述

删除

删除db_test数据库

drop database db_test;

show databases;

在这里插入图片描述

值得一提的是,如果创建数据库时数据库已存在,或者删除数据库时数据库不存在,执行SQL语句会失败。可以在创建或删除数据时,增加判断。表示如果数据库不存在,则创建;如果数据库存在,则删除,来避免SQL语句执行失败。

如果数据库不存在,创建数据库

create database if not exists db_test;

如果数据库存在,删除数据库

drop database if exists db_test;

二、表操作

约束

在设计表时,我们常常要用到约束,比如身份证号码唯一、姓名不能为空、默认为0等等;数据库中提供了以下五种约束,可在SQL语句中使用,表明设置该字段为对应的约束;

非空约束(not null):限制该字段不能为null;

唯一约束(unique):保证字段的所有数据都是唯一、不重复的;

主键约束(primary key):主键是一行数据的唯一标识,要求非空且唯一,可用auto_increment,即数字自增;

默认约束(default):保存数据时,如果未指定该字段值,则采用默认值;

外键约束(foreign key):让两张表的数据建立连接,保证数据的一致性和完整性;

创建

创建一个学生表:

学号:主键,字符长度为10;

姓名:非空,字符长度为6;

性别:字符长度为2,默认未知;

手机号:非空、唯一,字符长度为11;

入学日期:可为空,日期类型

use db_test;

create table tb_stu(
    stu_id char(10) primary key comment '学号',
    name varchar(6) not null comment '姓名',
    gender char(2) default '未知' comment '性别',
    phone char(11) not null comment '手机号',
    join_date date comment '入学日期'
) comment '学生表';

注:comment为注释,加在字段后面为字段的注释,加在表后面为表的注释;
在这里插入图片描述

修改

(1)添加字段:添加年龄(age)、家庭地址(address)字段。修改后,可用SQL语句(desc 表名)查看表结构,看修改是否成功;

alter table tb_stu add age tinyint comment '年龄';

alter table tb_stu add address varchar(50) comment '家庭住址';

在这里插入图片描述

(2)修改字段类型:修改家庭住(address)类型为char(20);

alter table tb_stu modify address char(20) comment '家庭地址';

在这里插入图片描述
(3)修改字段名和字段类型:修改家庭住址(Address)字段名为籍贯,类型改为varchar(10);

alter table tb_stu change address origin varchar(10) comment '籍贯';

在这里插入图片描述

(4)删除字段:删除年龄(age)字段;

alter table tb_stu drop column age;

在这里插入图片描述

(5)修改表名:修改表名(tb_stu)为table_stu;

# 修改表名(tb_stu)为table_stu;
rename table tb_stu to table_stu;

# 显示当前数据下的所有表;
show tables;

在这里插入图片描述

查询

(1)查询当前数据库所有表:先再建一张表(tb_emp),查询当前数据库的所有表;

show tables;

在这里插入图片描述

(2)查询表结构:查看table_stu表的结构;

desc table_stu;

在这里插入图片描述

(3)查询建表语句:查看table_stu表的建表语句;

show create table table_stu;

在这里插入图片描述

删除

删除table_stu表;

drop table table_stu;

在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。