后台(02)——MySQL(2)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制Android多分...

探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制


Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南


自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理


版权声明


SQL简述

Structure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性

SQL的优点

  • 简单易学,具有很强的操作性
  • 绝大多数重要的数据库管理系统均支持SQL
  • 高度非过程化;用SQL操作数据库时大部分的工作由DBMS自动完成

SQL的分类

  • DDL(Data Definition Language)
    数据定义语言,用来操作数据库、表、列等;
    常用语句:CREATE、 ALTER、DROP
  • DML(Data Manipulation Language)
    数据操作语言,用来操作数据库中表里的数据;
    常用语句:INSERT、 UPDATE、 DELETE
  • DCL(Data Control Language)
    数据控制语言,用来操作访问权限和安全级别;
    常用语句:GRANT、DENY
  • DQL(Data Query Language)
    数据查询语言,用来查询数据
    常用语句:SELECT

在此,请注意区分DDL和DML:
它们两者的作用对象和级别不一样。DDL操作的对象是数据库,或者一张表,或者表中的某列;DML操作的是表里的数据。

在了解完这些基础知识之后,我们来依次详细学习DDL、DML、DCL、DQL


DDL

创建数据库

create database db1;

创建名字为db1的数据库

show create database db1;

查看刚才创建的数据库db1,结果如下:

| Database | Create Database
| db1          | CREATE DATABASE db1 /!40100 DEFAULT CHARACTER SET utf8 /**

从这里可以看出,刚才创建的数据库采用的是utf8作为字符集。

当然,我们还可以在创建数据库时为其指定字符集

create database db2 character set gbk;

查询数据库

show databases;

查询出所有的数据库

删除数据库

drop database db2;

其实,从这也可以看出来创建数据库和删除数据库是非常类似的,只不过它们的关键是不同;前者使用的是create后者是drop

修改数据库

alter database db1 character set gbk;

将数据库db1的字符集修改为gbk

切换数据库

use db1;

表示现在开始使用数据库db1

查看当前使用的数据库

select database();

请注意该语句最后有个括号()

创建表

语法如下:

create table 表名(
          字段1 字段类型,
          字段2 字段类型,
          ……………
          字段n 字段类型
);

示例,创建一张员工表:

这里写图片描述

在此创建一张员工表,包含了员工的基本信息。

查看当前数据库中的所有表

show tables;

查看刚才创建的表

show create table employee;

查看表的字段信息

describe employee;

也可以简写为:

desc employee;

修改表的字符集

alter table employee character set gbk;

为表增加列

alter table employee add column photo blob;

为表添加了数据类型为blob的列photo

也可以简写为:

alter table employee add photo blob;

修改列的长度

alter table employee modify job varchar(170);

将表中job字段的长度修改为170

修改列的名称

alter table employee change name username varchar(100);

将表中原name改名为username

删除列

alter table employee drop photo;

删除表中的photo列

修改表的名字

rename table employee to user;

删除表

drop table user;


DML

DML用于对表中的数据进行增、删、改的操作。常用的语句有INSERT 、UPDATE、 DELETE

嗯哼,我们先创建一张表

create table employee(
           id int,
           username varchar(100),
           gender varchar(10),
           birthday date,
           salary float(10,2),
           entry_date date,
           resume text
);

插入操作:INSERT

INSERT的语法:

INSERT INTO 表名(列名1,列名2 …)VALUES(列值1,列值2…);

请注意:

  • 列名与列值的类型、个数、顺序要一一对应
  • 列值不要超出列定义的长度
  • 如果插入空值,请使用null
  • 插入的日期和字符需用引号括起来,例如:’sun’、’2016-09-04’

INSERT的示例:

INSERT INTO employee
(id,username,gender,birthday,salary,entry_date,RESUME)
VALUES (1,’大泽玛利亚’,’female’,’1990-09-12’,20000.00,’2010-11-22’,’beauty’);

INSERT INTO employee
(id,username,gender,birthday,salary,entry_date,RESUME)
VALUES (2,’武藤兰姐姐’,’female’,’1980-09-12’,30000.00,’2000-12-12’,’good’);

INSERT INTO employee
(id,username,gender,birthday,salary,entry_date,RESUME) VALUES
(3,’井空苍妹妹’,’female’,’1987-07-28’,50000.00,’2001-08-09’,’great’);

当然,也可以批量插入数据:

INSERT INTO employee VALUES
(4,’杉原杏璃’,’female’,’1992-04-01’,60000.00,’2014-09-03’,’very good’),
(5,’佐佐木希’,’female’,’1993-05-09’,70000.00,’2013-04-04’,’very nice’),
(6,’伊藤梅子’,’female’,’1995-11-07’,80000.00,’2012-03-05’,’very sexy’);

修改操作:UPDATE

UPDATE的语法:

UPDATE 表名 SET 列名1=列值1 , 列名2=列值2…..WHERE 列名=值

UPDATE的示例:

UPDATE employee SET salary=88000;

将表中所有员工的salary修改为88000

UPDATE employee SET salary=99000 WHERE username=’大泽玛利亚’;

将表中username为大泽玛利亚的员工的salary修改为99000

UPDATE employee SET salary=69000,birthday=’1993-02-28’ WHERE username=’井空苍妹妹’;

将表中username为井空苍妹妹的员工的salary修改为69000、birthday修改为1993-02-28

UPDATE employee SET salary=salary+1000 WHERE username=’佐佐木希’;

将表中username为佐佐木希的员工的salary增加1000

删除操作:DELETE

DELETE的语法:

DELETE FROM 表名 WHERE 列名=值

DELETE的示例:

DELETE FROM employee WHERE username=’大泽玛利亚’;

将表中username为大泽玛利亚的员工删除

DELETE FROM employee;

使用DELETE将表中所有数据删除,执行该操作后表结构还存在,删除后的数据可以找回

TRUNCATE TABLE employee;

使用TRUNCATE将表中所有数据删除,执行该操作后系统将该表DROP然后再创建一个同样的新表,其执行速度远快于DELETE;但是请注意:该方式删除的数据不能找回。


DCL

之前我们说过:DCL(数据控制语言)用来定义访问权限和安全级别;在此对其进行简单的介绍

创建用户

创建用户的语法为:

create user 用户名@IP地址 identified by 密码;

请看如下示例:

create user xy@loaclhost identified by ‘123456’;

在此创建一个新用户,用户名为xy密码是123456

请注意,创建新用户后需要执行命令更新权限表(grant tables)

FLUSH PRIVILEGES;

给用户授权

给户授权的语法为:

grant 权限1,权限2,……..,权限n on 数据库名.* to 用户名@IP地址 identified by ‘密码’;

如果将操作数据库的所有的权限授予用户,语法为:

grant all on 数据库名.* to 用户名@IP地址 identified by ‘密码’;

请看如下示例:

grant all on db1.* to xy@localhost identified by ‘123456’;

撤销授权

撤销授权的语法为:

revoke 权限1,权限2,……..,权限n on 数据库名.* from 用户名@IP地址;

如果撤销用户拥有的某数据库的全部权限,语法为:

revoke all on db1.* from xy@localhost;

查看用户权限

查看用户权限的语法为:

show grants for 用户名@IP地址;

请看如下示例:

show grants for xy@localhost;

删除用户

删除用户权限的语法为:

drop user 用户名@IP地址;

请看如下示例:

drop user xy@localhost;

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
100 0
|
7月前
|
Java 关系型数据库 MySQL
基于springboot心理树洞管理系统(分前后台springboot+mybatis+mysql+maven+vue+echarts)
基于springboot心理树洞管理系统(分前后台springboot+mybatis+mysql+maven+vue+echarts)
|
JSON 前端开发 JavaScript
Echarts实战案例代码(15):月收入年龄分段等MYSQL分类统计PHP后台数据管理接口API数据的解决方案
Echarts实战案例代码(15):月收入年龄分段等MYSQL分类统计PHP后台数据管理接口API数据的解决方案
189 0
|
7月前
|
前端开发 JavaScript Java
基于JavaWeb机票订购系统(含前后台)(Java+spring+jsp+bootstrap+mysql)
基于JavaWeb机票订购系统(含前后台)(Java+spring+jsp+bootstrap+mysql)
122 3
|
7月前
|
XML 安全 Java
JavaWeb有机果蔬商城系统有机蔬菜水果商城系统(分前后台javaWeb+jsp+jstl+css+js+mysql)
JavaWeb有机果蔬商城系统有机蔬菜水果商城系统(分前后台javaWeb+jsp+jstl+css+js+mysql)
106 1
|
7月前
|
消息中间件 Java 关系型数据库
【Spring Boot+Kafka+Mysql+HBase】实现分布式优惠券后台应用系统(附源码)
【Spring Boot+Kafka+Mysql+HBase】实现分布式优惠券后台应用系统(附源码)
306 2
|
7月前
|
Java 数据库 Maven
基于springboot+vue社区团购系统(分前后台springboot+mybatis+mysql+maven+vue+html)
基于springboot+vue社区团购系统(分前后台springboot+mybatis+mysql+maven+vue+html)
116 0
|
7月前
|
前端开发 JavaScript BI
基于Servlet房屋租赁管理信息系统(含前后台)(Java+Servlet+jsp+mysql)
基于Servlet房屋租赁管理信息系统(含前后台)(Java+Servlet+jsp+mysql)
|
小程序 关系型数据库 MySQL
零基础入门小程序后台服务器开发~linux服务器安装mysql并实现远程访问(以腾讯云为例)
零基础入门小程序后台服务器开发~linux服务器安装mysql并实现远程访问(以腾讯云为例)
181 0
|
SQL 存储 缓存
新年迈出Java后台服务器与数据库交互第一步&2022最新通用Java8&jdbc8连接mysql8数据库进行增删改查等基本操作详解(IDEA),jar包导入,图片等文件流,批量操作
新年迈出Java后台服务器与数据库交互第一步&2022最新通用Java8&jdbc8连接mysql8数据库进行增删改查等基本操作详解(IDEA),jar包导入,图片等文件流,批量操作
149 0
新年迈出Java后台服务器与数据库交互第一步&2022最新通用Java8&jdbc8连接mysql8数据库进行增删改查等基本操作详解(IDEA),jar包导入,图片等文件流,批量操作
下一篇
DataWorks