MySQL 数据库

一、介绍

        MySQL数据库是一个RDBMS(关系型数据库:建立在关系模型基础上,由多张互相连接的二维表组成)。

1.1 MySQL数据类型

        MySQL数据类型主要有数值类型字符串类型日期类型三种。

1.1.1 数值类型

名称大小signed类型的取值范围unsigned类型的取值范围
TINYINT1字节[ -128, 127 ][ 0, 255 ]
SMALLINT2字节[ -32768, 32767 ][ 0, 65536 ]
MEDIUMINT3字节[ -8388608, 8388607][ 0, 16777215 ]
INT或INTEGER4字节[ -2147483648, 2147483647 ][ 0, 4294967295 ]
BIGINT8字节[ -2^63, 2^63 - 1][ 0, 2^64 - 1 ]
FLOAT(M, D)4字节[ -3.403 E+38, 3.403 E+38 ]0 和 [ 1.175 E-38, 3.403 E+38 ]
DOUBLE(M, D)8字节[ -1.797 E+308, 1.798 E+308 ]0 和 [ 2.225 E-308,  1.798 E+308]
DECIMAL×

依赖于M(精度)与D(标度)的值

解释:精度M:小数的总位数

           标度D:小数点后的位数

 例如:12.345的精度为5,标度为2

依赖于M(精度)与D(标度)的值

         默认采用signed类型,如果想使用unsigned类型,则需要在类型后加上UNISIGNED关键字

1.1.2 字符串类型

名称(每个) 大小描述
CHAR(n)0-255 bytes

定长字符串

n个字符,不满的用空格占

性能varchar

VARCHAR(n)0-65535 bytes

变长字符串

0-n个字符,自动计算占几个字节

性能char

TINYBLOB0-255 bytes短二进制数据
TINYTEXT0-255 bytes短文本字符串
BLOB0-65535 bytes二进制数据
TEXT0-65535 bytes文本数据
MEDIUMBLOB0-16 777 215 bytes中等二进制数据
MEDIUMTEXT0-16 777 215 bytes中等文本数据
LONGBLOB0-4 294 967 295 bytes巨大二进制数据
LONGTEXT0-4 294 967 295 bytes巨大文本数据

1.1.3 日期类型

名称大小范围格式描述
DATE3字节

1000-01-01

        至

9999-12-31

YYYY-MM-DD

日期
TIME3字节

-838:59:59

         至

838:59:59

HH:MM:SS时间
YEAR1字节

1901 至  2155

YYYY年份
DATETIME8字节

1000-01-01 00:00:00 

         至

9999-12-31 23:59:59

YYYY-MM-DD

HH:MM:SS

日期 + 时间
TIMESTAMP4字节

1970-01-01 00:00:01

          至

2038-01-19 03:14:07

YYYY-MM-DD

HH:MM:SS

时间戳

二、SQL语句

    根据常用习惯,本文的SQL语句中的中括号[ ... ]中的内容表示可以写,也可以不写

2.1 SQL语句的通用语法

1SQL语句支持多行书写,用分号结尾
2SQL语句允许使用Tab空格
3MySQL的SQL语句,不区分大小写,建议:关键字使用大写
4

注释

        单行:使用 --#

        多行:使用 /* */

2.2 SQL语句分类

        SQL语句分类主要有以下四种

分类全称说明
DDLData Definition Language数据定义语言,用于定义数据库对象(数据库字段)
DMLData Manipulation Language数据操作语言,用于对数据库表中数据进行
DQLData Query Language数据查询语言,用于查询数据库表中的记录
DCLData Control Language数据控制语言,用于创建数据库用户、控制访问权限

2.3 DDL语句

2.3.1 DDL数据库操作

操作语句
查询所有数据库SHOW DATABASES ;
查询当前数据库SELECT DATABASE() ;
创建数据库

CREATE DATABASE [ IF NOT EXISTS ] 数据库名

                                  [ DEFAULT CHARSET 字符集]

                                  [ COLLATE 排序规则 ] ;

解释: [ ]表示可以写,也可以不写的参数

                IF NOT EXIST 表示 如果数据库名称不存在,才创建此数据库

                DEFAULT CHARSET 用于指定数据库的字符集,如utf8mb4

                COLLATE 用于指定数据库的排序规则

删除数据库DROP DATABASE [ IF EXISTS ] 数据库名 ;
使用数据库USE 数据库名 ;

2.3.2 DDL表操作

操作语句
查询当前数据库所有表SHOW TABLES ;
查询表结构DESC 表名称 ;
查询指定表的建表语句

SHOW CREATE TABLE 表名称 ;

创建一个新的表

CREATE TABLE 表名称(

        字段1 名称       字段1类型        [ COMMENT 字段1注释 ] ,

        字段2 名称       字段2类型        [ COMMENT 字段2注释 ] ,

        字段3 名称       字段3类型        [ COMMENT 字段3注释 ] ,

        ...

        字段n 名称       字段n类型        [ COMMENT 字段n注释 ]

) [ COMMENT 表注释 ];

