mySQL-简易用法(三)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 1.数据库的基本概念数据库的英文单词: DataBase 简称 : DB2.what 什么数据库用于存储和管理数据的仓库。3.数据库的特点:1. 持久化存储数据的。其实数据库就是一个文件系统2. 方便存储和管理数据3. 使用了统一的方式操作数据库 -- SQL

11.R(Retrieve):查询


  • 查询所有数据库的名称:
  • show databases;
  • 查询某个数据库的字符集:查询某个数据库的创建语句
  • show create database 数据库名称;


12.修U(Update):修改


  • 修改数据库的字符集
  • alter database 数据库名称 character set 字符集名称;


13.D(Delete):删除


  • 删除数据库
  • drop database 数据库名称;
  • 判断数据库存在,存在再删除
  • drop database if exists 数据库名称;


14. 使用数据库


  • 查询当前正在使用的数据库名称
  • select database();
  • 使用数据库
  • use 数据库名称;


15. 操作表


C(Create):创建

. 语法:

create table 表名(

列名1 数据类型1,

列名2 数据类型2,

....

列名n 数据类型n

);

  • 注意:最后一列,不需要加逗号(,)


16.数据库数据类型:


  1. int:整数类型
  • age int,
  1. double:小数类型
  • score double(5,2)
  1. date:日期,只包含年月日,yyyy-MM-dd
  2. datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
  3. timestamp:时间错类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss
  • 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
  1. varchar:字符串
  • name varchar(20):姓名最大20个字符
  • zhangsan 8个字符 张三 2个字符


17. 表操作


1.创建表


create table student(
id int,
name varchar(32),
age int ,
score double(4,1),
birthday date,
insert_time timestamp
);
2.复制表:
  • create table 表名 like 被复制的表名;
R(Retrieve):查询
  • 查询某个数据库中所有的表名称
  • show tables;
  • 查询表结构
  • desc 表名;
3. U(Update):修改
  1. 修改表名
    alter table 表名 rename to 新的表名;
  2. 修改表的字符集
    alter table 表名 character set 字符集名称;
  3. 添加一列
    alter table 表名 add 列名 数据类型;
  4. 修改列名称 类型
    alter table 表名 change 列名 新列别 新数据类型;
    alter table 表名 modify 列名 新数据类型;

4. 删除列

alter table 表名 drop 列名;

5. D(Delete):删除表
  • drop table 表名;
  • drop table if exists 表名 ;


18 增删改查表中数据


