【mysql】mysql之DDL数据定义语言
本站以分享各种运维经验和运维所需要的技能为主
《python零基础入门》:python零基础入门学习
《python运维脚本》: python运维脚本实践
《shell》:shell学习
《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战
《k8》从问题中去学习k8s
《docker学习》暂未更新
《ceph学习》ceph日常问题解决分享
《日志收集》ELK+各种中间件
《运维日常》运维日常
《linux》运维面试100问
《DBA》db的介绍使用(mysql、redis、mongodb...)
SQL语句
一、sql语句的语义种类
DDL: 数据定义语言 Data Definition Language DCL: 数据控制语言 Data Control Language DML: 数据操作语言 Data Manipulate Language DQL: 数据查询语言 Data Query Language
二、DDL: 数据定义语言 (create、drop)
1.create针对库的操作
1)语法
mysql> help create database
Name: 'CREATE DATABASE'
Description:
Syntax:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ...create_specification:[DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
2)创建库
mysql> create database db1; Query OK, 1 row affected (0.00 sec)mysql> create SCHEMA db2; Query OK, 1 row affected (0.00 sec)
3)建库时提示已存在
mysql> create database db1; ERROR 1007 (HY000): Can't create database 'db1'; database existsmysql> create database IF NOT EXISTS db1; Query OK, 1 row affected, 1 warning (0.00 sec)mysql> create database IF NOT EXISTS db1; Query OK, 1 row affected, 1 warning (0.00 sec)
4)查看建库语句
mysql> show create database db1; +----------+----------------------------------------------------------------+ | Database | Create Database | +----------+----------------------------------------------------------------+ | db1 | CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET latin1 */ | +----------+----------------------------------------------------------------+ 1 row in set (0.00 sec)
5)创建数据库并指定字符集
mysql> create database db3 charset utf8 COLLATE utf8_general_ci; Query OK, 1 row affected (0.00 sec)mysql> show create database db3; +----------+--------------------------------------------------------------+ | Database | Create Database | +----------+--------------------------------------------------------------+ | db3 | CREATE DATABASE `db3` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+--------------------------------------------------------------+ 1 row in set (0.00 sec)#不指定校验规则默认就是 utf8_general_ci mysql> create database db4 charset utf8; Query OK, 1 row affected (0.00 sec)
6)删库
mysql> drop database db1; Query OK, 0 rows affected (0.00 sec)
7)修改库
mysql> show create database db2; # 查看数据库使用字符集mysql> alter database db2 charset utf8 collate utf8_general_ci; # 修改字符集
2.create针对表的操作
1)语法
mysql> help create table;
Name: 'CREATE TABLE'
Description:
Syntax:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name(create_definition,...)[table_options][partition_options]CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name[(create_definition,...)][table_options][partition_options][IGNORE | REPLACE][AS] query_expressionCREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name{ LIKE old_tbl_name | (LIKE old_tbl_name) }
2)建表
#1.进入一个库 mysql> use db2#2.查看当前所在库 mysql> select database();#3.建表,建表最少有一列 mysql> create table tb1; ERROR 1113 (42000): A table must have at least 1 columnmysql> create table tb1(id int); Query OK, 0 rows affected (0.04 sec)#4.查看表 mysql> show tables; # 查看库中有多少表mysql> desc tb1; # 查看表中字段
3)数据类型
int 整数 -2^31 - 2^31-1 (-2147483648 - 2147483647) 不能超出此范围 bigint 较大整数数据类型 (-2^63 - 2^63-1) 比int整数类型可用范围广 tinyint 最小整数 -128 - 127 #年龄 0 - 255 varchar 字符类型(变长) #身份证 char 字符类型(定长) enum 枚举类型 #给它固定选项,只能选则选择项中的值 性别 datetime 时间类型 年月日时分秒 注意: 如果使用datetime不是为now()当前时间,而是直接书写时间,如2020-03-01,则需要在配置文件中添加此行信息sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 否则数据可能插入完成后,并不会显示插入后的内容,而是00-00-00.
4)数据类型测试
#int类型
mysql> create table tb1(id int); # 创建表名为tb1,字段名为id,类型为intmysql> insert tb1 values(1); # 在tb1表中插入对应id字段的值为1
#enum类型
mysql> create table qiudao(id int,sex enum('nan','nv'));
Query OK, 0 rows affected (0.02 sec)mysql> insert into qiudao values(1,'nan');
Query OK, 1 row affected (0.00 sec)mysql> insert into qiudao values(1,'qiudao');
ERROR 1265 (01000): Data truncated for column 'sex' at row 1
5)建表测试
表名:student
id
name
age
gender
cometime#1.建表
mysql> create table student(-> id int,-> name varchar(12),-> age tinyint,-> gender enum('M','F'),-> cometime datetime);
Query OK, 0 rows affected (0.01 sec)#2.插入数据
mysql> insert into student values(1,'邱导',-18,'M',now());
Query OK, 1 row affected (0.00 sec)
6)建表数据属性
not null: #非空 primary key: #主键(唯一且非空的) auto_increment: #自增(此列必须是:primary key或者unique key) unique key: #唯一键,单独的唯一的 default: #默认值 unsigned: #非负数 comment: #注释
7)加上属性建表
#1.建表语句
create table students(
id int primary key auto_increment comment "学生id",
name varchar(12) not null comment "学生姓名",
age tinyint unsigned not null comment "学生年龄",
gender enum('M','F') default 'M' comment "学生性别",
cometime datetime default now() comment "入学时间");#2.查看建表语句
mysql> show create table students;
| students | CREATE TABLE `students` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学生id',`name` varchar(12) NOT NULL COMMENT '学生姓名',`age` tinyint(3) unsigned NOT NULL COMMENT '学生年龄',`gender` enum('M','F') DEFAULT 'M' COMMENT '学生性别',`cometime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '入学时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
1 row in set (0.00 sec)#3.插入数据
mysql> insert into students values(1,'qiudao',18,'M',now());
Query OK, 1 row affected (0.00 sec)
#因为主键相同无法插入
mysql> insert into students values(1,'qiudao',18,'M',now());
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
#应该
mysql> insert into students values('2','qiudao',18,'M',now());
Query OK, 1 row affected (0.00 sec)
#主键已经设置自增没必要自己插入#正规插入数据的写法
mysql> insert students(name,age) values('lhd',18);
Query OK, 1 row affected (0.00 sec)mysql> insert students(name,age) values('lhd',12);
Query OK, 1 row affected (0.01 sec)mysql> select * from students;
+----+--------+-----+--------+---------------------+
| id | name | age | gender | cometime |
+----+--------+-----+--------+---------------------+
| 1 | qiudao | 18 | M | 2020-07-14 19:51:44 |
| 2 | qiudao | 18 | M | 2020-07-14 19:52:19 |
| 3 | lhd | 18 | M | 2020-07-14 19:53:50 |
| 4 | lhd | 12 | M | 2020-07-14 19:53:58 |
+----+--------+-----+--------+---------------------+
4 rows in set (0.00 sec)
3.删除表
drop table student;
4.修改表
#1.新建表 mysql> create table linux(daijiadong tinyint); Query OK, 0 rows affected (0.04 sec#2.修改表名 mysql> alter table linux rename linux9; Query OK, 0 rows affected (0.01 sec)#3.插入新字段 mysql> alter table linux9 add rengyufeng int; Query OK, 0 rows affected (0.14 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> desc linux9; +------------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+------------+------+-----+---------+-------+ | daijiadong | tinyint(4) | YES | | NULL | | | rengyufeng | int(11) | YES | | NULL | | +------------+------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)#4.插入多个新字段 mysql> alter table linux9 add liukong int,add wangzhangxing int; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> desc linux9; +---------------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+------------+------+-----+---------+-------+ | daijiadong | tinyint(4) | YES | | NULL | | | rengyufeng | int(11) | YES | | NULL | | | liukong | int(11) | YES | | NULL | | | wangzhangxing | int(11) | YES | | NULL | | +---------------+------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)#5.插入字段到最前面 mysql> alter table linux9 add kangpeiwen varchar(100) first; Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> desc linux9; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | kangpeiwen | varchar(100) | YES | | NULL | | | daijiadong | tinyint(4) | YES | | NULL | | | rengyufeng | int(11) | YES | | NULL | | | liukong | int(11) | YES | | NULL | | | wangzhangxing | int(11) | YES | | NULL | | +---------------+--------------+------+-----+---------+-------+ 5 rows in set (0.01 sec)#6.插入字段到指定字段后面 mysql> alter table linux9 add chenjianqing varchar(100) after daijiadong; Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> desc linux9; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | kangpeiwen | varchar(100) | YES | | NULL | | | daijiadong | tinyint(4) | YES | | NULL | | | chenjianqing | varchar(100) | YES | | NULL | | | rengyufeng | int(11) | YES | | NULL | | | liukong | int(11) | YES | | NULL | | | wangzhangxing | int(11) | YES | | NULL | | +---------------+--------------+------+-----+---------+-------+ 6 rows in set (0.00 sec)#7.删除指定列 mysql> alter table linux9 drop daijiadong; Query OK, 0 rows affected (0.04 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> desc linux9; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | kangpeiwen | varchar(100) | YES | | NULL | | | chenjianqing | varchar(100) | YES | | NULL | | | rengyufeng | int(11) | YES | | NULL | | | liukong | int(11) | YES | | NULL | | | wangzhangxing | int(11) | YES | | NULL | | +---------------+--------------+------+-----+---------+-------+ 5 rows in set (0.00 sec)#8.修改字段 mysql> alter table linux9 change rengyufeng congtianqi int; Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> desc linux9; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | kangpeiwen | varchar(100) | YES | | NULL | | | chenjianqing | varchar(100) | YES | | NULL | | | congtianqi | int(11) | YES | | NULL | | | liukong | int(11) | YES | | NULL | | | wangzhangxing | int(11) | YES | | NULL | | +---------------+--------------+------+-----+---------+-------+ 5 rows in set (0.00 sec)#9.修改字段属性 mysql> alter table linux9 modify congtianqi tinyint; Query OK, 0 rows affected (0.04 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> desc linux9; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | kangpeiwen | varchar(100) | YES | | NULL | | | chenjianqing | varchar(100) | YES | | NULL | | | congtianqi | tinyint(4) | YES | | NULL | | | liukong | int(11) | YES | | NULL | | | wangzhangxing | int(11) | YES | | NULL | | +---------------+--------------+------+-----+---------+-------+ 5 rows in set (0.01 sec)
三、复制表结构
# 对数据库的表结构拷贝 mysql> create table ttt like student; # 创建一个新的表叫ttt,和student的表结构一致,但不会将student的数据拷贝过来 Query OK, 0 rows affected (0.10 sec)# 对数据库数据拷贝 mysql> insert into ttt select * from student; # 将查询出来的结果,全部导入到ttt表中# 对导入数据筛选 mysql> insert into ttt select * from student where age > 22; # 对筛选结果导入到表ttt中
相关文章:
【mysql】mysql之DDL数据定义语言
本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...
Word文件密码忘记,该如何才能编辑Word文件呢?
Word文件打开之后,发现编辑功能都是灰色的,无法使用,无法编辑,遇到这种情况,是因为Word文件设置了限制编辑导致的。一般情况下,我们只需要输入Word密码,将限制编辑取消就可以正常编辑文件了&…...
解锁移动办公新境界,七款顶尖移动终端管控软件分享!助您轻松掌控每一台移动设备,企业必备!
移动办公,它不仅打破了时间和空间的限制,提高了工作效率,还为员工创造了更加灵活的工作环境。然而,随着移动设备的普及,如何有效管理和控制这些终端,确保信息安全、提升工作效率呢? 今天&#…...
基于微信小程序的大用户心理咨询系统设计与实现---附源码99040
目录 1 绪论 1.1 研究背景 1.2研究现状 1.3论文结构与章节安排 2 基于微信小程序的大用户心理咨询系统设计与实现分析 2.1 可行性分析 2.2 系统功能分析 2.3 系统用例分析 2.4 系统流程分析 2.5本章小结 3 基于微信小程序的大用户心理咨询系统设计与实现总体设计 3.…...
Bigtop 从0开始(上)
本文作者:蔡佳良 原文阅读:【巨人肩膀社区博客分享】Bigtop 从0开始 BigTop的应用场景: 1. BigTop通过提供预配置的Docker镜像,极大简化了在不同操作系统上编译大数据组件的rpm或deb包的过程,使之变得快捷且高效。 …...
算法基础及例题
1、双指针 维护区间信息、子序列匹配、利用序列有序性、单项链表找环双指针 - OI Wiki (oi-wiki.org) 盛最多水的容器https://leetcode.cn/problems/container-with-most-water/ public class Solution {public int maxArea(int[] height) {int l 0, r height.length - 1;int…...
机器学习-KNN 算法
一.K-近邻(KNN) K-近邻(K-Nearest Neighbors, 简称 KNN)是一种基于实例的学习算法,主要用于分类和回归问题。KNN 的工作原理直观且简单,它基于相似性进行预测,也就是说给定一个新的数据点,KNN 算法会查找距…...
【Linux】如何快速查看 linux 服务器有几个cpu
如何快速查看 linux 服务器有几个cpu author: jayzhen date: 2024.08.22 文章目录 如何快速查看 linux 服务器有几个cpu1. 使用lscpu命令2. 使用nproc命令3. 使用/proc/cpuinfo文件4. 使用top或htop命令结论 在Linux服务器上,你可以通过多种方式快速查看系统中有几个…...
[数据集][目标检测]电力场景轭式悬架锈蚀分类数据集6351张2类别
数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):6351 分类类别数:2 类别名称[corrosion,good] 每个类别图片数: corrosion 图片数:310 good 图片数:6041 …...
【嵌入式linux开发】智能家居入门5:老版ONENET,多协议接入(QT、微信小程序、HTTP协议、ONENET云平台、旭日x3派)
智能家居入门5(QT、微信小程序、HTTP协议、ONENET云平台、旭日x3派) 前言一、QT界面设计二、云平台产品创建与连接三、下位机端QT代码总览:四、微信小程序端代码总览五、板端测试 前言 前四篇智能家居相关文章都是使用STM32作为主控…...
软考-软件设计师(程序设计语言习题)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...
「C++系列」vector 容器
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能教程 文章目录 一、vector 容器1. 基本特性2. 基本操作3. 注意事项 二、应用场景1. 应用场景2. 案例案例一࿱…...
梯度的概念
梯度 机器学习中,梯度下降法,牛顿法都会用到梯度概念 对于一元函数,梯度可以看成导数 对于多元函数,梯度可以看成偏导数 如果多元函数包含N个自变量: x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,x…...
低代码开发:机遇与挑战并存的技术革新
近年来,随着数字化转型的加速,低代码开发平台如雨后春笋般涌现,承诺让非专业人士也能快速构建应用程序。这种新兴技术正在挑战传统软件开发模式,引发了IT行业的广泛讨论。低代码平台是提高效率的利器,还是降低了编程门…...
Linux之RabbitMQ集群部署
RabbitMQ 消息中间件 1、消息中间件 消息(message): 指在服务之间传送的数据。可以是简单的文本消息,也可以是包含复杂的嵌入对象的消息 消息队列(message queue): 指用来存放消息的队列,一般采用先进先出的队列方式,即最先进入的…...
【JAVA CORE_API】Day19 多线程API(2)、多线程并发安全问题、同步
多线程API 进程和线程 进程:进程就像是一个程序在电脑里运行时的一个实例。你可以把它想象成一个独立的小工人,专门负责完成某项任务(比如打开浏览器、播放音乐)。每个进程都有自己独立的资源(比如内存)和…...
最新Windows 11 23H2精简版,免费获取!稳定流畅!
今日,系统之家小编给大家带来了2024最新的Windows11 23H2精简版系统,该版本系统经过适度地优化与精简,保留大部分功能,完全能满足日常使用需求,兼容性非常出色,无需担心应用程序出现闪退问题。大家可以通过…...
PostgreSQL SELECT 语句:深入解析与实例应用
PostgreSQL SELECT 语句:深入解析与实例应用 PostgreSQL 是一款功能强大的开源关系数据库管理系统,它以稳定性、可靠性以及支持高级功能而著称。在 PostgreSQL 中,SELECT 语句是最基本也是最重要的查询语句之一,用于从数据库表中检索数据。本文将详细介绍 SELECT 语句的用…...
【自然语言处理】 构建文本对话系统
构建文本对话系统的框架如下: 根据聊天系统目的功用的不同,可分成三大类型: 闲聊式机器人:较有代表性的有微软小冰、微软小娜、苹果的 Siri、小 i 机器人等,主要以娱乐为目的。 **知识问答型机器人:**知识…...
java: 程序包org.slf4j不存在
当在Java项目中遇到“程序包org.slf4j不存在”的错误时,这通常意味着你的项目没有正确地包含SLF4J(Simple Logging Facade for Java)的库。SLF4J是一个Java的日志门面(Facade),它允许你在后端使用不同的日志…...
Codex入门09-Git工作流(小白入门:不会写commit信息?AI帮你自动生成规范提交)
🎯 本文目标 学会用 Codex 自动化 Git 操作:提交、冲突解决、PR 描述生成。 😰 Git 新手的典型痛点 你的提交记录是不是这样的: git log --oneline a3f4b2c fix 9d1e8c4 update 4c7b91f 修改了一些东西 f0a2d3e 。。。 b5c8e7a 又改了这就是"屎山提交记录"—…...
通过curl命令快速测试Taotoken提供的各类大模型API响应效果
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过curl命令快速测试Taotoken提供的各类大模型API响应效果 对于习惯命令行操作或需要在无SDK环境中验证集成的开发者而言…...
别再乱打包了!手把手教你用Kali Linux和Metasploit生成免杀后门(附实战演示)
Kali Linux高级免杀技术实战:从原理到绕过Windows Defender 在渗透测试和红队演练中,后门程序的免杀能力直接决定了行动的成败。许多初学者在使用Metasploit生成基础payload后,常常发现它们被主流杀毒软件轻易拦截。本文将深入探讨免杀技术的…...
2025届学术党必备的五大降重复率方案横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下知网已然上线了AI检测功能,会针对论文里疑似人工智能生成的内容展开识别。为…...
C语言-指针二
一. 指针的操作int main() {int a 10 , b 20, c 30;int *p NULL, *q NULL;p &a;//对指针变量p本身进行修改b *p;//*p为右值表示对变量a的读取*p 60;//*p为左值表示通过指向的内存空间对变量a的写入p &c;//p指向的内存空间发生变化b *p;//对c的读取操作*p 70…...
苍穹外卖开发日记-员工管理与AOP自动填充
苍穹外卖开发日记:员工管理、分类管理与AOP自动填充实战今天完成了苍穹外卖项目的员工管理模块、分类管理模块,并通过自定义注解AOP的方式实现了公共字段的自动填充,让我们来回顾一下这些核心功能的实现。一、今日工作概览时间完成内容14:44新…...
雨夜便利店的光,刚好够照亮你这一秒的疲惫
雨声比闹钟更懂你凌晨一点十七分,耳机里循环着一首没名字的 lo-fi beat,窗外的雨没停,也没下大,就那么轻轻敲着空调外机和生锈的铁皮棚。你站在楼道口犹豫要不要出门买泡面,其实不是饿,是心里空了一小块&am…...
你还在迷信AI的回答?2026年,信息主权争夺战已全面打响
一、AI信息乱象:个人与企业的双重困境 (一)个人用户:深陷“AI虚假陷阱”,决策毫无安全感2026年的今天,AI大模型的“幻觉缺陷”非但没有消失,反而因模型参数膨胀而变得更加隐蔽。用户向豆包询问某…...
Sonos语音控制功能大揭秘:常用指令、局限与第三方助手对比
ZDNET核心要点Sonos音箱内置语音助手,其语音控制虽不如其他助手智能,但并非一无是处,每日闹钟、天气预报和定时器能提升使用体验。Sonos语音控制使用体验并非智能家居爱好者,但家里有好几台Sonos智能音箱。虽不太喜欢自动语音助手…...
大厂光环褪去后,技术人该如何评估一份工作的价值?
当“进入大厂”不再是职业发展的唯一解,当“稳定”成为一种奢求,软件测试从业者需要一套更内核的价值评估体系。这套体系不应依赖于公司的名头或短期的薪资涨幅,而应聚焦于那些能够被你带走、并持续产生复利的核心资产。我们可以从以下四个维…...
