六、数据库SQL基础及增删改数据

本文介绍了SQL的结构化查询语言,包括DDL(数据定义语言)用于创建、修改和删除数据库对象,DML(数据操作语言)处理数据增删改,以及DCL(数据控制语言)涉及用户权限管理。实例演示了如何使用SQL在MariaDB中修改和删除数据,强调了不同角色对SQL语句的不同需求。
摘要由CSDN通过智能技术生成

1.1 SQL结构化查询语言

1.1.1 什么是SQL
SQL ,英文全称为 Structured Query Language ,中文意思是结构化查询语言,
它是一种对【关系数据库】中的数据进行定义和操作的语言,
是大多数关系数据库管理系统所支持的工业标准语言。
1.1.2 SQL分类?
DDL
DDL 全拼 Data Definition Language ,中文数据【定义语言】,
主要关键字为 CREATE (创建)、 ALTER (修改)、 DROP (删除)等,
负责管理数据库的基础数据(不会对表的内容修改),
例如:增删库、表、索引、用户等,这部分知识【运维人员和开发人员】都要熟悉。
执行 MariaDB> ? Data Definition ,可查相关帮助
DCL DCL 全拼 Data Control Language ,中文数据控制语言,
主要关键字为 GRANT (用户授权)、 REVOKE (权限回收)、
COMMIT (提交)、 ROLLBACK (回滚),上文的 TPL 被这里的 DCL 包含了,
这部分知识需要运维人员熟练。执行 MariaDB> ? Account Management ,可查相关帮助
DML
DML 全拼 Data Manipulation Language ,中文数据操作语言,
主要关键字为、 INSERT (增)、 DELETE (删)、 UPDATE (改),
主要针对数据库里的表里的数据进行操作,
上文的 DQL 被这里的 DML 包含了,这部分知识开发人员要熟练,运维人员熟悉即可。
DQL Data Query Language , 数据查询语言
SELECT (查),对表内容的查询
1.13 SQL帮助
MariaDB> ? 或者 help
MariaDB> ? contents
执行 MariaDB> ? Data Manipulation ,可查相关帮助
重要 :
mysql 帮助 : 打鱼 捕鱼 :
? Data Definition DDL
? Data Manipulation DML
? Account Management 账户管理 DCL
数据库官方网站:
https://dev.mysql.com/doc/refman/8.0/en/

1.2 修改表中的数据

##1.命令语法为:
update 表名 set 字段 = 新值 ,… where 条件;
##2.进入并查看数据
MariaDB [(none)]> use oldboy
MariaDB [oldboy]> select * from stu1;
##3. id 6 的行的名字改为 zhangsan
update stu1 set name='zhangsan' where id=6;
##4. 把名字为 oldboy 的行的年龄改为 25
update stu1 set age=25 where name='oldboy';
##5. 练习 1 :把名字为 littleoldboy 的行的专业改成 python
update stu1 set dept='python' where name='littleboy';
##6. 练习 1 :把名字为 oldgirl 的行的年龄改成 18
update stu1 set age=18 where name='oldgirl';
##7. 练习 3 :把 id 小于 5 的行的专业统一改为 Linux
update stu1 set dept='linux' where id<5;
## 提示:想可视化修改,通过海豚客户端。
## 主键 ( PRIMARY KEY ( id )) 和自增 (AUTO_INCREMENT)
CREATE TABLE stu2 (
id int(10) NOT NULL AUTO_INCREMENT,
name varchar(64) NOT NULL,
age tinyint(3) NOT NULL DEFAULT '0',
dept varchar(16) DEFAULT NULL,
PRIMARY KEY ( id )
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

1.3 删除表中的数据

#0.备份数据
use oldboy;
drop table stu1;
create table stu1(
id int(10) PRIMARY KEY not null AUTO_INCREMENT,
name varchar(20) not null,
age tinyint(2) NOT NULL default '0' ,
dept varchar(16) default NULL
);
insert into stu1 values(1, 'oldboy' ,35, 'net sec' );
insert into stu1 values(2, 'oldgirl' ,25, 'linux' );
insert into stu1 values(3, 'littlegirl' ,5, 'net sec' ),(4, 'littleboy' ,2, 'Linux' );
MariaDB [oldboy]> select * from stu1;\
+ ---- + ------------ + ----- + --------- +
| id | name | age | dept | + ---- + ------------ + ----- + --------- +
| 1 | oldboy | 35 | net sec |
| 2 | oldgirl | 25 | linux |
| 3 | littlegirl | 5 | net sec |
| 4 | littleboy | 2 | Linux |
+ ---- + ------------ + ----- + --------- +
MariaDB [oldboy]> quit
[root@oldboy ~]# mysqldump -uroot -poldboy123 -B oldboy >/opt/bak.sql
[root@oldboy ~]# egrep -v "*|^$|--" /opt/bak.sql
USE oldboy ;
DROP TABLE IF EXISTS stu1 ;
CREATE TABLE stu1 (
id int(10) NOT NULL AUTO_INCREMENT,
name varchar(20) NOT NULL,
age tinyint(2) NOT NULL DEFAULT '0',
dept varchar(16) DEFAULT NULL,
PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;
INSERT INTO stu1 VALUES (1,'oldboy',35,'net sec'),(2,'oldgirl',25,'linux'),(3,'littlegirl',5,'net sec'),
(4,'littleboy',2,'Linux');
#1.命令语法为:
delete from 表名 where 表达式;
#2.删除id6的行
delete from stu1 where id=6;
#3.删除id小于3的行
delete from stu1 where id<3;
#4.删除年龄为21的行
delete from stu1 where age=2 or age=1;
#5.delete删除所有行
delete from stu1;
#6.恢复数据
source /opt/bak.sql
#7.总结:
DQL 语句:表内容查询 select
DML 语句:表内容增删改: insert,delete,update
DDL 语句:库表本身: create,drop,alter
DCL 语句:用户权限: grant,revoke

补:revoke回收权限

语法: REVOKE INSERT ON . FROM 'jeffrey'@'localhost';
创建用户:
grant insert,select on . to littleboy@'localhost' identified by '123';
# 回收 insert
revoke insert ON . from 'littleboy'@'localhost'; # 查看
show grants for littleboy@'localhost';
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值