MySQL基础-----SQL语句之DDL数据定义语句

目录

前言

 开启登录数据库

一、数据库操作 

1.查询所有数据库

 2.切换使用数据库

3.查询当前使用的数据库

4.创建数据库 

创建一个hello数据库, 使用数据库默认的字符集。

 创建一个itheima数据库,并且指定字符集

 5.删除数据库

 二、表操作

1.查询当前数据库所有表

2.查看指定表结构 

3.查询指定表的建表语句

4.创建表-建表语句

 5.创建表-数据类型

数值类型 

字符串类型 

日期时间类型 

 6.表操作-修改

01.添加字段

02.修改数据类型 

03.修改字段名和字段类型

 04.删除字段

05.修改表名

7.表操作-删除

删除表

删除指定表, 并重新创建表


前言

        上一期我们简单介绍了MySQL数据库的相关内容以及SQL语句的分类,那么本期我们开始学习SQL语句中的ddl语句部分,DDL语句即Data  Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段),下面我会通过数据库和表的操作来演示。

 开启登录数据库

        cmd 管理员进入,然后用指令开启MySQL服务器net start mysql  

        然后就是登录等等操作,在上一期就讲解过了这里就不多说了(上一期链接:MySQL入门------数据库与SQL概述-CSDN博客)。

一、数据库操作 

1.查询所有数据库

show databases; 

 2.切换使用数据库

我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。

use 数据库名称;

3.查询当前使用的数据库

select database(); 

 

4.创建数据库 

创建一个hello数据库, 使用数据库默认的字符集。

 create database hello;

 在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。

 可以通过if not exists 参数来解决这个问题,数据库不存在, 则创建该数据库,如果存在,则不创建。

 create database if not exists hello;

 创建一个itheima数据库,并且指定字符集

create database itheima default charset utf8mb4;

 5.删除数据库

drop database [ if exists ] 数据库名字;

如果删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。 

 二、表操作

1.查询当前数据库所有表

show tables; 

比如,我们可以切换到sys这个系统数据库,并查看系统数据库中的所有表结构。 

use sys;

show tables;

2.查看指定表结构 

desc 表名; 

 通过这条指令,我们可以查看到指定表的字段,字段的类型、是否可以为NULL,是否存在默认值等信息。

3.查询指定表的建表语句

show create table 表名;

通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。 

4.创建表-建表语句

 create table 表名(

        字段1 类型 [comment 注释],

        字段2 类型 [comment 注释],

        字段3 类型 [comment 注释],

        ……

) [comment 注释];

注意: [...] 内为可选参数, 后一个字段后面没有逗号

 5.创建表-数据类型

在上述的建表语句中,我们在指定字段的数据类型时,用到了int ,varchar,那么在MySQL中除了以上的数据类型,还有哪些常见的数据类型呢? 接下来,我们就来详细介绍一下MySQL的数据类型。

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型 

类型

大小

有符号(SIGNED)范围

无符号(UNSIGNED)范围

描述

TINYINT

1byte

(-128,127)

(0,255)

小整数值

SMALLINT

2bytes

(-32768,32767)

(0,65535)

大整数值

MEDIUMINT

3bytes

(-8388608,8388607)

(0,16777215)

大整数值

INT/INTEGER

4bytes

(-2147483648,

2147483647)

(0,4294967295)

大整数值

BIGINT

8bytes

(-2^63,2^63-1)

(0,2^64-1)

极大整数值

FLOAT

4bytes

(-3.402823466 E+38,

3.402823466351 E+38)

0 和 (1.175494351 E-

38,3.402823466 E+38)

单精度浮点数值

DOUBLE

8bytes

(-1.7976931348623157

E+308,

1.7976931348623157

E+308)

0 和

(2.2250738585072014

E-308,

1.7976931348623157

E+308)

双精度浮点数值

DECIMAL

 

依赖于M(精度)和D(标度) 的值

依赖于M(精度)和D(标度)的值

小数

值(精

确定点数)

要根据实际情况去选择恰当的数据类型,比如年龄不会出现负数,所以要选择无符号类型。

字符串类型 

类型

大小

描述

CHAR

0-255 bytes

定长字符串(需要指定长度)

VARCHAR

0-65535 bytes

变长字符串(需要指定长度)

TINYBLOB

0-255 bytes

不超过255个字符的二进制数据

TINYTEXT

0-255 bytes

短文本字符串

BLOB

0-65 535 bytes

二进制形式的长文本数据

TEXT

0-65 535 bytes

长文本数据

MEDIUMBLOB

0-16 777 215 bytes

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16 777 215 bytes

中等长度文本数据

LONGBLOB

0-4 294 967 295 bytes

二进制形式的极大文本数据

LONGTEXT

0-4 294 967 295 bytes

极大文本数据

char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为 大占用长度 。相对来说,char的性能会更高些。 

日期时间类型 

类型

大小

范围

格式

描述

DATE

3

1000-01-01 至 9999-12-31

YYYY-MM-DD

日期值

TIME

3

-838:59:59 至 838:59:59

HH:MM:SS

时间值或持续时间

