MySQL数据库基础知识整理第二篇----SQL

本文介绍了SQL的基本概念和语法,包括用于定义数据库对象的DDL,如创建、修改和删除数据库及表;用于数据操作的DML,如插入、更新和删除数据;用于查询数据的DQL,如SELECT语句;以及用于权限控制的DCL,如用户管理和权限授予。此外,还详细讲解了各种数据类型和SQL语句的使用方式。
摘要由CSDN通过智能技术生成

(此文章仅是我自己整理的学习笔记,写博客的原因也是想通过这种方式进行学习的巩固以及督促自己学习,如果文章能对你有些许帮助,我会很高兴的。当然文章有何不足,也可以帮我指出,感谢)

SQL(Structured Query Language):操作关系型数据库的编程语言,定义了一套操作关系型数据库的标准。

SQL:SQL通用语法,SQL分类

SQL通用语法:

        (1)SQL语句可以单行或多行书写,以分号结尾。

        (2)SQL语句可以使用空格/缩进来增强语句的可读性

        (3)MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。

        (4)注释:单行注释(--注释内容/#注释内容)

                            多行注释(/*注释内容*/)

SQL分类:DDL,DML,DQL,DCL

一、DDL(Data Definition Language):数据库定义语言,用来定义数据库对象(数据库,表,字段)

1.DDL操作:

<1>数据库操作

        查询所有数据库:

SHOW DATABSES;

        查询当前数据库:

SELECT DATABASE();

        创建数据库:

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

        删除数据库:

DROP DATABASE [IF EXISTS] 数据库名;

        使用数据库:

SUE 数据库名;

<2>表操作

        查询当前数据库中所有的表:

SHOW TABLES;

        查询表结构

DESCRIBE 表名;

        查询指定表的建表语句

SHOW CREATE TABLE 表名;

        创建表

CREATE TABLE 表名(字段 数据类型 [COMMENT 字段注释])COMMENT 表注释;

        添加字段

ALTER TABLE 表名 ADD 字段名 数据类型 [COMMENT 注释] [约束];

        修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

        修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 型字段名 数据类型 [COMMENT 字段注释] [约束];

        删除字段

ALTER TABLE 表名 DROP 字段名;

        修改表名

ALTER TABLE 表名 RENAME TO 新表名;

        删除表

DROP TABLE [IF EXISTS] 表名;

        删除指定表,并重新创建该表

TRANCATE TABLE 表名;

 2.数据类型

类型

大小范围(有符号)范围(无符号)名称
TINYINT1byte(-128,127)(0,255)小整数型
SMALLINT2byte(-[2^15],[2^15]-1)(0,[2^16]-1)大整数型
MEDIUMINT3byte(-[2^23],[2^23]-1)(0,[2^24]-1)大整数型
INT(INTEGER)4byte(-[2^31],[2^31]-1)(0,[2^32]-1)大整数型
BIGINT8byte(-[2^63],[2^63]-1)(0,[2^64]-1)极大整数型
FLOAT4byte(-3.40E+38,-1.18 E-38),0,(1.18E-38,3.40E+38)0,(1.18 E-38,3.40 E+38)单精度浮点数
DOUBLE8byte(-1.80 E+308,-2.23E-308),0,(2.23E-308,1.80 E+308)0,(2.23E-308,1.80E+308)双精度浮点数
DECIMAL对DECIMAL(M,D),如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

3.字符串类型

类型大小描述
CHAR0—255byte定长字符串
VARCHAR0—[2^16]-1byte变长字符串
TINYBLOB0—255byte不超过255个字符的二进制数据
TINYTEXT0—255byte短文本字符串
BLOB0—[2^16]-1byte二进制形式的长文本数据
TEXT0—[2^16]-1byte长文本数据
MEDIUMBLOB0—[2^24]-1byte

二进制形式的中长度文本数据

MEDIUMTEXT

0—[2^24]-1byte

中等长度文本数据

LONGBLOB0—[2^32]-1byte二进制形式的极大文本数据
LONGTEXT0—[2^32]-1byte极大文本数据

4.日期时间类型

类型大小范围格式名称
DATE3byte1000-01-01至9999-12-31YYYY-MM-DD

日期值

TIME3byte-838:59:59至838:59:59HH:MM:DD是兼职或持续时间
YEAR1byte1901至2155YYYY年份值
DATETIME8byte1000-01-01 00:00:00至9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP4byte1970-01-01 00:00:00/2037年某时YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳

二、DML(Data Manipulation Language):数据操作语言,用来对数据库中的数据进行增删改

1.DML操作

<1>数据操作

        添加数据

INSERT INTO 表名(字段1,字段2……) VALUES(数值1,数值2……);
INSERT INTO 表名 VALUES(数值……);

        批量添加数据

INSERT INTO 表名(字段) VALUES(数值),(数值),……;
INSERT INTO 表名 VALUES(数值),(数值),……;

        修改数据

UPDATE 表名 SET 字段=数值 [WHERE 条件];

        删除数据

DELECT FROM 表名 [WHERE 条件];

三、DQL(Data Query Language):数据库查询语言,用来查询数据库中表的记录

1.DQL操作

<1>查询语句

SELECT 字段 FROM 表名 HWERE 条件 GROUP BY 字段 HAVING 条件 ORDER BY ASC/DESC(升序/降序) 
LIMIT 分页参数;

<2>查询

        查询多个字段

SELECT 字段1,字段2,…… FROM  表名;

        查询所有字段

SELECT * FROM 表名;

        设置别名

SELECT 字段 [AS] 别名 FROM 表名;

        去重记录

SELECT DISTINCT 字段 FROM 表名;

<3>分组查询

SELECET 字段1,字段2 FROM 表名 WHERE 条件 GROUP BY 字段1,字段2 HAVING 分组后条件;

        (1)where与having的区别:

                执行时机不同:where条件是分组之前过滤数据,不参与分组。having是分组后对数据进行过滤。

                判断条件不同:where不能对聚合函数进行判断,而having可以。

        (2)多字段分组:先对“字段1”进行分组,然后在字段1的每个组别中对字段2进行分组。

<4>分页查询

SELECT * FROM 表名 WHERE 条件 LIMIT 起始索引,分页记录数;

        (1)起始索引从0 开始,起始索引=(查询页码-1)*每页记录数

        (2)如果是查询的第一页,起始索引可省略。

                例如:查询第一页的数据,要求每页显示20个数据。

                起始索引=(1-1)*20=0,因此省略不写

SELECT * FROM 表名 WHERE 条件 LIMIT 20;

四、DCL(Data Control Language):数据控制语言,用来创建数据库用户,控制数据库的访问权限

1.DCL操作

<1>管理用户

        查询用户

USE MYSQL;
SELECT * FROM USER;

        创建用户

CREATE USER '用户名'@'主机名' IDENTIFUED BY '密码';

         修改用户密码:

ALTER USER '用户名'@'主机名' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '新密码';

        删除用户:

DROP USER '用户名'@'主机名';

        注意:主机名可以使用通配符(%)表示所有主机

<2>权限控制

权限名称授权权限名称授权
ALL,ALL PRIVAILEGES所有权限SELECT 查询数据
INSERT 插入数据UPDATE修改数据
DELETE删除数据ALTER修改表

DROP 

删除数据库/视图/表CREATE创建数据库/表

        查询权限

SHOW GRANTS FOR '用户名'@'主机名';

        授予权限

GRANT 权限名称 ON 数据库名,表名 TO '用户名'@'主机名';

        撤销权限

REVOKE 权限名称 ON 数据库名,表名 FROM '用户名'@'主机名';

        注意:多个权限之间使用逗号分隔,授权时,数据库名和表名可以使用通配符表示。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值