【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),它允许你在后端使用不同的日志…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...
相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...