YEAR

1

1901 至 2155

YYYY

年份值

DATETIME

8

1000-01-01 00:00:00 至

9999-12-31 23:59:59

YYYY-MM-DD

HH:MM:SS

混合日期和时间值

TIMESTAMP

4

1970-01-01 00:00:01 至

2038-01-19 03:14:07

YYYY-MM-DD

HH:MM:SS

混合日期和时间值,时间戳

 下面创建一个emp员工表,要求如下:

  1. 编号(纯数字)
  2. 员工工号 (字符串类型,长度不超过10位)
  3. 员工姓名(字符串类型,长度不超过10位)
  4. 性别(男/女,存储一个汉字)
  5. 年龄(正常人年龄,不可能存储负数)
  6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
  7. 入职时间(取值年月日即可)

建表语句如下:

create table emp(id int comment '编号',num varchar(10) comment '编号',name varchar(10) comment '名字',gender char(1) comment '性别',age tinyint unsigned comment '年龄',idcard char(18) comment '身份证',entrydate date comment '入职时间'
) comment '员工表';

SQL语句编写完毕之后,就可以在MySQL的命令行中执行SQL,然后也可以通过 desc 指令查询表结构信息: 

表结构创建好了,里面的name字段是varchar类型, 大长度为10,也就意味着如果超过10将会报错,如果我们想修改这个字段的类型 或 修改字段的长度该如何操作呢?接下来再来讲解DDL语句中,如何操作表字段。 

 6.表操作-修改

01.添加字段

alter table emp add 字段名 类型 [comment '注释'];

案例:下面在上面emp表的基础上添加一个老板名字的字段 

 alter table emp add emloyer varchar(10) comment '老板';

02.修改数据类型 

 alter table 表名 modify 字段名 新的数据类型;

案例:把上面老板的数据类型由varchar(10)改为varchar(20)

alter table emp modify emloyer varchar(20);

03.修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

案例 : 将emp 表的emloyer 字段修改为 username ,类型为 varchar(30)
alter table emp change emloyer username varchar(30) comment '昵称';

 04.删除字段

 ALTER TABLE 表名 DROP 字段名;

案例 : 将emp 表的字段 username 删除

 alter table emp drop username;

05.修改表名

ALTER TABLE 表名 RENAME TO 新表名;
案例 : 将emp 表的表名修改为 employee

 alter table emp rename to employee;

7.表操作-删除

删除表

DROP TABLE [ IF EXISTS ] 表名;

可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作 ( 如果不
加该参数项,删除一张不存在的表,执行将会报错 )
案例 :
如果 tb_user 表存在,则删除 tb_user
删除指定表, 并重新创建表

其中的数据被全部删除了,只保留下表结构

TRUNCATE TABLE 表名;

注意: 在删除表的时候,表中的全部数据也都会被删除。

以上就是本期的全部内容了,我们下次见!

 分享一张壁纸:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html样式排版

<template><div class"box"><div class"header">头部</div><div class"main"><div class"left">菜单</div><div class"right"><div class"right-contentr"&g…

可调恒定电流稳压器NSI50150ADT4G车规级LED驱动器 提供专业的汽车级照明解决方案

NSI50150ADT4G产品概述&#xff1a; NSI50150ADT4G可调恒定电流稳压器 (CCR) &#xff0c;是一款简单、经济和耐用的器件&#xff0c;适用于为 LED 中的调节电流提供成本高效的方案&#xff08;与恒定电流二极管 CCD 类似&#xff09;。该 (CCR) 基于自偏置晶体管 (SBT) 技术&…

thinkphp学习12-数据库的时间查询

传统方式 可以使用>、<、>、<来筛选匹配时间的数据&#xff1b; public function index() {$res Db::name(user)->where(create_time, >, 2018-1-1)->select();dump($res); }可以使用 between 关键字来设置时间的区间&#xff1b; public function in…

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复&#xff0c;初步分析是vue发布3.4版本以后引起的兼容性问题。 问题截图&#xff1a; 1.isFucntion is not function&#xff0c;是由于vue升级后众多插件版本不匹配造成的问题 2.弹框…

vue3+ts项目创建 使用npm create vue@latest

npm create vuelatest相关创建代码&#xff1a;

Linux常用命令(超详细)

一、基本命令 1.1 关机和重启 关机 shutdown -h now 立刻关机 shutdown -h 5 5分钟后关机 poweroff 立刻关机 重启 shutdown -r now 立刻重启 shutdown -r 5 5分钟后重启 reboot 立刻重启 1.2 帮助命令 –help命令 shutdown --help&#xff1a; ifconfig --help&#xff1a;查看…

Docker知识点总结二

四、 Docker 架构 Docker使用客户端-服务器(C/S)架构模式&#xff0c;使用远程API来管理和创建Docker容器。 介绍&#xff1a; 1、Docker的客户端client&#xff0c;我们在命令行发送一些信息(命令)给Docker服务端。2、中间这个就是Docker的服务端&#xff0c;在这个服务端里面…

基于dashscope在线调用千问大模型

