超详细的mysql总结(基本概念、DDL、DML)

// 1、展示所有的数据库,即使没有创建任何一个数据库,系统默认也会有四个数据库
SHOW DATABASES;
// 2、选择数据库 mysql
USE mysql;
// 3、显示当前所选择的数据库
SELECT DATABASE();
// 4、如果不存在数据库 studySql 则创建
CREATE DATABASE IF NOT EXISTS `studySql`;
// 5、如果存在数据库 studySql 则删除
DROP DATABASE IF EXISTS `studySql`;

1、字符串类型
char定义固定长度的字符串,长度在0-255之间,varchar定义可变长的字符串,长度在0到65535之间的值,text可存储更大的字符串 2、数字类型
数字分为整数、浮点数、精确到小数点的数
整数类型:INT,
浮点类型:FLOAT,DOUBLE,
精确数字:DECIMAL,NUMERIC 3、日期类型
(1) YEAR,格式如YYYY,只有年份,范围从 1901到2155,和 0000
(2) DATE,格式如YYYY-MM-DD,有年月日,范围从 '1000-01-01' 到 '9999-12-31'
(3) DATATIME,格式如 YYYY-MM-DD hh:mm:ss,有年月日时分秒,范围从 '1970-01-01 00:00:01' 到'2038-01-19 03:14:07'
(4) DATASTAMP / TIMESTAMP,比DATATIME还要精确6位,格式如 YYYY-MM-DD hh:mm:ss.xxxxxx,
范围从'1000-01-01 00:00:00.000000'到'9999-12-31 23:59:59.999999'
以上的数据类型用于创建表时对字段进行补充,除了补充之外,还应该对字段有限制,比如用户的手机号码不可重复,用户要添加一个唯一的id值来表示其“身份”,这些限制就是表约束,我们通常有以下几种方式来对表进行约束
1、主键
主键代表唯一的值,如id,主键不可重复,也不可以为空,用字段 PRIMARY KEY 来表示
2、唯一键
不可重复,但允许为空,比如手机号码,用字段UNIQUE来表示
3、AUTO_INCREMENT
当我们没有给某一字段设置值的时候,希望它自动增长,需要数据类型为数字类型
4、NOT NULL
不允许为空
5、DEFAULT
设置默认值
6、外键在下一篇关于DQL的总结中具体说明~
有了以上的概念,我们就可以在数据库中创建一张“用户表”了
CREATE TABLE IF NOT EXISTS `person` (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) ,
telephone VARCHAR(20) UNIQUE NOT NULL,
birth TIMESTAMP
)
在这张表里插入、删除、修改一些数据
// 给每一个字段一一对应设置值
INSERT INTO `person` VALUES (9, 'judy', '18877776666', '1998-08-08');
INSERT INTO `person` VALUES (10, 'kiki', '18012345678', '2000-08-10');
// id 可自增、birth设置默认参数
INSERT INTO `person` (name, telephone) VALUES ('alice', '15600000000');
// 修改数据
UPDATE `person` SET NAME = 'xiaoming' WHERE id = 10;
// 删除元素
DELETE FROM `person` WHERE id = 9;
// 清空表所有内容
DELETE FROM `person`
// 查询表里所有数据
SELECT * FROM `person`
// 删除表
DROP TABLE IF EXISTS `person`
部分sql语句执行的结果如下图所示

// 修改表名(将表名person改为users)
ALTER TABLE `person` RENAME TO `users`;
// 修改表字段(将telephone修改为phone,数据类型为varchar)
ALTER TABLE `users` CHANGE telephone phone VARCHAR(20);
// 修改表数据类型(将birth的类型修改为Data,默认值为当前时间)
ALTER TABLE `users` MODIFY DATATIME DEFAULT CURRENT_TIMESTAMP;
// 增加列 gender
ALTER TABLE `users` ADD gender varchar(10);
ALTER TABLE `user` ADD updateTime TIMESTAMP;
// 删除列
ALTER TABLE `user` DELETE updateTime;
// 查看表结构
DESC `users`

