Mysql操作

简介: 数据库 数据增删改查

一、数据库表操作
本小节主要介绍对数据库表的基本操作,其中包括新增、删除、更新和重命名等。

在DMS控制台上方,选择创建好的数据库user_db,然后单击【SQL操作】 > 【SQL窗口】
使用CREATE TABLE语句创建一个数据表。将以下语句复制到SQLConsole页签中,然后单击【执行】。
CREATE TABLE USER (
user_id int(128) NOT NULL AUTO_INCREMENT,
name varchar(64) NOT NULL,
age int(11) DEFAULT NULL,
PRIMARY KEY (user_id)
) ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;
语句解析:
CREATE TABLE USER:新表的名字,表名称在关键字CREATE TABLE后给出。
name varchar(64) NOT NULL,:列名name,类型varchar,长度限制64,此列不能为空。
PRIMARY KEY (user_id):设置USER表主键为user_id。
user_id int(128) NOT NULL AUTO_INCREMENT,:AUTO_INCREMENT通常用于主键,表示主键自增,数值会自动+1。
执行成功后,单击【刷新】查看创建的数据表。

使用ALTER TABLE语句更新数据表。将以下语句复制到SQLConsole页签中,然后单击执行。
在年龄age列后面,为USER表新增一列性别sex,0代表女,1代表男。
ALTER TABLE user ADD COLUMN sex tinyint(1) NOT NULL COMMENT 'sex,woman:0,man:1' AFTER age;

使用RENAME TABLE语句对数据表重命名。将以下语句复制到SQLConsole页签中,然后单击执行。
修改表名user为student。
RENAME TABLE USER TO student;
语句格式:
RENAME TABLE table_name_a TO table_name_b;

使用DROP TABLE语句删除数据表。将以下语句复制到SQLConsole页签中,然后单击执行。
说明:此操作不能撤销,请谨慎操作。
删除学生表。
DROP TABLE student;
语句格式:
DROP TABLE table_name;

二、数据操作
本小节主要为大家介绍MySQL中常用的数据查询、删除、更新、插入等基本操作。

使用CREATE TABLE语句创建一个数据表。将以下语句复制到SQLConsole页签中,然后单击【执行】。
CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
name varchar(32) DEFAULT NULL COMMENT 'name',
age int(11) DEFAULT NULL COMMENT 'age',
address varchar(32) DEFAULT NULL COMMENT 'address',
sex tinyint(1) DEFAULT NULL COMMENT 'sex,woman:0,man:1',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

执行成功后,单击【刷新】查看创建的数据表。

插入数据
插入语句说明:
table_name(col_name,...)中的字段名列表必须和values(expr,...)字段值列表一致。
如果数据是字符型,必须使用单引号或者双引号。
被AUTO_INCREMENT标记的自动递增的主键,在插入数据时,可以不设置值。
将以下SQL语句复制到SQLConsole页签中,然后单击【执行】。

INSERT INTO USER

(name, age, address, sex)
VALUES

('zhangsan', 21, 'jiangxi', 0),
('lisi', 22, 'hubei', 0),
('wangwu', 23, 'hunan', 0),
('lilei', 24, 'henan', 1),
('hanmeimei', 25, 'hebei', 1),
('xiaoming', 26, 'shandong', 1),
('xiaoli', 27, 'shanxi', 1) ;
查询数据
查询语句格式:
SELECT col_name,...
FROM table_name
WHERE where_condition
GROUP BY col_name,...
HAVING where_condition
ORDER BY col_name,...
LIMIT offset,row_count
将以下SQL语句复制到SQLConsole页签中,然后单击【执行】。
SELECT id,name,age,address,sex FROM user;

更新数据
更新语句格式:
UPDATE table_name SET col_name=expr,... WHERE where_condition
将以下SQL语句复制到SQLConsole页签中,然后单击【执行】。
UPDATE user SET age = 28,address = 'sichuan' WHERE name = 'xiaoming' ;

删除数据
删除语句格式:
DELETE FROM table_name WHERE where_condition
将以下SQL语句复制到SQLConsole页签中,然后单击【执行】。
DELETE FROM user WHERE name = 'xiaoming' ;

三、函数操作
本小节主要为大家介绍MySQL中常用的内置函数。

使用CREATE TABLE语句创建一个数据表。将以下语句复制到SQLConsole页签中,然后单击【执行】。
CREATE TABLE student_score(sid INT PRIMARY KEY NOT NULL, sname VARCHAR(30), sage INT, ssex VARCHAR(8), score INT(11));
insert into student_score(sid, sname, sage, ssex,score)
values (1001, 'xiaohua', 17,'0', 75),
(1002, 'xiaohong', 18,'0', 80),
(1003, 'wangwu', 18,'1', 90),
(1004, 'lisi', 17,'1', 68),
(1005, 'zhangsan', 19,'1', 73),
(1006, 'xiaohei', 19,'1', 100),
(1007, 'xiaoma', 20,'0', 77),
(1008, 'xiaoli', 17,'1', 82),
(1009, 'xiaobai', 19,'0', 88),
(1010, 'wentong', 18,'0', 53);

AVG()函数
将以下语句复制到SQLConsole页签中,然后单击【执行】。
SELECT avg(score) FROM student_score;

COUNT()函数
将以下语句复制到SQLConsole页签中,然后单击【执行】。
SELECT COUNT(*) FROM student_score;

