02--数据定义语言DDL

news2024/12/28 3:35:20

1、数据定义语言DDL

1.1 操作数据库-DDL

创建数据库

create database 数据库名称;

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

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

查询所有数据库的名称

show databases;

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

show create database 数据库名称;

修改数据库的字符集

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

删除数据库

drop database 数据库名称;

使用数据库

use 数据库名称;

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

select database();

查看数据库版本号

select version();

1.2 操作表-DDL

1.2.1 什么是表

表:table

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

一个表包括行和列:

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

列:被称为字段(column)

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

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

1.2.1 数据类型

数据类型

说明

int

整数类型,例如 : age

double

小数类型,例如 : score double(5,2) 111.11

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.2 创建表

语法:

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

示例:

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

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

查看建表语句:

show create table student;

1.2.3 查询表

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

show tables;

查询表结构

desc 表名;

1.2.4 修改表

添加一列

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

修改列类型

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

修改列名和类型

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

删除指定列

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

修改表字符集

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

修改表名

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

1.2.5 删除表

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

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

drop table if exists stu;  

1.3 约束

1.3.1 约束概述

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

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

1.3.2 约束类型

约束

说明

primary key

主键约束:非空且唯一

unique

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

not null

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

foreign key

外键约束

缺省

默认值

auto_increment

自增器,每一次+1

设计表的时候。

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

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

主键自增长:

id int primary key auto_increment;

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

列名 类型(长度)unique;

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

列名 类型(长度) not null,

唯一和主键约束的区别

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

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

1.3.3 主键约束详解

列级约束

表级约束(联合主键)

1.3.4 创建完表后,添加主键

alter table student add primary key(id);

1.3.5 给表添加约束

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
);

1.3.6 创建表添加注释

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 '薪水'
);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1352245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二、Redis的特性与应用场景

Redis是一个在内存中存储数据的中间件,主要用于作为数据库、数据缓存,在分布式系统中有着非常重要的地位。面试中可以围绕Redis的特性进行介绍。 一、Redis特性 1、在内存中存储数据 MySQL主要是“表”的方式来存储组织数据的,是“关系型数…

聚醚胺市场分析:预计到2025年将达到10亿美元

聚醚胺是一种有机化合物,在涂料、胶粘剂、树脂等多种行业中用作固化剂、缓蚀剂和燃料添加剂。由于对广泛用于建筑和汽车行业的聚脲涂料的需求不断增加,全球聚醚胺市场一直在经历显着增长。 全球市场分析: 2020 年全球聚醚胺市场价值为 6.2 亿…

【竞技宝】LOL:S14新赛季改动 将trueskill2隐藏分算法

北京时间2024年1月3日,随着英雄联盟德玛西亚杯的进行,英雄联盟赛事已经进入新赛季的征途。每个赛季的春季赛之前,都会进行一次大的版本更新。据爆料,今年的S14版本大更新中,除了游戏内的英雄、道具、地图的更新之外,排位的隐藏分算法也将进行重大改变。 昨日,英雄联盟设计总监…

c++ 静态联编+动态联编 (多态)

静态多态 动态多态 1)静态多态和动态多态的区别就是函数地址是早绑定(静态联编)还是晚绑定(动态联编)。 如果函数的调用,在编译阶段就可以确定函数的调用地址,并产生代码,就是静态多态(编译时多态),就是说地址是早绑定…

Android Studio 报错AAPT: error: resource android:attr/lStar not found.解决方法!

目录 前言 一、报错信息 二、解决方法 三、常见处理方法总结 四、更多资源 前言 在快速发展的科技领域中,移动应用开发已经成为了一个非常热门的领域。而作为开发Android应用的主要工具之一,Android Studio 提供了丰富的功能和工具来帮助开发者构建…

c语言和python区别哪个难,c语言和python区别大不大

大家好,给大家分享一下c语言和python区别主要用来写什么,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目…

BMS均衡技术

一、电池的不一致性? 每个电池都有自己的“个性”,要说均衡,得先从电池谈起。即使是同一厂家同一批次生产的电池,也都有自己的生命周期、自己的“个性”——每个电池的容量不可能完全一致。例如以下的两个原因都会造成电池不一致…

【零基础入门TypeScript】TypeScript - 基本语法