前言 dashscope是阿里云大模型服务平台——灵积提供的在线API组件。基于它&#xff0c;无需本地加载大模型&#xff0c;通过在线方式访问云端大模型来完成对话。 申请API key 老规矩&#xff1a;要想访问各家云端大模型&#xff0c;需要先申请API key。 对于阿里云&#x…

关于 DevOps,如何应对IT服务交付中的问题?

文章目录 &#x1f4cb; 前言&#x1f3af; 如何应对IT服务交付中的问题&#xff1f;&#x1f3af;关于 DevOps 书籍推荐&#x1f4dd;最后&#x1f525; 参与方式 &#x1f4cb; 前言 DevOps 是一种软件开发方法论和实践&#xff0c;旨在通过缩短开发周期、提高交付速度和改进…

Service Mesh:重塑微服务市场

摘要 今天我们不谈技术&#xff0c;不谈架构&#xff0c;也不谈具体的产品&#xff0c;我们来聊一聊在未来一两年之内&#xff0c;Service Mesh技术会在微服务相关的市场带来什么样的变化&#xff1f; 大家好&#xff0c;我是敖小剑&#xff0c;今天给大家带来的这个主题叫做…

【树上倍增】【割点】 【换根法】3067. 在带权树网络中统计可连接服务器对数目

作者推荐 视频算法专题 本文涉及知识点 树上倍增 树 图论 并集查找 换根法 深度优先 割点 LeetCode3067. 在带权树网络中统计可连接服务器对数目 给你一棵无根带权树&#xff0c;树中总共有 n 个节点&#xff0c;分别表示 n 个服务器&#xff0c;服务器从 0 到 n - 1 编号…

FPGA——三速自适应以太网设计(1)基本模块

FPGA——以太网设计&#xff08;1&#xff09;基本模块 1. 协议解析&#xff08;1&#xff09;MAC层&#xff08;2&#xff09;IP层 和 ARP层&#xff08;3&#xff09;UDP层 和 ICMP层 2.1 MAC接收模块2.2 MAC发送模块3.1 IP接收模块3.2 IP发送模块4.1 UDP接收模块4.2 UDP发送…

学习clickhouse 集群搭建和分布式存储

为什么要用集群 使用集群的主要原因是为了提高系统的可扩展性、可用性和容错性。 可扩展性&#xff1a;当单个节点无法处理增加的负载时&#xff0c;可以通过添加更多的节点到集群来增加处理能力。这使得系统可以处理更大的数据量和更高的查询负载。可用性&#xff1a;在集群…

html--3D爱心

文章目录 代码效果 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>爱心</title><style type"text/css">*{margin: 0px;border: 0px;}body{overflow: hidden;background-…

(C语言)深入理解指针1基础

指针是C语言中的一个难点&#xff0c;但如果真正理解了指针&#xff0c;其实没有很难&#xff0c;本篇文章介绍了指针的基础知识&#xff0c;后面还会继续更行指针的内容。感谢支持。 目录 1. 内存和地址 1.1 内存 1.2 究竟该如何理解编址 2. 指针变量和地址 2.1 取地址操…

深入探索HTTP/3协议:核心原理、创新优势与实战部署细节

引言 在互联网技术演进的过程中&#xff0c;HTTP协议扮演着至关重要的角色&#xff0c;它是现代Web应用程序通信的基础。自HTTP/1.1引入持久连接和管道化&#xff0c;再到HTTP/2引入多路复用&#xff0c;每一次迭代都是对网络传输效能的一次提升。如今&#xff0c;HTTP/3作为新…

计算机的基础知识

计算机的特点及应用&#xff1a; 图灵说–计算就是基于规则的符号串变换从20世纪80年代开始&#xff0c;发达国家开始研制第五代计算机&#xff0c;研究的目标是能够打破以往计算机固有的体系结构&#xff0c;使计算机能够具有像人一样的思维、推理和判断能力&#xff0c;向智…

重要通告 | 公司更名为“浙江实在智能科技有限公司”

更名公告 升级蜕变、砥砺前行 因业务快速发展和战略升级&#xff0c;经相关政府机构批准&#xff0c;自2024年3月1日起&#xff0c;原“杭州实在智能科技有限公司”正式更名为“浙江实在智能科技有限公司”。 更名后&#xff0c;公司统一社会信用代码不变&#xff0c;业务主体…

共享文件如何异地部署?

在现代信息化的时代背景下&#xff0c;不同地区之间的文件共享和异地部署是一项重要的任务。共享文件异地部署可以有效提高文件传输的效率&#xff0c;方便不同地区间的合作与协同工作。本文将介绍共享文件异地部署的概念、挑战以及解决方案。 天联组网的作用 天联组网是一种用…

chromedriverUnable to obtain driver for chrome using ,selenium找不到chromedriver

1、下载chromedriver chromedriver下载网址&#xff1a;CNPM Binaries Mirror 老版本在&#xff1a;chromedriver/ 较新版本在&#xff1a;chrome-for-testing/ 2、设置了环境变量还是找不到chromedriverUnable to obtain driver for chrome using NoSuchDriverException:…