8Y}XGSQ]D}`B95T$]VSKG6F.png


1.增加 数据

insert into 表名(字段名1,字段名2...) values(值1,值2)


INSERT into students(name,age) VALUES("张三丰",108)
注意:
  1. 列名和值要一一对应。
  2. 如果表名后,不定义列名,则默认给所有列添加值
    insert into 表名 values(值1,值2,...值n);
  3. 除了数字类型,其他类型需要使用引号(单双都可以)引起来

~L4~89[DZ947]0Z__VKQRJG.png


刷新查看


2.删除数据

DELETE FROM 表名 WHERE 条件


DELETE from students where id=1
DELETE from students where age=20 and name="张三"
DELETE from students where id=02 or id=03


注意:
  1. 如果不加条件,则删除表中所有记录。
  2. 如果要删除所有记录
  3. delete from 表名; -- 不推荐使用。有多少条记录就会执行多少次删除操作
  4. TRUNCATE TABLE 表名; -- 推荐使用,效率更高 先删除表,然后再创建一张一样的表。

3.修改数据

UPDATE 表名 set 字段1=值1,字段2=值2 WHERE 条件


UPDATE students set name="新名字" ,age=66 WHERE NAME='李四
注意:
  1. 如果不加任何条件,则会将表中所有记录全部修改。

4.查找数据

SELECT 字段1,字段2 FROM 表名 WHERE


SELECT * from students
SELECT  id,name from students
//复杂的 查询
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
注意:
  • 1如果查询所有字段,则可以使用*来替代字段列表。
  1. 去除重复:
  • distinct
  1. 计算列
  • 一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
  • ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
  • 表达式1:哪个字段需要判断是否为null
  • 如果该字段为null后的替换值。
  1. 起别名:
  • as:as也可以省略
条件查询
  1. where子句后跟条件
  2. 运算符
    > 、< 、<= 、>= 、= 、<>
  • BETWEEN...AND
  • IN( 集合)
  • LIKE:模糊查询
  • 占位符:
  • _:单个任意字符
  • %:多个任意字符
  • IS NULL
  • and 或 &&
  • or 或 ||
  • not 或 !

常用查询SQL距离


- 查询年龄大于20岁
SELECT * FROM student WHERE age > 20;
SELECT * FROM student WHERE age >= 20;
-- 查询年龄等于20岁
SELECT * FROM student WHERE age = 20;
-- 查询年龄不等于20岁
SELECT * FROM student WHERE age != 20;
SELECT * FROM student WHERE age <> 20;
-- 查询年龄大于等于20 小于等于30
SELECT * FROM student WHERE age >= 20 && age <=30;
SELECT * FROM student WHERE age >= 20 AND age <=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;
-- 查询年龄22岁,18岁,25岁的信息
SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
SELECT * FROM student WHERE age IN (22,18,25);
-- 查询英语成绩为null
SELECT * FROM student WHERE english = NULL; -- 不对的。null值不能使用 = (!=) 判断
SELECT * FROM student WHERE english IS NULL;
-- 查询英语成绩不为null
SELECT * FROM student WHERE english IS NOT NULL;
-- 查询姓尹的有哪些? like
SELECT * FROM student WHERE NAME LIKE '尹%';
-- 查询姓名第二个字是国的人
SELECT * FROM student WHERE NAME LIKE "_国%";
-- 查询姓名是3个字的人
SELECT * FROM student WHERE NAME LIKE '___';
-- 查询姓名中包含胜的人
SELECT * FROM student WHERE NAME LIKE '%胜%';



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
关系型数据库 MySQL 索引
mysql中EXISTS用法注意点
mysql中EXISTS用法注意点
|
2月前
|
存储 SQL 关系型数据库
mysql用法
mysql用法
41 4
|
3月前
|
存储 自然语言处理 关系型数据库
MySQL的match用法说明
MySQL的match用法说明
126 4
|
3月前
|
SQL 关系型数据库 MySQL
MySQL的用法
MySQL的用法
56 1
|
4月前
|
存储 关系型数据库 MySQL
mysql中的left join、right join 、inner join的详细用法
【8月更文挑战第16天】在MySQL中,`INNER JOIN`、`LEFT JOIN`与`RIGHT JOIN`用于连接多表。`INNER JOIN`仅返回两表中匹配的行;`LEFT JOIN`保证左表所有行出现于结果中,右表无匹配时以NULL填充;`RIGHT JOIN`则相反,保证右表所有行出现于结果中。例如,查询学生及其成绩时,`INNER JOIN`仅显示有成绩的学生;`LEFT JOIN`显示所有学生及他们对应的成绩,无成绩者成绩列为空;`RIGHT JOIN`显示所有成绩及对应学生信息,无学生信息的成绩条目则为空。
102 1
|
5月前
|
存储 JSON 关系型数据库
mysql中find_in_set()函数用法详解及增强函数
总结而言,`FIND_IN_SET()`是MySQL中处理由逗号分隔的字符串列表的一种便捷方法,尤其适用于列表相对较短且不经常更改的场景。然而,对于更为复杂的需要高性能和可扩展性的数据库设计,它可能不是最优选择,应考虑使用更加正规化的数据库结构。
612 2
mysql中find_in_set()函数用法详解及增强函数
|
3月前
|
存储 自然语言处理 关系型数据库
全文索引MySQL的match用法是什么?
【9月更文挑战第2天】全文索引MySQL的match用法是什么?
88 0
|
6月前
|
关系型数据库 MySQL
【随手记】MySQL中ROW_NUMBER()、RANK()和DENSE_RANK()函数的用法
【随手记】MySQL中ROW_NUMBER()、RANK()和DENSE_RANK()函数的用法
177 1
|
6月前
|
关系型数据库 MySQL
MySQL中CASE WHEN用法总结
MySQL中CASE WHEN用法总结
|
6月前
|
存储 关系型数据库 MySQL
mysql mysqldump用法详解
mysql mysqldump用法详解