当前位置:网站首页>SQL语句
SQL语句
2022-07-01 06:17:00 【HHYZBC】
目录
SQL语句是什么
SQL语句又叫做结构化查询语言,程序员通过编写SQL语句,如何数据库否则执行SQL语句,最终完成数据库中数据的增删改查操作。学习数据库其实就是对SQL语句的学习。
SQL语言的分类
SQL语言有很多,对命令进行分门别类,这样更容易记忆,
- DQL
- 表示数据查询语言(凡是带有select关键字的都是查询语句)
- select...
- SQL中DQL语句(查询)_HHYZBC的博客-CSDN博客
https://blog.csdn.net/HHYZBC/article/details/125190904
- DML
- 表示数据操作语言(凡是对表当中的数据进行增删改的都是DML)
- insert...
- 增
- deletr...
- 删
- updata...
- 改
- SQL中DML语句(数据操作语言)_HHYZBC的博客-CSDN博客_sql的dml中核心的操作语句
https://blog.csdn.net/HHYZBC/article/details/125191912
- DDL
- 表示数据定义语言(凡是带有creata、drop、alter的都是DDL)
- DDL操作的是表的结构。不是表中的数据
- creata...
- 新建,等同于增
- drop...
- 删除
- alter...
- 修改
- SQL中DDL语句(数据表定义语言)_HHYZBC的博客-CSDN博客_sql的ddl语句
https://blog.csdn.net/HHYZBC/article/details/125191824
- TCL
- DCL
- 表示数据控制语言
- grant
- 授权
- revoke
- 撤销授权
数据处理函数(单行处理函数)
数据处理函数又被称为单行处理函数
单行处理函数的特点:一个输入对应一个输出。
和单行处理函数相对的是:多行处理函数。(多行处理函数特点:多个输入,对应1个输出!),具体下面会写。
- 常见的单行处理函数
- lower()
- 转换小写
- lower(被处理的字符串)
- upper()
- 转换大写
- upper(被处理的字符串)
- substr()
- 截取
- (substr( 被截取的字符串, 起始下标,截取的长度))
- 这里的起始下标为1.
- concat()
- 拼接字符串
- concat(字符串1,字符串2)
- 字符串2会接到字符串1的后面
- length()
- 取长度
- length(数据)
- trim()
- 去空格
- trim(被处理的字符串)
- str_to_date()
- 将字符串转换成日期
- str_to_date('字符串日期', '日期格式')
- mysql的日期格式:
%Y 年
%m 月
%d 日
%h 时
%i 分
%s 秒 - 如果字符串日期的格式是%Y-%m-%d,则可以不使用这个函数,MySQL会自动进行转换
- date_format()
- 日期格式转换为字符串类型
- date_format(日期类型数据, '日期格式')
- format()
- 设置千分位
- format(数字, '格式')
- 格式需要在前面加一个$号
- round()
- 四舍五入
- round(值,保留位数)
- 保留位数可以是负数,假如为-1时,则会保留到十位,以此类推。
- rand()
- 生成随机数
- 生成的随机数都是整数部分为0的小数。
- 如果需要取100以内的随机数,可以将生成的随机数*100.
- ifnull()
- 可以将 null 转换成一个具体值
- ifnull(数据, 被当做哪个值)
- ifnull是空处理函数。专门处理空的。在所有数据库当中,只要有NULL参与的数学运算,最终结果就是NULL。
- now()
- 获取当前时间
- lower()
分组函数(多行处理函数)
多行处理函数的特点:输入多行,最终输出一行。
常用的分行处理行数
- count()
- 计数
- sum()
- 求和
- avg()
- 平均值
- max()
- 最大值
- min()
- 最小值
- 注意:
- 分组函数在使用的时候必须先进行分组,然后才能用。如果你没有对数据进行分组,整张表默认为一组。
- 分组函数自动忽略NULL,你不需要提前对NULL进行处理。
- 分组函数中count(*)和count(具体字段)有什么区别?
- count(具体字段):表示统计该字段下所有不为NULL的元素的总数。
- count(*):统计表当中的总行数。(只要有一行数据count则++)。因为每一行记录不可能都为NULL,一行数据中有一列不为NULL
- 分组函数不能够直接使用在where子句中。
- 因为分组函数在使用的时候必须先分组之后才能使用。而在where中出现的话,这个时候还没有分组。
搜索引擎
mysql支持九大存储引擎,当前5.5.36支持8个。版本不同支持情况不同。
可以使用:show engines 查看有哪些搜索引擎,需要了解的搜索引擎只有3种:
MyISAM存储引擎
它管理的表具有以下特征:
使用三个文件表示每个表:
格式文件 — 存储表结构的定义(mytable.frm)
数据文件 — 存储表行的内容(mytable.MYD)
索引文件 — 存储表上索引(mytable.MYI):索引是一本书的目录,缩小扫描范围,提高查询效率的一种机制。
可被转换为压缩、只读表来节省空间
MyISAM存储引擎特点:
可被转换为压缩、只读表来节省空间
这是这种存储引擎的优势!!!!
MyISAM不支持事务机制,安全性低。
InnoDB存储引擎
这是mysql默认的存储引擎,同时也是一个重量级的存储引擎。
InnoDB支持事务,支持数据库崩溃后自动恢复机制。
InnoDB存储引擎最主要的特点是:非常安全。
它管理的表具有下列主要特征:
– 每个 InnoDB 表在数据库目录中以.frm 格式文件表示
– InnoDB 表空间 tablespace 被用于存储表的内容(表空间是一个逻辑名称。表空间存储数据+索引。)
– 提供一组用来记录事务性活动的日志文件
– 用 COMMIT(提交)、SAVEPOINT 及ROLLBACK(回滚)支持事务处理
– 提供全 ACID 兼容
– 在 MySQL 服务器崩溃后提供自动恢复
– 多版本(MVCC)和行级锁定
– 支持外键及引用的完整性,包括级联删除和更新
InnoDB最大的特点就是支持事务:
以保证数据的安全。效率不是很高,并且也不能压缩,不能转换为只读,
不能很好的节省存储空间。
MEMORY存储引擎
使用 MEMORY 存储引擎的表,其数据存储在内存中,且行的长度固定,
这两个特点使得 MEMORY 存储引擎非常快。
MEMORY 存储引擎管理的表具有下列特征:
– 在数据库目录内,每个表均以.frm 格式的文件表示。
– 表数据及索引被存储在内存中。(目的就是快,查询快!)
– 表级锁机制。
– 不能包含 TEXT 或 BLOB 字段。
MEMORY 存储引擎以前被称为HEAP 引擎。
MEMORY引擎优点:查询效率是最高的。不需要和硬盘交互。
MEMORY引擎缺点:不安全,关机之后数据消失。因为数据和索引都是在内存当中。
对于SQL语句来说,是通用的,
所有的SQL语句以“;”结尾。mysql是不见“;”不执行,“;”表示结束!,
另外SQL语句不区分大小写,都行。
注意:在所有的数据库当中,字符串统一使用单引号括起来,
单引号是标准,双引号在oracle数据库中用不了。但是在mysql
中可以使用。
再次强调:数据库中的字符串都是采用单引号括起来。这是标准的。
双引号不标准。
在数据库当中null不能使用等号进行衡量。需要使用is null
因为数据库中的null代表什么也没有,它不是一个值,所以不能使用
等号衡量。
其他命令
登录数据库
- mysql -uroot -p
查看当前使用的数据库
- select database();
只看表的结构,有一个命令:
- desc 表名;
显示当前时间
- select now();
退出数据库
- exit/quit/ctr+d
- 使用任意一个即可
查看所有数据库
- show databases;
创建数据库
- create database 数据库名 charset=编码格式;
- 编码格式一般为utf8即可
使用数据库
- use 数据库名;
删除数据库
- drop database 数据库名;
查看当前数据库中所有表
- show tables;
查看表结构
- desc 表名;
查看创表SQL语句
- show create table 表名;
查看创库SQL语句
- show create database 数据库名;
查看约束
select * from information_schema.TABLE_CONSTRAINTS where TABLE_NAME="表名";
- 表示指定表内的约束名,where可以省略,表示查看全部的约束名