目录 你的第一个 TypeScript 代码 编译并执行 TypeScript 程序 编译器标志 TypeScript 中的标识符 TypeScript ─ 关键字 空格和换行符 TypeScript 区分大小写 分号是可选的 TypeScript 中的注释 TypeScript 和面向对象 语法定义了一组编写程序的规则。每种语言规范都…

浏览器使用隧道代理HTTP:洞悉无界信息

在信息爆炸的时代,互联网已经成为获取信息的首选渠道。然而,在某些地区或情况下,访问某些网站可能会受到限制。这时,隧道代理HTTP便成为了一个重要的工具,帮助用户突破限制,洞悉无界信息。 一、隧道代理HT…

Nextjs打包类型检查报错ype error: Property ‘card_list‘ does not exist on type(已解决)

在Nextjs 中 在数组 map 的时候报错如下: 里面的数据类型是 data1 {cart_list:[]} 那么在 声明类型的时候 使用 data1:{card_list:any[]} export default function Card({authStates,data1,data2}:{authStates:boolean;data1:{card_list:any[]};data2:any[]}) {}) 这样就…

学到了!3步get微信自动回复

你是不是也有过这样的烦恼:因为忙碌或是消息太多,没能及时回复好友消息,尤其是在休息、节假日的时候。 今天就给大家种草一款能够让微信自动回复消息的神器——微信管理系统,让你再忙碌也能及时回复好友!而且操作也不…

YOLOv8改进 | 检测头篇 | DynamicHead原论文一比一复现 (不同于网上版本,全网首发)

一、本文介绍 本文给大家带来的改进机制是DynamicHead(Dyhead),这个检测头由微软提出的一种名为“动态头”的新型检测头,用于统一尺度感知、空间感知和任务感知。网络上关于该检测头我查了一些有一些魔改的版本,但是我觉得其已经改变了该检测头的本质,因为往往一些细节上才…

互联网加竞赛 基于LSTM的天气预测 - 时间序列预测

0 前言 🔥 优质竞赛项目系列,今天要分享的是 机器学习大数据分析项目 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/po…

【性能测试】性能压测TPS上不去原因分析,13年老鸟总结...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、性能测试TPS上…

数据结构学习 jz42连续子数组最大和

关键词:动态规划 滚动数组 最长上升子序列 这道题比较简单,类似最长上升子序列,比最长上升子序列简单。 和最长上升子序列的区别:这道题因为是连续的,所以只用记录max就好了。最长上升子序列是不连续的,所…

【计算机毕业设计】SSM实现的在线农产品商城

项目介绍 本项目分为前后台,且有普通用户与管理员两种角色。 用户角色包含以下功能: 用户登录,查看首页,按分类查看商品,查看新闻资讯,查看关于我们,查看商品详情,加入购物车,查看我的订单,提交订单,添加收获地址,支付订单等功能。 管理员角色包含以…

TypeScript 之 interface 和 type 的区别

结论: 1、可以声明的数据类型 type 可以修饰任何类型 (值类型和引用数据类型) interface 只能修饰引用类型 (对象、数组、函数) //interface 声明对象属性 interface ins {a: string;b?: number; //可选项 }// int…

python主流开发工具排名,python最好用的开发工具

大家好,小编来为大家解答以下问题,python的开发工具软件有哪些,python主流开发工具排名,今天让我们一起来看看吧! 对于程序员来说,除了日常争论世界上最好的语言是哪一门以外,哪款 IDE 是最好的…

羊大师讲解长期喝羊奶的女性,身体变化与福利

羊大师讲解长期喝羊奶的女性,身体变化与福利 羊奶作为天然健康食品一直备受关注,尤其对女性来说更是具有独特的身体效益。长期喝羊奶不仅可以改善女性的健康状况,还能带来一系列积极的身体变化。本文小编羊大师将为大家详细介绍长期饮用羊奶…

程序员必知!装饰模式的实战应用与案例分析

装饰模式是一种结构型设计模式,允许在不改变对象基础上动态添加职责或行为。举个咖啡店中咖啡定制的实际例子,顾客可选不同配料装饰咖啡,每个配料视作装饰器,装饰模式优点有动态扩展、灵活性和避免类爆炸,但可能增加系…