02--数据定义语言DDL

这篇具有很好参考价值的文章主要介绍了02--数据定义语言DDL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、数据定义语言DDL

1.1 操作数据库-DDL

创建数据库

create database 数据库名称;

02--数据定义语言DDL,MySQL,mysql,数据库

创建数据库,并指定字符集

create database 数据库名称 character set 字符集名;

02--数据定义语言DDL,MySQL,mysql,数据库

查询所有数据库的名称

show databases;

02--数据定义语言DDL,MySQL,mysql,数据库

查询某个数据库的字符集:查询某个数据库的创建语句及字符集

show create database 数据库名称;

02--数据定义语言DDL,MySQL,mysql,数据库

修改数据库的字符集

alter database 数据库名称 character set 字符集名称;

02--数据定义语言DDL,MySQL,mysql,数据库

删除数据库

drop database 数据库名称;

02--数据定义语言DDL,MySQL,mysql,数据库

使用数据库

use 数据库名称;

02--数据定义语言DDL,MySQL,mysql,数据库

查询当前正在使用的数据库名称

select database();

02--数据定义语言DDL,MySQL,mysql,数据库

查看数据库版本号

select version();

02--数据定义语言DDL,MySQL,mysql,数据库

1.2 操作表-DDL

1.2.1 什么是表

表:table表:table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。

一个表包括行和列:

行:被称为数据/记录(data)

列:被称为字段(column)

每一个字段应该包括哪些属性?

字段名、数据类型、相关的约束。

1.2.2 字段名命名规范

只能是字母、数字、_、$组成。

不能以数字开头。

不能使用关键字和保留字。

不区分大小写。

不能使用-

1.2.3 数据类型

数据类型

说明

int

整数类型,例如 : age、默认为int(11),但是不能存储11位

double

小数类型,例如 : score double(5,2) 111.11 5为有效数字位数,2为小数点后位数

date

日期,只包含年月日,yyyy-MM-dd

datetime

日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss

timestamp

时间戳类型,包含年月日时分秒 yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值

varchar

可变字符 name varchar(20)

char

不可变字符 name varchar(20)

VARCHAR、CHAR

varchar:表示的长度可变的字符串。最大长度不能超过定义字段的时候长度。

char:长度固定。

name varchar(20):name 存贮数据的长度是20以内的,lisi 表示4个长度 ,zhangsan:8个长度 江一燕:3个长度

name char(20):lisi 当前的长度4,剩下的是空格 。

问题:char 的性能好。 varchar可以节省空间。通常时候,我们使用varchar。

使用char的情况。当某个字段的长度固定的时候,可以采用char。例如身份证号、性别、手机号。

1.2.4 创建表

语法:

create table 表名(
  列名(字段名) 数据类型,
  列名(字段名) 数据类型,
  列名(字段名) 数据类型
  ...
);

示例:

create table student(
	id int,
  name varchar(20),
  sex char(1),
  birth date,
  money double
);

02--数据定义语言DDL,MySQL,mysql,数据库

注意事项:最后一列,不需要加逗号(,)

查看建表语句:

show create table student;

02--数据定义语言DDL,MySQL,mysql,数据库

1.2.5 查询表

查询某个数据库中所有的表名称

show tables;

02--数据定义语言DDL,MySQL,mysql,数据库

查询表结构

desc 表名;

02--数据定义语言DDL,MySQL,mysql,数据库

1.2.6 修改表

添加列
语法:
    alter table 表名  add 列名 数据类型 约束;
实例:
    alter table student add classes varchar(10);

02--数据定义语言DDL,MySQL,mysql,数据库

修改列类型
语法:
    alter table 表名 modify 列名 新类型;
实例:
    alter table student modify classes varchar(20);

02--数据定义语言DDL,MySQL,mysql,数据库

修改列名和类型
语法:
    alter table 表名 change 旧列名 新列名 新类型;
实例:
    alter table student change classes class varchar(10);

