当前位置: 首页 > news >正文

【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作为主控&#xf…...

软考-软件设计师(程序设计语言习题)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...

「C++系列」vector 容器

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能教程 文章目录 一、vector 容器1. 基本特性2. 基本操作3. 注意事项 二、应用场景1. 应用场景2. 案例案例一&#xff1…...

梯度的概念

梯度 机器学习中,梯度下降法,牛顿法都会用到梯度概念 对于一元函数,梯度可以看成导数 对于多元函数,梯度可以看成偏导数 如果多元函数包含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),它允许你在后端使用不同的日志…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

【kafka】Golang实现分布式Masscan任务调度系统

要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...