mysql基础
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql基础,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3477字,纯文字阅读大概需要5分钟。
内容图文
![mysql基础](/upload/InfoBanner/zyjiaocheng/527/cffe50986bef4c9588a4e5c1f6d2ed27.jpg)
五个分类
SQL命令的五种分类
- DDL
Data Definition Language,数据定义语言。
DDL主要用来对Oracle中的对象结构进行操作,不能操作表中的数据。
在表的行和列这两个维度中,DDL只能针对列进行操作。
- create创建
- drop 删除
- alter 修改
- truncate 截断
- DCL
Data Control Language,数据控制语言。
主要控制的是用户的权限。
- grant向用户赋予权限/角色
语法: grant 角色/权限to用户名; - revoke 撤销用户的权限/角色
语法: revoke 角色/权限from用户名;
- DML
Data Manipulation Language,数据操纵语言。
DML主要用来真正操作表中具体的数据内容,在表的行和列这两个维度中,DML可以影响行的数量。
- insert新增
- delete 删除
- update修改
注意事项:
a) :DML中只包含增、删、改三种操作,没有查询。
在SQL分类中,增删改查四种操作是分开来的。增删改属于DML(写入操作),查属于DQL(读取操作)。
这样分类的原因是,增加、删除和修改操作会引起表格中数据的变化,而查询操作不会引起表中数据的变化。对数据库进行的操作分为读和写两种,读指的是查询操作,写指的是增删改操作。如果数据库需要被大量地访问,就应该进行架构的优化:主从复制,读写分离。把用于读的数据和用于写的数据,分成两个或两个以上的库来进行保存。因为一个库如果既读又写的话,会给数据库带来很大的压力。
b):DML语言具有事务性
事务性可以这样理解:除了DML之外的其他语句,一旦执行就会立即生效,而且不能撤销操作。而DML中的增删改操作,执行完毕之后其实并没有立即生效。如果想要使其生效,还需要执行一次提交事务的命令。 在提交事务之前,如果发现数据操作有误,还可以通过回滚指令退回到上一次提交之后的状态,使数据恢复。
-
DQL
Data Query Language,数据查询语言。
指select查询语句。 -
DTL/TCL
Data Transaction Language,数据事务语言。
Transaction Control Language,事务控制语言。
所表达的意思是相同的。
- commit提交事务。执行完毕,确认生效。一旦事务提交,则不可撤销。
- rollback 回滚事务。发现有误,撤回到上一个节点。
- savepoint
数据库中
三大数据类型:
- 数值
- 字符
- 日期
基础指令
-
查询所有数据库
show databases;
-
使用数据库
use <数据库名>
-
查询某个数据库中所有表
show tables;
-
查询表结构
desc <表名>
-
算数运算
mysql> select 1+1;
+-----+
| 1+1 |
+-----+
| 2 |
+-----+
1 row in set (0.16 sec)
在查询的过程中,我们可以把查询到的字段值进行一些算数运算, 并输出结果。
注意,不是所有的字段类型都支持算数运算,只有数值类型和日期类型字段才可以。
1):数值类型字段值的运算
如果字段类型是数值类型,可以进行加减乘除四种运算。
select title,price*10 from bs_book;
2):日期类型字段值的运算
如果字段是日期类型,只能进行加法和减法运算,不能进行乘法和除法。
日期类型的字段值允许和一个数值类型进行加减法运算,减法代表向该日期的过去倒退,加法代表向该日期的未来
推移。注意:参与加减法运算的数值单位是"天”。
select now();
查询当前的日期与时间 年月日 时分秒
select current_date();
查询当前的日期 年月日
select current_time();
查询当前的时间 时分秒
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2020-08-28 23:09:33 |
+---------------------+
1 row in set (0.00 sec)
mysql> select subdate(now(),interval 3 day);
+-------------------------------+
| subdate(now(),interval 3 day) |
+-------------------------------+
| 2020-08-25 23:09:35 |
+-------------------------------+
1 row in set (0.00 sec)
小知识!
- 为什么尽量少的使用*通配符来查询所有字段
select * from bs_book;
因为这样子会多一步查询,先查询出表有哪些字段,再根据所有的字段名,去取所有的字段值。 - distinct 查询所有不重复的字段
select distinct title from bs_book;
后面也可以跟其他字段名,意思为只有所有的都重复才不显示
mysql基础
标签:语言 小知识 control 参与 set 复制 tables 立即生效 sub
本文系统来源:https://www.cnblogs.com/flower1360/p/13580286.html
内容总结
以上是互联网集市为您收集整理的mysql基础全部内容,希望文章能够帮你解决mysql基础所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。