MAX()函数
将以下语句复制到SQLConsole页签中,然后单击【执行】。
SELECT MAX(score) FROM student_score;

MIN()函数
将以下语句复制到SQLConsole页签中,然后单击【执行】。
SELECT MIN(score) FROM student_score;

SUM()函数
将以下语句复制到SQLConsole页签中,然后单击【执行】。
SELECT SUM(score) FROM student_score;

四、组合查询
本小节主要介绍如何使用GROUP BY、HAVING和ORDER BY等进行分组查询。

使用CREATE TABLE语句创建数据表。将以下语句复制到SQLConsole页签中,然后单击【执行】。
CREATE TABLE student (
sid int(11) NOT NULL,
sname varchar(30) DEFAULT NULL,
sage int(11) DEFAULT NULL,
ssex varchar(8) DEFAULT NULL,
PRIMARY KEY (sid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into student(sid,sname,sage,ssex) values
(1005,'xiaohua',19,'0'),
(1004,'xiaohong',18,'0'),
(1003,'wangwu',18,'1'),
(1002,'lisi',17,'1'),
(1001,'zhangsan',18,'1');
CREATE TABLE sc (
sid int(11) NOT NULL,
cid int(11) NOT NULL,
score int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into sc(sid,cid,score) values
(1001,101,75),
(1001,102,85),
(1002,101,65),
(1002,102,95),
(1003,101,65),
(1003,102,95),
(1004,101,80),
(1004,102,80),
(1005,101,75),
(1005,102,85);
CREATE TABLE course (
cid int(11) NOT NULL,
cname varchar(30) DEFAULT NULL,
tid int(11) DEFAULT NULL,
PRIMARY KEY (cid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into course(cid,cname,tid) values
(102,'yuwen',2),
(101,'shuxue',1);
CREATE TABLE teacher (
tid int(11) NOT NULL,
tname varchar(30) DEFAULT NULL,
PRIMARY KEY (tid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into teacher(tid,tname) values
(2,'liulaoshi'),
(1,'wanglaoshi');
执行成功后,单击【刷新】查看创建的数据表。

查询所有同学的学号和成绩。 将以下SQL语句复制到SQLConsole页签中,然后单击【执行】。
使用WHERE s. sid = sc.sid 来消除笛卡尔积。
SELECT s.sid ,s.sname ,c.score FROM student AS s ,sc AS c WHERE s.sid = c.sid ;

查询语文成绩在80以上同学。 将以下SQL语句复制到SQLConsole页签中,然后单击【执行】。
SELECT a.score,

b.cname,
s.sname
FROM sc as a,

course AS b,
student AS s
WHERE a.cid= b.cid
AND s.sid= a.sid
AND a.cid= 102
AND a.score> 80

查询语文成绩比数学成绩高的同学。 将以下SQL语句复制到SQLConsole页签中,然后单击【执行】。
SELECT a.sid,

a.score,
s.sname
FROM(
SELECT sid, score
FROM sc
WHERE cid= "102") a,

(
SELECT sid, score
FROM sc
WHERE cid= "101") b,

student as s
WHERE a.score > b.score
AND a.sid= b.sid
AND s.sid= a.sid

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
SQL 运维 关系型数据库
MySQL 中 GRANT 操作会引起复制中断吗?
GRANT 操作并不是一个原子性操作,不管执行成功与否,都会触发一个隐式重载授权表的行为。 在生产环境中需要规范用户创建及授权的操作,不推荐使用 DML 语句去直接变更 mysql.user 表,可能会引发其他的问题,若使用了 DML 语句进行变更, 需要手工执行 flush privileges。
313 4
|
关系型数据库 MySQL
【mysql技巧】如何在这个mysql语句执行前加个前提,也就是只有表里没有相同数据才进行添加插入操作
【mysql技巧】如何在这个mysql语句执行前加个前提,也就是只有表里没有相同数据才进行添加插入操作
157 1
|
JavaScript 关系型数据库 MySQL
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
261 0
|
存储 关系型数据库 文件存储
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
139 2
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之从mysql读数据写到hive报错,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之运行mysql to doris pipeline时报错,该如何排查
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之整库同步mysql到starRock提交任务异常,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
SQL 关系型数据库 MySQL
「Python入门」python操作MySQL和SqlServer
**摘要:** 了解如何使用Python的pymysql模块与MySQL数据库交互。首先,通过`pip install pymysql`安装模块。pymysql提供与MySQL的连接功能,例如创建数据库连接、执行SQL查询。在设置好MySQL环境后,使用`pymysql.connect()`建立连接,并通过游标执行SQL(如用户登录验证)。注意防止SQL注入,使用参数化查询。增删改操作需调用`conn.commit()`来保存更改。pymssql模块类似,但导入和连接对象创建略有不同。
239 0
「Python入门」python操作MySQL和SqlServer
|
SQL 存储 关系型数据库
|
关系型数据库 MySQL 数据库
『Django』模型入门教程-操作MySQL
一个后台如果没有数据库可以说废了一半。日常开发中大多数时候都在与数据库打交道。Django 为我们提供了一种更简单的操作数据库的方式。 在 Django 中,模型(Model)是用来定义数据库结构的类。每个模型类通常对应数据库中的一个表,类的属性对应表中的列。通过定义模型,Django 的 ORM(Object-Relational Mapping)可以将 Python 对象映射到数据库表,并提供一套 API 来进行数据库操作。 本文介绍模型的用法。

推荐镜像

更多