MySQL数据库基础

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL数据库基础

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

  1. 在DMS控制台上方,选择创建好的数据库user_db,然后单击【SQL操作】 > 【SQL窗口】
  2. 使用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。
执行成功后,单击【刷新】查看创建的数据表。

  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;

  1. 使用RENAME TABLE语句对数据表重命名。将以下语句复制到SQLConsole页签中,然后单击执行。

修改表名user为student。
RENAME TABLE USER TO student;
语句格式:
RENAME TABLE table_name_a TO table_name_b;

  1. 使用DROP TABLE语句删除数据表。将以下语句复制到SQLConsole页签中,然后单击执行。

说明:此操作不能撤销,请谨慎操作。

删除学生表。

DROP TABLE student;
语句格式:

DROP TABLE table_name;

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

  1. 使用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

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

  1. 插入数据

插入语句说明:

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) ;


  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;

  1. 更新数据

更新语句格式:

UPDATE table_name SET col_name=expr,... WHERE where_condition
将以下SQL语句复制到SQLConsole页签中,然后单击【执行】。

UPDATE user SET age = 28,address = 'sichuan' WHERE name = 'xiaoming' ;

  1. 删除数据

删除语句格式:

DELETE FROM table_name WHERE where_condition
将以下SQL语句复制到SQLConsole页签中,然后单击【执行】。

DELETE FROM user WHERE name = 'xiaoming' ;

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

  1. 使用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);

  1. AVG()函数

将以下语句复制到SQLConsole页签中,然后单击【执行】。

SELECT avg(score) FROM student_score;

  1. COUNT()函数

将以下语句复制到SQLConsole页签中,然后单击【执行】。

SELECT COUNT(*) FROM student_score;

  1. MAX()函数

将以下语句复制到SQLConsole页签中,然后单击【执行】。

SELECT MAX(score) FROM student_score;

  1. MIN()函数

将以下语句复制到SQLConsole页签中,然后单击【执行】。

SELECT MIN(score) FROM student_score;

  1. SUM()函数

将以下语句复制到SQLConsole页签中,然后单击【执行】。

SELECT SUM(score) FROM student_score;

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

  1. 使用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');

  1. 查询所有同学的学号和成绩。 将以下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 ;

  1. 查询语文成绩在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

  1. 查询语文成绩比数学成绩高的同学。 将以下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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Java 关系型数据库 MySQL
MySQL数据库基础
文章主要介绍MySQL数据库中一些常见的操作,为专栏文章,系列介绍
154 0
MySQL数据库基础
|
SQL 存储 关系型数据库
MySQL常用基础 - 小白必看(二)
概念:是一个数据定义语言 该语言部分包括: 1、对数据库的常用操作 2、对表结构的常用操作
114 0
MySQL常用基础 - 小白必看(二)
|
存储 SQL 缓存
MySQL数据库系列(一)------基础
数据不会随程序结束而消失
156 0
MySQL数据库系列(一)------基础
|
关系型数据库 MySQL 数据格式
【0基础学习mysql】之DML-表中数据的操作
【0基础学习mysql】之DML-表中数据的操作
129 0
【0基础学习mysql】之DML-表中数据的操作
|
关系型数据库 MySQL Java
MySQL数据库基础数据入门级[图文详解]
MySQL数据库基础数据入门级[图文详解]
MySQL数据库基础数据入门级[图文详解]
|
SQL 存储 人工智能
华为大佬的“百万级”MySQL笔记,基础+优化+架构一键搞定
前言 MySQL不用多说,大家都知道它是目前最为活跃热门的开源数据库,由于成本低,操作简易的特点,所以在互联网企业中被广泛使用,即使是头部的BATJ。由此可见,想要在互联网行业混得风生水起,或者说想要进入BATJ等一线互联网公司,那么熟练掌握MySQL必定是一块必要的敲门砖。 对于MySQL的使用,可能很多刚开始工作的开发人员还是挺陌生的,但要想学习又不知道从何开始,技术的落后自然会让人感到焦虑。实际上,学习MySQL,找对方法就能轻松搞定。 今天,特将华为大佬整理的“百万级”MySQL笔记分享给你们,从基础到优化再到架构,带你轻松上手,一键搞定。
|
存储 SQL JSON
|
关系型数据库 MySQL
MySQL基础(二)下
MySQL基础(二)下
113 0
MySQL基础(二)下
|
存储 SQL JSON
MySQL基础(二)中
MySQL基础(二)中
98 0
MySQL基础(二)中
|
存储 SQL NoSQL
MySQL基础(二)上
MySQL基础(二)上
174 0
MySQL基础(二)上