超详细的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渐 ...
随机推荐
- 【Linux】Linux 基础入门
Linux 发行版(发行版之间的联系与区别) 红帽公司开发的RedHat Enterprise Linux,它是全世界内使用最广泛的Linux系统,具有极强的性能与稳定性,并且在全球范围内拥有完善的技 ...
- 文心一言 VS chatgpt (11)-- 算法导论2.3 7题 3.1 4~5题
四.2 ^ (n+1)=O(2 ^ n)成立吗? 2^(2n)=O(2 ^ n)成立吗? 文心一言: chatgpt: 第一个式子不成立,第二个式子成立. 2 ^ (n+1) = O(2 ^ n) 该 ...
- 2021-02-25:给定一个正数数组arr,请把arr中所有的数分成两个集合。如果arr长度为偶数,两个集合包含数的个数要一样多;如果arr长度为奇数,两个集合包含数的个数必须只差一个。请尽量让两个集合的累加和接近,返回最接近的情况下,较小集合的累加和。
2021-02-25:给定一个正数数组arr,请把arr中所有的数分成两个集合.如果arr长度为偶数,两个集合包含数的个数要一样多:如果arr长度为奇数,两个集合包含数的个数必须只差一个.请尽量让两个 ...
- 2022-03-02:k8s安装minio,yaml如何写?
2022-03-02:k8s安装minio,yaml如何写? 答案2022-03-02: yaml如下: apiVersion: apps/v1 kind: Deployment metadata: ...
- MySQL的varchar存储原理:InnoDB记录存储结构
摘要:varchar(M) 能存多少个字符,为什么提示最大16383?innodb怎么知道varchar真正有多长?记录为NULL,innodb如何处理?某个列数据占用的字节数非常多怎么办?影响每行实 ...
- Bracket Sequence
F. Bracket Sequence time limit per test 0.5 seconds memory limit per test 256 megabytes input standa ...
- js 之二 事件对象
事件对象 /当事件的响应函数被触发时,浏览器每次都会讲一个事件对象作为实参传递响应函数; 在事件对象中封装了当前事件相关的一切信息,比如:鼠标的,键盘的操作 // 当鼠标在areaDiv中移动时,在s ...
- C温故补缺(十八):网络编程
计算机网络 参考:TCP三次握手详解. OSI模型 简单分层: 其中,链路层还可以分出物理层和数据链路层.应用层可以分出会话层,表示层和应用层. 七层模型: 链路层:只是物理的比特流和简单封装的数据帧 ...
- .Net Core后端架构实战【3-介入IOC控制反转】
摘要:基于.NET Core 7.0WebApi后端架构实战[2-介入IOC控制反转] 2023/04/09, ASP.NET Core 7.0, VS2022 引言 Inversion of Co ...
- Vue3从入门到精通(一)
Vue3简介 Vue3是Vue.js的最新版本,于2020年9月18日正式发布.Vue3相比Vue2有很多改进和优化,包括但不限于: 更快的渲染速度:Vue3通过使用Proxy代理对象和优化虚拟DOM ...