// 根据表结构创建另外一个表(复制)
CREATE TABLE `user1` LIKE `users`
// 根据另外一个表中的所有内容(不包括表结构), 创建新的表
CREATE TABLE `user3` AS (SELECT * FROM `user`)
// 查看创建表的sql语句
SHOW CREATE TABLE `users`
以上就是mysql的基本概念以及基本操作,关于 DQL( Data Query Language),数据查询的部分总结在下一篇文章中~
超详细的mysql总结(基本概念、DDL、DML)的更多相关文章
- 超详细讲解mysql存储过程中的in/out/inout
存储过程 大概定义:用一个别名来描述多个sql语句的执行过程. 最简单 delimiter // create PROCEDURE p1() begin select * from userinfo; ...
- MySql用statement实现DDL,DML,DQL的操作Demo
Demo1 Connection connection=null; Statement stmt=null; int result=-1; try { Class.forName("com. ...
- 超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数
超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数 介绍galera cluster原理的文章已经有一大堆了,百度几篇看一看就能有相关了解,这里就不赘述了.本文主 ...
- Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql)
转载自:Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql) 我的系统是阿里云的,香港的系统,本人选择的是系统镜像:CentOS 7.3 64位. 具体步骤: 配置Jav ...
- 详细分析MySQL事务日志(redo log和undo log)
innodb事务日志包括redo log和undo log.redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作. undo log不是redo log的逆向过程,其实它 ...
- 详细分析MySQL事务日志(redo log和undo log) 表明了为何mysql不会丢数据
innodb事务日志包括redo log和undo log.redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作. undo log不是redo log的逆向过程,其实它 ...
- MyCat安装与测试教程 超详细!
MyCat安装与测试教程 超详细! MyCat基础知识 一.什么是MYCAT? 1. 一个彻底开源的,面向企业应用开发的大数据库集群 2. 支持事务.ACID.可以替代MySQL的加强版数据库 3. ...
- RabbitMQ安装说明文档(超详细版本)
RabbitMQ安装说明文档(超详细版本) 1. 安装依赖环境 在线安装依赖环境: yum install build-essential openssl openssl-devel unixODBC ...
- 超强、超详细Redis数据库入门教程
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...
- 理解MySQL——架构与概念
写在前面:最早接触的MySQL是在三年前,那时候MySQL还是4.x版本,很多功能都不支持,比如,存储过程,视图,触发器,更别说分布式事务等复杂特性了.但从5.0(2005年10月)开始,MySQL渐 ...
随机推荐
- [SWPUCTF 2021 新生赛]简简单单的逻辑
得到一个.py文件,一般是没壳的,不过还是要养成习惯,查个壳: 意料之中,啥也没有,打开文件: 给了我们一个加密逻辑,然后最后一行给了一个结果:那么就是根据上述的逻辑,反解密出flag就好了 分析一下 ...
- 2023-03-14:读取摄像头,并且显示视频。代码用go语言编写。
2023-03-14:读取摄像头,并且显示视频.代码用go语言编写. 答案2023-03-14: 大体流程如下: 导入所需的库和包. 初始化 ffmpeg 和 SDL2 库. 打开摄像头并创建 AVF ...
- 2020-11-10:golang中的接口,类型不空,值为空,如何判断是nil?
福哥答案2020-11-10: reflect.ValueOf(接口变量).IsNil(),用这个即可判断.对于值类型,会panic.两种方法如下:1.异常判断:recover捕获.2.类型判断:re ...
- 2021-10-09:杨辉三角。给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。力扣118。
2021-10-09:杨辉三角.给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行.在「杨辉三角」中,每个数是它左上方和右上方的数的和.力扣118. 福大大 答案2021-10 ...
- lec-6-Actor-Critic Algorithms
从PG→Policy evaluation 更多样本的均值+Causality+Baseline 减少variance 只要拟合估计Q.V:这需要两个网络 Value function fitting ...
- Ubuntu 18.04 (Bionic) 简单快速的安装mongodb
按步骤走,不带脑子式安装(注意4.0版本mongodb官方已经不再支持,以下代码中可以修改mongodb版本号安装,目前最新版为6.0,如果懒得改直接用也可以,文章后边第三章第一条代码会直接升级为最新 ...
- 学习原根 by OI-wiki
根据 OI-wiki 的讲解,加以自己的理解和简化.偏重于算法竞赛而不是数学竞赛. 前置知识: 费马小定理:\(a^{p-1} \equiv 1(\mod p)\),\(p\) 为质数. 欧拉定理:\ ...
- k8s实战案例之部署Nginx+Tomcat+NFS实现动静分离
1.基于镜像分层构建及自定义镜像运行Nginx及Java服务并基于NFS实现动静分离 1.1.业务镜像设计规划 根据业务的不同,我们可以导入官方基础镜像,在官方基础镜像的基础上自定义需要用的工具和环境 ...
- JupyterLab Server 搭建与使用笔记
两三个月前,有幸拿到了云筏的一个 4 核 16G,1TB硬盘,300M带宽位于欧洲的云服务器,自带的开箱即用的 RStudio Server 也非常给力,但最近这两天在升级 R 的时候遇上了不少问题, ...
- 从0搭建Vue3组件库(九):VitePress 搭建部署组件库文档
VitePress 搭建组件库文档 当我们组件库完成的时候,一个详细的使用文档是必不可少的.本篇文章将介绍如何使用 VitePress 快速搭建一个组件库文档站点并部署到GitHub上 安装 首先新建 ...