02--数据定义语言DDL,MySQL,mysql,数据库

删除列
语法:
    alter table 表名 drop 列名;
实例:
    alter table student drop class;

02--数据定义语言DDL,MySQL,mysql,数据库

修改表字符集
语法:
    alter table 表名 charset 字符集;
实例:
    alter table student charset gbk;

02--数据定义语言DDL,MySQL,mysql,数据库

修改表名
语法:
    rename table 旧表名 to 新表名;
实例:
    rename table student to stu;

02--数据定义语言DDL,MySQL,mysql,数据库

1.2.7 删除表

直接删除表
    语法:
        drop table 表名;
    实例:
        drop table student1;

02--数据定义语言DDL,MySQL,mysql,数据库

如果表存在就删除,不会报错

drop table if exists stu;  

02--数据定义语言DDL,MySQL,mysql,数据库

1.3 约束

1.3.1 约束概述

约束:规定,限制。限制表中的内容。需要满足一定的规则。数据库中的约束:限制列的内容。

意义:保证数据的有效性和完整性。可以确保数据库满足业务规则。

1.3.2 约束类型

约束

说明

primary key

主键约束:非空且唯一

unique

唯一约束:某一列的值不能重复,但可以为空

not null

非空约束:某一列的值不能为空

foreign key

外键约束

check

检查约束(MySQL无效)

缺省

默认值 default

auto_increment

自增器,每一次+1

设计表的时候。

通常我们会新增一个字段(没有意义的字段)去做主键。不去做修改。

主键是int类型的,我们可以给他设置自动增长(假设插入一条记录的时候,主键没有认为的设置值。会自己顺序。去+1 生成新的内容,添加到主键这个字段中。),auto_increment

主键自增长:

        id int primary key auto_increment;

唯一约束:不允许重复。 一个表里可以添加多个唯一约束。

        列名 类型(长度)unique;

非空约束:不允许为空。 表示该列的内容不允许为空。

        列名 类型(长度) not null,

唯一和主键约束的区别

1、唯一约束可以是空(null)。 但是主键约束不能为空

2、一张表中只能有一个主键,但是唯一约束可以有多个。

1.3.3 主键约束详解

列级约束

02--数据定义语言DDL,MySQL,mysql,数据库

表级约束(联合主键)

02--数据定义语言DDL,MySQL,mysql,数据库

1.3.4 唯一约束详解

列级约束

02--数据定义语言DDL,MySQL,mysql,数据库

表级约束(联合约束)

02--数据定义语言DDL,MySQL,mysql,数据库

1.3.5 外键约束详解

外键约束添加有表级约束和列级约束,但是在MySQL中列级约束无效果。

添加外键约束的字段只能取主表中关联的值。

创建外键约束时,只能关联表中带有唯一约束和主键约束的字段上。

为course表添加外键

02--数据定义语言DDL,MySQL,mysql,数据库

测试外键情况

02--数据定义语言DDL,MySQL,mysql,数据库

02--数据定义语言DDL,MySQL,mysql,数据库

1.3.6 创建完表后,添加约束

02--数据定义语言DDL,MySQL,mysql,数据库

添加非空约束
--语法
	alter table 表名 modify 列名 类型 not null;
--举例
	alter table stu modify name varchar(25) not null;

02--数据定义语言DDL,MySQL,mysql,数据库

添加默认约束
--语法
	alter table 表名 modify 列名 类型 default 值;
--举例
	alter table stu modify sex char(1) default '男';

02--数据定义语言DDL,MySQL,mysql,数据库

添加主键约束
--语法
	alter table 表名 add primary key(字段名);
--举例
	alter table stu add primary key(id);

02--数据定义语言DDL,MySQL,mysql,数据库

添加唯一约束
--语法
	alter table 表名 add unique(字段名);
--举例
	alter table stu add unique(name);

02--数据定义语言DDL,MySQL,mysql,数据库