- 红色的表示约束名,黄色的表示约束
边栏推荐
- To sort out the anomaly detection methods, just read this article!
- 【ManageEngine卓豪】局域网监控的作用
- 10 golang operator
- 证券类开户有什么影响 开户安全吗
- Top 10 Free 3D modeling software for beginners in 2022
- 阿里OSS Postman Invalid according to Policy: Policy Condition failed: [“starts-with“, “$key“, “test/“]
- 【ManageEngine】如何实现网络自动化运维
- 子类调用父类的同名方法和属性
- IT服务管理(ITSM)在高等教育领域的应用
- ForkJoin和Stream流测试
猜你喜欢

MongoDB:一、MongoDB是什么?MongoDB的优缺点

HCM Beginner (IV) - time

Distributed lock implementation

【ManageEngine】如何实现网络自动化运维

SystemVerilog learning-10-validation quantification and coverage

3D printer threading: five simple solutions

three.js小结

解决麒麟V10上传文件乱码问题

IT服务管理(ITSM)在高等教育领域的应用

Multi label lsml for essay learning records
随机推荐
1034 Head of a Gang
lxml模块(数据提取)
To sort out the anomaly detection methods, just read this article!
HCM Beginner (IV) - time
数据库产生死锁了请问一下有没有解决办法
[postgraduate entrance examination advanced mathematics Wu Zhongxiang +880 version for personal use] advanced mathematics Chapter II Basic Stage mind map
ManageEngine卓豪助您符合ISO 20000标准(四)
Freeswitch dial the extension number
Discrimination between left and right limits of derivatives and left and right derivatives
Self confidence is indispensable for technology
【ManageEngine卓豪】移动终端管理解决方案,助力中州航空产业数字化转型
SystemVerilog learning-06-class encapsulation
Restframework-simplejwt rewrite authentication mechanism
ONEFLOW source code parsing: automatic inference of operator signature
Oracle create user + Role
做技术,自信不可或缺
HCM Beginner (I) - Introduction
Excel visualization
Small guide for rapid completion of mechanical arm (VI): stepping motor driver
交换机配置软件具有的作用
https://blog.csdn.net/HHYZBC/article/details/125190904