修改表名称ATLTER TABLE 表名称 RENAME TO 表名称 ;
删除表DROP TABLE [ IF EXISTS ] 表名称 ;

删除重建表

(相当于清空表)

TRUNCATE TABLE 表名称 ;

(删除再重建,相当去清空了表中所有数据

往表中添加字段(列)ALTER TABLE 表名称 ADD 字段名称 字段类型 [ COMMENT 字段n注释 ] ;
修改字段类型

ALTER TABLE 表名称 MODIFY 字段名称 类型 [ COMMENT 字段n注释 ];

        ※注※:这里如果需要保留之前的默认值注释等,一样需要像创造表的格式写上,不然原有的注释默认值约束将被清空。下文同理。

修改字段名称+类型

ALTER TABLE 表名称 CHANGE

                        旧字段名称 新字段名称 类型 [ COMMENT 字段n注释 ];

删除表中字段ALTER TABLE 表名称 DROP 字段名称;

2.4 DML语句

        DML语句用于对表中数据进行增加删除修改三种操作。

2.4.1 添加数据

        增加关键字:INSERT

操作语句
指定字段添加数据INSERT INTO 表名称 (字段名1, 字段名2, ...) VALUES(值1, 值2, ...) ;
全部字段添加数据INSERT INTO 表名称 VALUES(值1, 值2, ...) ;
批量添加数据

INSERT INTO 表名称 (字段名1, 字段名2, ...) VALUES(值1, 值2, ...) ,

                                                                                 (值1, 值2, ...) , 

                                                                                 (值1, 值2, ...) ;

INSERT INTO 表名称 VALUES(值1, 值2, ...) , 

                                              (值1, 值2, ...) , 

                                              (值1, 值2, ...) ;

2.4.2 删除数据

        删除关键字:DELETE

操作语句

删除指定条件的数据
 

DELETE FROM 表名称  [ WHERE 条件 ] ;

                (如果未指定条件,则 删除全部数据)

举例:

tb_user表中name为Daniel的那条数据删除

       DELETE FROM tb_user WHERE name=Daniel ;

2.4.3 修改数据

        修改关键字:UPDATE

操作语句
修改指定条件的数据

UPDATE 表名称 SET 字段名1=值1, 字段名2=值2, ... [ WHERE 条件 ] ;

举例:

tb_user表中nameTinyC的那条数据,将其中的age修改为18

       UPDATE tb_user SET age=18 WHERE 条件 name='TinyC' ;

2.5 DQL语句

        DQL语句适用于查询数据表中的记录()。

2.5.1 基本查询

        查询的关键字为:SELECT

操作语句
查询全部字段SELECT * FROM 表名称 ;    (这里的 * 表示通配符)
查询多个字段

SELECT 字段1 [ AS 别名1 ], 字段2 [ AS 别名2 ], ... FROM 表名称 ;  

解释:1. 查询结果中,可以用自定义别名展示字段名称

           2. AS关键字是可以省略的,也就是以下用法也正确:

                         SELECT 字段1  别名1  FROM 表名称 ;

对于查询的结果

(注意!不是修改表内容)

去除重复记录

关键字:DISTINCT

用法举例:SELECT DISTINCT 字段1 , 字段2 FROM 表名称 ; 

2.5.2 条件查询

         条件查询的关键字为:WHERE

操作语句
查询指定条件的记录SELECT 字段列表 FROM 表名称 WHERE 条件列表

         其中,条件列表有多个条件组成。条件可以有以下几种:

比较运算符解释逻辑运算符解释
>大于AND&&

逻辑与

(多个条件同时成立)

>=大于等于OR||

逻辑或

(多个条件中任意一个成立)

<小于NOT!非,不是
<=小于等于
=等于
!= <>不等于

BETWEEN a AND b

范围在[a, b]中   (闭区间)
IN(v1, v2, ...)符合值等于v1, v2, ...其中一个

LIKE _ %

占位符,模糊匹配

(下划线 _ 匹配单个字符)

(百分号 % 匹配多个字符)

IS NULL判断是否为NULL

这里的 LIKE 占位符比较抽象,以下例子用于说明具体使用方法:

        1. 查询 tb_user 表中 name为三个字,并且第三个字是 的人的id

                SELECT DISTINCT id FROM tb_user WHERE name LIKE '__' ;

        2.查询 tb_user 表中 的人的id

                SELECT DISTINCT id FROM tb_user WHERE name LIKE '%' ;

3.5.2 聚合函数

        聚合函数指的是将一列数据作为一个整体,进行纵向计算。常用聚合函数如下:

函数名称解释
count(字段名称)统计数量
max(字段名称)最大值
min(字段名称)最小值
avg(字段名称)平均值
sum(字段名称)求和

        在使用聚合函数值,表中的NULL值是不参与聚合函数的计算的。

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值