超详细的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渐 ...
随机推荐
- 16.ReentrantLock全解读
大家好,我是王有志,欢迎和我聊技术,聊漂泊在外的生活.快来加入我们的Java提桶跑路群:共同富裕的Java人. 经历了AQS的前世和今生后,我们已经知道AQS是Java中提供同步状态原子管理,线程阻塞 ...
- [SWPUCTF 2021 新生赛]简简单单的逻辑
得到一个.py文件,一般是没壳的,不过还是要养成习惯,查个壳: 意料之中,啥也没有,打开文件: 给了我们一个加密逻辑,然后最后一行给了一个结果:那么就是根据上述的逻辑,反解密出flag就好了 分析一下 ...
- HTAP for MySQL 在腾讯云数据库的演进
摘要:MySQL在充分利用多核计算资源方面比较欠缺,无法同时满足在线业务和分析型业务的客户需求,而单独部署一套专用的分析型数据库意味着额外的成本和复杂的数据链路.本次主题将介绍腾讯云数据库为满足此类场 ...
- 手机端调试工具vConsole
vConsole 一个轻量.可拓展.针对手机网页的前端开发者调试面板. vConsole 是框架无关的,可以在 Vue.React 或其他任何框架中使用. 现在 vConsole 是微信小程序的官方调 ...
- 2020-09-23:TCP头部信息有哪些?
福哥答案2020-09-23:#福大大架构师每日一题# 福哥口诀法:T源目序缺首保 紧确推和复同终 窗校紧选数(TCP格式:源端口,目的端口,序号,确认号,首部长度,保留,紧急位URG,确认位ACK, ...
- 2022-09-11:arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”, 并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。 我们最多能将数组分成
2022-09-11:arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个"块", 并将这些块分别进行排序.之后再连接起来,使得连接的结果和按升序排序后的原数组相同. ...
- Django4全栈进阶之路6 对各类数据库连接设置
Django 4 支持多种类型的数据库连接,包括 MySQL.PostgreSQL.SQLite.Oracle 等.对于不同类型的数据库,需要进行不同的设置.下面是 Django 4 对各类数据库连接 ...
- 【HDU】1559 最大子矩阵 (二维前缀和,动态规划)
动态规划之二维前缀和 题目 给你一个m×n的整数矩阵,在上面找一个x×y的子矩阵,使子矩阵中所有元素的和最大. 输入 输入数据的第一行为一个正整数T,表示有T组测试数据.每一组测试数据的第一行为四个正 ...
- CentOS Linux 7 配置 nginx 支持 CGI
Nginx 本身不能执行外部程序,Nginx 处理 PHP 是通过 PHP 的 fastcgi 管理器(php-fpm)进行处理,然后 nginx 再将结果返回给用户:所以如果我们需要通过 cgi 程 ...
- 【QCustomPlot】下载
说明 使用 QCustomPlot 绘图库辅助开发时整理的学习笔记.同系列文章目录可见 <绘图库 QCustomPlot 学习笔记>目录.本篇介绍 QCustomPlot 的下载. 目录 ...