添加外键约束

1) 主表不能删除从表已引用的数据

2) 从表不能添加主表未拥有的数据

3) 先添加主表数据再添加从表数据

4) 先删除从表数据再删除主表数据

5) 外键约束允许为空但不能是错的

主外键关系: 注意事项

前者:建立【实际的主外键关系】 和 后者:建立【逻辑主外键关系】 的区别?

前者有约束,必须按照外键约束来写

后者没有外键约束,但你不能写主键不存在

前者删除受主外键约束,后者删除不再受主外键约束

前者可能会造成级联删除, 后者不会造成级联删除

> 在实际开发中,一般不建立实际的外键关系,建立逻辑外键关系

> 在互联网公司中,不建立实际的外键关系,在实际传统行业中,需要建立实际的外键关系

02--数据定义语言DDL,MySQL,mysql,数据库

--语法
	alter table 表名 add constraint 外键标识 foreign key (列名) references 主表名(主表列名)
--举例
	alter table scores add constraint scores_fk foreign key (stuId) references stu(id);

02--数据定义语言DDL,MySQL,mysql,数据库

1.3.7 创建完表后,删除约束

删除非空约束
--语法
	alter table 表名 modify 字段名 类型 null;
--举例
	alter table stu modify name varchar(25) null;

02--数据定义语言DDL,MySQL,mysql,数据库

删除默认约束
--语法
	alter table 表名 modify 列名 类型 default null;
--举例
	alter table stu modify sex char(1) default null;

02--数据定义语言DDL,MySQL,mysql,数据库

删除主键约束
--语法
	alter table 表名 drop primary key;
--举例
	alter table stu drop primary key;

02--数据定义语言DDL,MySQL,mysql,数据库

删除唯一约束
--删除前先设置唯一约束名为unique_name
	alter table 表名 add constraint unique_name unique(字段名);
--举例	
  alter table stu add constraint unique_name unique(name);

--语法
	alter table 表名 drop index 唯一约束名(unique_name);
--举例
	alter table stu drop index unique_name;

02--数据定义语言DDL,MySQL,mysql,数据库

删除外键约束
--语法
	alter table 表名 drop foreign key (唯一约束名);
--举例
	alter table scores drop foreign key fk_stuId;

02--数据定义语言DDL,MySQL,mysql,数据库

1.3.8 给表添加约束

create table employee(
  id int primary key auto_increment,
  name varchar(32) not null unique, 
  gender varchar(10),
  birthday date,
  job varchar(30),
  salary double not null
);

02--数据定义语言DDL,MySQL,mysql,数据库

02--数据定义语言DDL,MySQL,mysql,数据库

1.3.9 创建表添加注释

create table employee(
  id int primary key auto_increment comment '编号',
  name varchar(32) not null unique comment '姓名', 
  gender varchar(10) comment '性别',
  birthday date comment '生日',
  entry_date date comment '入职日期',
  job varchar(30) comment '工作',
  salary double not null comment '薪水'
);

02--数据定义语言DDL,MySQL,mysql,数据库文章来源地址https://www.toymoban.com/news/detail-794032.html

2、Navicat的安装与使用

