MySQL数据库--基础篇

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 打开数据库sudo mysql -u root -proot查看show database新建show create database 数据库名 default character set utf8删除drop database 数据库名...

打开数据库

sudo mysql -u root -proot

查看

show database

新建

show create database 数据库名 default character set utf8

删除

drop database 数据库名

修改

alter database 数据库名 default character set 编码方式
表管理

查看默认的字符集

show create database 数据库名

选择数据库

use 数据名

新建表

    create table student(
    -> sid int,
    -> sname varchar(20),
    -> sage int
    -> );

查看所有表

show tables;

查看表结构

desc student;

删除表

drop table student;

修改表

  • 添加字段(column可以不写)
    alter table student add column sgender varchar(2);
  • 删除字段(column可以不写)
    alter table student drop column sgender;
  • 修改字段类型(column可以不写)
    alter table student modify column remark varchar(100);
  • 修改字段名称(column可以不写)
    alter table student change column sgender(旧字段名) gender(新字段名) varchar(2);
  • 修改表名称
    alter table student rename to teacher;

数据库表中增加信息

  • 插入所有字段(与数据库表中的信息一一对应)
    insert into 数据表名 values(1,'张三','男',20);
  • 插入部分字段
    insert into 数据表名(id,name)values (2,李四);

修改数据

  • 修改所有的数据(建议少用)
    update 表名 set 字段名='修改后的值';
  • 修改部分的数据(指定修改ID为1的指定字段)
    update 表名 set 字段名='修改后的值' where id = 1;
  • 修改多个字段(set只能用一次,字段名之间用‘,’隔开)
    update 表名 set 字段名='修改后的值',age=30 where id = 1

删除数据

  • 删除所有数据表中的数据
    delete from 数据表名
  • 删除指定数据(指定删除ID为2的数据)
    delete from 表名 where ID = 2;
  • 其他删除
    truncate table 表名
  • 删除的区别

delete from与truncate table的区别

  1. delete from可以带条件删除,truncate table不可以带条件删除
  2. delete from只能删除表的数据不能删除表的约束,truncate table既可以删除表的数据也可以删除表的约束
  3. 使用delete from删除的数据可以回滚(事物),既临时的删除而使用truncate table的删除就是永久的删除

查询数据

  • 查询所有列
    select * from 数据表名 ;
  • 查询指定列
    select id, name from 数据表名;(以ID和name查询)
    • 查询时指定别名[as](显示别名)
      select id as '编号', name as '姓名' from 数据表名;
  • 查询时添加常量列
    • 需求 在查询student表时添加一个班级列,内容为‘Java就业班’
      select id, name,...,'java就业班' as '班级' from 数据表名;
  • 查询时合并列
    • 查询所有科目的总成绩(科目名+科目名+...)
      select id, name, (java+jsp+...) as '总成绩' from 数据表名;
      • 注意事项 合并列 只能合并数值类型字段
  • 查询时去除重复记录
    • 需求 查询学生性别(结果 男 女)
      select distinct gender from student;
    • 另一种语法
      select distinct (gender) from student;
  • 条件查询(where)
    • 第一类 逻辑条件 and(与) or(或)
      • 查询ID为2 姓名为李四的同学
        select * from student where id=2 and name = '李四';
      • 查询ID为2 或 姓名为张三的同学
        select * from student where id=2 or name = '张三';
    • 第二类 比较条件 > < >= <= = <>(不等于) between and
      • 需求 查询Java成绩大于70的所有人
        select * from student where java>70;
    • 第三类 判空条件(null 空字符串):is null / is no null / =='' / <>''
      • 需求 查询地址为空的学生

        null vs 空字符串
        null 没有值
        空字符串 有值

      • 判断null
        select * from student where address is null;

      • 判断空值
        select * from student where address = '';
        select * from student where address is null or address = '';

    • 第四类 模糊条件 like(通常使用以下替换标记 % 表示可以替换任意一个字符 _ 表示一个字符)
      • 需求 姓张的学生
        select * from student where name like '张%';
      • 需求 姓张的学生且姓名只有两个字的人
        select * from student where name like '张_';
  • 聚合查询
    • 常用的聚合函数
      sum(字段)总数 avg()平均数 max()最大值 min()最小值 count(*/id)统计记录的数量 例如学生总数
      count统计的数据不包含null的数据 故:使用count统计数据的时候,要使用不包含null的数据
  • 分页查询(limit 起始行(从0开始),查询多少行)
    select * from student limit 0,2;查询两行
    • 没有记录就不显示
    • 分页查询当前页的sql:
      select * from student limit (当前页-1)*每页显示多少,每页显示多少;
  • 查询排序(order by)默认正序
    • 语法:order by 字段 asc/desc
    • asc:顺序 / 正序。 数值:递增,字母:自然顺序(a-z)
    • desc:倒序 / 反序。 数值:递减,字母:自然反序(z-a)
  • 分组查询(group by 字段)

例如:将学生性别分组,并统计每组的人数
select gender,count(*) from student group by gender;

  • 分组查询后筛选(having)

需求:查询性别人数大于2的值
select gender,count(*) from student group by gender having count(*)>2

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
【Java 基础】Java 数据类型和 MySql 数据类型对应表
【Java 基础】Java 数据类型和 MySql 数据类型对应表MySQL 数据类型对应 Java 数据类型 类型名称 显示长度 数据库类型 JAVA 类型 JDBC 类型索引 (int) 描述 VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TEXT 65535 VARCHAR java.lang.String -1 INTEGER 4 INTEGER UNSIGNED java.lang.Long 4 TINYINT
|
Java 关系型数据库 MySQL
MySQL数据库基础
文章主要介绍MySQL数据库中一些常见的操作,为专栏文章,系列介绍
127 0
MySQL数据库基础
|
SQL 安全 关系型数据库
Mysql数据库连接池的简单实现(基于C++11), 基础学完, 包教包会.
Mysql数据库连接池的简单实现(基于C++11), 基础学完, 包教包会.
|
SQL 存储 关系型数据库
MySQL常用基础 - 小白必看(二)
概念:是一个数据定义语言 该语言部分包括: 1、对数据库的常用操作 2、对表结构的常用操作
92 0
MySQL常用基础 - 小白必看(二)
|
SQL 存储 关系型数据库
MySQL创建数据表基础篇
MySQL创建数据表基础篇
|
存储 SQL 关系型数据库
MySQL 数据类型基础篇
MySQL 数据类型基础篇
|
关系型数据库 MySQL PHP
MySQL创建数据库基础篇
MySQL创建数据库基础篇
|
存储 SQL 缓存
MySQL数据库系列(一)------基础
数据不会随程序结束而消失
133 0
MySQL数据库系列(一)------基础
|
关系型数据库 MySQL 数据格式
【0基础学习mysql】之DML-表中数据的操作
【0基础学习mysql】之DML-表中数据的操作
102 0
【0基础学习mysql】之DML-表中数据的操作
|
关系型数据库 MySQL Java
MySQL数据库基础数据入门级[图文详解]
MySQL数据库基础数据入门级[图文详解]
MySQL数据库基础数据入门级[图文详解]