目录
DDl(Data Definition Language)语言
DML(Data Manipulation Language)语言
DQL-基础查询(Data Query Language)语言
mysql概述
安装mysql可参考 :mysql数据库安装教程_羡羡ˇ的博客-CSDN博客
MySQL
是一个关系型数据库管理系统
,
由瑞典
MySQL AB
公司开发,目前属于Oracle
旗下产品。
MySQL
流行的关系型数据库管理系统。
![](https://img-blog.csdnimg.cn/77ad7907f9104e0da87d1f64241a5079.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA576h576hy4c=,size_20,color_FFFFFF,t_70,g_se,x_16)
数据库存储数据的特点
● 将数据放到表中,表再放到库中● 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。● 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java中“类”的设计。● 表由列组成,我们也称列为字段。所有表都是由一个或多个列组成的,每一列类似java中的”属性”● 表中的数据是按行存储的,每一行类似于Java中的“对象”。
Sql
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统
DDl(Data Definition Language)语言
它是用来创建和修改数据库表结构的语言。
常用的语句:
create ,alter,drop,rename , 例 :
创建数据库并设置编码格式CREATE DATABASE [if not exists] 数据库名 [ CHARSET utf8]删除数据库DROP DATABASE 数据库名 / [IF EXISTS 数据库名 ];修改字符集ALTER DATABASE 数据库名 CHARSET gbk;
CREATE DATABASE demo --创建数据库
DROP DATABASE demo --删除数据库
我们知道,表是由列构成的, 如何来创建一个表呢 ?
对于具体的某一个表,在创建之前,需要确定表的下列特征:● 表名 ( 表信息 )● 表中的字段● 字段的数据类型和长度● 哪些约束
在创建之前 , 我们首先需要了解mysql里的基本数据类型
整数类型 :
浮点类型 :
数据类型 (M,D)M :精度,数据的总长度; D:标度,小数点后的长度Float(6,2) 、 Double(6,2)
字符串类型 :
char ( n ) 长度为 n 的定长字符串varchar(n ) 最大长度为 n 的可变长字符串
这里简要说明一下 char 与 varchar 的区别
char(n)直接开辟n长度的空间 , 不管实际存放长度是否小于n
而varchar(n) 实际开辟的空间由n的实际值决定
日期类型 :
date 日期, 包含年月日datetime 包含 年月日 时分秒
BLOB类型 :
BLOB是一个二进制大对象,可以容纳可变数量的数据, 用于存储图片视频信息有 4 种 BLOB类型:TINYBLOB、 BLOB、 MEDIUMBLOB 和 LONGBLOB 。它们只是可容纳值的最大长度不同。
Text 类型 :
TINYTEXT 、 TEXT 、 MEDIUMTEXT 和 LONGTEXT
它们(TEXT和BLOB 同)的长度:Tiny :最大长度 255 个字符 (2^8-1)BLOB 或 TEXT :最大长度 65535(2^16-1)Medium :最大长度 16777215(2^24-1)Long 最大长度 4294967295(2^32-1)
表结构及创建表 :
主键:在一张表中代表唯一的一条记录,
不能为空
,
不能重复
约束
:
PRIMARY KEY 设置主键约束NOT NULL 不能为空约束UNIQUE 唯一性约束检查约束 需要设置条件外键约束
主键自动增长 AUTO_INCREMENT
默认值 DEFAULT default_value
字段注释
: comment '注释
'
接着我们来创建一个表
格式 : CREATE TABLE
表名
(
列名 数据类型
[
约束
] [
默认值
] [
注释
],......) 例:
-- 创建表
CREATE TABLE t_user (
-- 主键为id 不能为空 自增
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
-- 编号 int型,长度为5 不能为空
number INT (5) NOT NULL,
-- 名字 varchar类型 不能为空
NAME VARCHAR (10) NOT NULL,
-- 年龄 int类型 check约束必须大于18
age INT (3) CHECK (age > 18),
-- 生日 date型
birthday DATE,
-- 体重
weight DOUBLE,
-- 操作时间
opertime DATETIME
)
建表如下 :
删除和修改表 :
删除表DROP TABLE [if exists ]表名修改表名RENAME TABLE 旧表名 TO 新表名复制表结构CREATE TABLE 新表名 LIKE 被复制表名;
DROP TABLE t_user -- 删除表
RENAME TABLE t_user TO q_user -- 修改表名
修改表结构语法如下,这里先不示例 :
添加主键约束
ALTER TABLE
表名
ADD PRIMARY KEY(
列名
)
ALTER TABLE
表名
DROP PRIMARY KEY
设置自动增长
ALTER TABLE
表名
MODIFY
列名 类型
AUTO _ INCREMENT ;
删除自动增长
ALTER TABLE users MODIFY
列名 类型
;
设置不能为空
ALTER TABLE
表名
MODIFY
列名 类型
NOT NULL ;
ALTER TABLE
表名
MODIFY
列名 类型
NULL ;
添加唯一约束
ALTER TABLE
表名
ADD CONSTRAINT
约束名
UNIQUE(
列名
)
ALTER TABLE
表名
DROP INDEX
约束名
;
添加检查约束
ALTER TABLE
表名
ADD CONSTRAINT
约束名
CHECK(
条件
)
ALTER TABLE
表名
DROP CHECK
约束名
;
添加列
ALTER TABLE
表名
ADD
列名 数据类型
ALTER TABLE
表名
ADD
列名 数据类型
FIRST
ALTER TABLE
表名
ADD
列名 数据类型
AFTER
列名
删除列
ALTER TABLE
表名
DROP
列名
修改列名
ALTER TABLE
表名
CHANGE
旧列名 新列名 数据类型
修改列的数据类型
ALTER TABLE
表名
MODIFY
列名 新数据类型
DML(Data Manipulation Language)语言
●
常用语句: insert,delete,update
插入数据 :
方式
1: INSERT INTO
表名
(
列
1,
列
2……,
列
n) VALUES(
值
1,
值
2…..,
值
n);
方式
2: INSERT INTO
表名
set
列名
1=
值
1,..
列名
n=
值
n;
方式
3: INSERT INTO
表名
(
列
1,
列
2……,
列
n) VALUES(
值
1,
值
2…..,
值
n),(
值
1,
值
2…..,值n);
方式
4:INSERT INTO
表名
(
列
1,
列
2……,
列
n)
查询语句
(
查询的列数与插入列数匹配
)
-- 插入数据
-- 方式1
INSERT INTO t_user (number,NAME,age,birthday,weight,opertime)
VALUES (100,'李雷',20,'2001-04-15',150,NOW())
-- 方式2
INSERT INTO t_user SET number=101,NAME='张三',age=20,
birthday='2001-05-19',weight=200,opertime=NOW()
插入成功
修改数据 :
UPDATE 表名 SET 列名 = ‘新值 ’WHERE 条件
-- 修改数据 where后跟条件
UPDATE t_user SET number='102',age=21 WHERE id=1
删除数据 :
DELETE FROM
表名
WHERE
条件
TRUNCATE TABLE
表名
;
清空整张表
-- 删除数据
DELETE FROM t_user WHERE id=1
DQL-基础查询(Data Query Language)语言
这里只先介绍单表查询, 多表查询后续会提到
语法 : select
查询列表
from
表名
;
-- 简单查询
SELECT number,NAME FROM t_user
结语
本篇文章是为初学者做一个入门, 希望对你们有帮助, 关于mysql8的其他问题将会在后面的文章中一一说到, 例如多表查询等问题, 谢谢阅读