到了这里,关于02--数据定义语言DDL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库——DDL基本操作

    DDL 操作是与数据库结构相关的操作,它们不涉及实际的数据操作,而是用于管理数据库的结构和元数据。今天我将为大家分享关于MySQL数据库的DDL操作。 SQL 功能 show databases; 查看所有的数据库 create database [if not exists] 数据库名 [charset/character=utf8]; 创建数据库 use 数据库名; 选

    2024年02月15日
    浏览(85)
  • MySQL数据库的DDL语法汇总

    DDL(数据定义语言):针对数据库对象结构的操作,如:数据库、表、视图、索引等 DML(数据操纵语言):对数据库对象中的数据进行操作,比如数据的增删改查 DCL(数据控制语言):授权及取消授权等 TCL(事务控制语言):对事务的控制,如事务的提交及回滚 创建数据库

    2024年02月09日
    浏览(56)
  • MySQL-DDL-数据库操作

    开发项目流程 DDL:Data Definition Language,数据定义语言,用来定义数据库对象(数据库、表) 常见操作 查询 查询所有数据库:show databases; 查询当前数据库:select database(); 使用 使用数据库:use 数据库名称; 创建 创建数据库:creste database[if not exists] 数据库名称; 删除

    2024年02月15日
    浏览(45)
  • 基于mysql5.7制作自定义的docker镜像,适用于xxl-job依赖的数据库,自动执行初始化脚本(ddl语句和dml语句)

    xxl-job-admin依赖mysql数据库,且需执行初始化脚本,包括ddl和dml语句。 具体的步骤总结如下: 1、新建数据库xxl_job 2、创建mysql表table 3、执行dml语句,包括新建admin用户及密码,创建执行器和任务。 毫无疑问,人工每次去操作这些,不仅耗费人力和时间,还容易出错。 所以,本

    2024年02月11日
    浏览(164)
  • 【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

    🎄 (1) MySQL 基础篇(初级工程师) ① MySQL 基础概念 ② SQL 语句 ③ 函数 ④ 约束 ⑤ 多表查询 ⑥ 事务 🎄 (2) MySQL 进阶篇(中级工程师) ① 存储引擎 ② 索引 ③ SQL 优化 ④ 视图、存储过程、触发器 ⑤ 锁 ⑥ InnoDB 核心 ⑦ MySQL 管理 🎄 (3) 运维篇(高级工程师) ① 日志 ② 主

    2024年02月05日
    浏览(47)
  • 【JaveWeb教程】(18) MySQL数据库开发之 MySQL数据库设计-DDL 如何查询、创建、使用、删除数据库数据表 详细代码示例讲解

    下面我们就正式的进入到SQL语句的学习,在学习之前先给大家介绍一下我们要开发一个项目,整个开发流程是什么样的,以及在流程当中哪些环节会涉及到数据库。 2.1 项目开发流程 需求文档: 在我们开发一个项目或者项目当中的某个模块之前,会先会拿到产品经理给我们提

    2024年01月25日
    浏览(104)
  • MySql数据库从0到1学习-第一天DDL学习

    数据库(查询/创建/修改/删除) 查询数据库 以下语句的database 可以替换为schema,效果一样 创建数据库 删除数据库 使用数据库 表(创建/删除/修改) 创建表 查询表 修改表 表字段约束 约束 描述 非空约束 限制该字段不可为null not null 唯一约束 保证该字段的所欲数据都是唯一

    2024年04月08日
    浏览(43)
  • MySQL数据库---库基本操作 以及 表结构的操作(DDL)

    目录 前言 一.数据库的操作 1.1显示当前数据库 1.2创建数据库 1.3使用数据库  1.4删除数据库  二.数据类型 2.1数值类型 2.2字符串类型 2.3日期类型 三.数据表的操作  3.1 创建表结构。  3.2查看数据库中拥有的数据表  3.3查看指定的表结构   3.4修改表结构   3.5删除表结构  

    2024年02月09日
    浏览(68)
  • 开源数据库Mysql_DBA运维实战 (DDL语句)

    例如:CREATE  DROP ALTER 定义库{                 创建业务数据库: CREAATE DATABASE   ___数据库名___ ;                 数据库名要求{                                         a.区分大小写                                         b.唯一性  

    2024年02月13日
    浏览(57)
  • 02--数据定义语言DDL

    创建数据库 创建数据库,并指定字符集 查询所有数据库的名称 查询某个数据库的字符集:查询某个数据库的创建语句及字符集 修改数据库的字符集 删除数据库 使用数据库 查询当前正在使用的数据库名称 查看数据库版本号 1.2.1 什么是表 表:table表:table是数据库的基本组成

    2024年01月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包