MySQL数据库基础

目录

1.数据库的操作

1. 连接 MySQL

1.1 显示当前的数据库 

1.2创建数据库 

1.3 使用数据库

 1.4 删除数据库 

2. 常用数据类型

2.1 数值类型: 

​编辑 2.2 字符串类型​编辑 

 2.3 日期类型

 3. 表的操作

 3.1查看表结构

3.2 创建表

 3.4 删除表

MySQL表的增删改查(基础) 

 1. CRUD注释:在SQL中可以使用“--空格+描述”来表示注释说明CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写

 2. 新增(Create)

2.1 单行数据 + 全列插入 

 2.2 多行数据 + 指定列插入

 3. 查询(Retrieve)

-- 插入测试数据 

 3.1全列查询

 3.2 指定列查询

 3.3 查询字段为表达式

-- 表达式包含一个字段

3.4 别名为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:

 3.5 去重:DISTINCT

3.6 排序:ORDER BY

 3.7 条件查询:WHERE

  基本查询

 AND与OR 

1.between

 2.in

模糊查询:LIKE 

 NULL 的查询:

 3.8 分页查询:limit

4. 修改(Update) 

5. 删除(Delete)

​编辑 

内容重点总结 :

    操作数据库:

 常用数据类型:     INT:整型      DECIMAL(M, D):浮点数类型     VARCHAR(SIZE):字符串类型     TIMESTAMP:日期类型

 操作表:

 新增:

查询:

修改:

删除:


1.数据库的操作

1. 连接 MySQL

输入 mysql -u root -p 命令,回车,然后输入 MySQL 的密码(不要忘记了密码),再回车,就连接上 MySQL 了。

mysql -uroot -p

1.1 显示当前的数据库 

show databases;

示例: 

1.2创建数据库 

CHARACTER SET: 指定数据库采用的字符集 可以缩写为charset 

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8

create database 数据库名 charset  utf8;

示例: 

1.3 使用数据库

 use 数据库名;

示例: 

1.

 1.4 删除数据库 

drop database  指定的数据库名;

说明:
数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除

*谨慎使用

示例: 

 1.5查看该数据库下所有的表名 

show tables;

2. 常用数据类型

2.1 数值类型: 

 2.2 字符串类型 

 2.3 日期类型

常用 datetime

 3. 表的操作

 需要操作数据库中的表时,需要先使用该数据库:

use test;

示例: 

 3.1查看表结构

desc 表名;

 

3.2 创建表

 语法:

可以使用comment增加字段说明。

create table 表名 (列名 类型,列名 类型);

代码 

create table student(id int,name varchar(20));

示例 

 

 3.4 删除表

代码 

drop table student;

示例: 

 drop table if exists 表名  如果有这个表则删,没有也不会报错EEROR:

MySQL表的增删改查(基础) 

 1. CRUD
注释:在SQL中可以使用“--空格+描述”来表示注释说明
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写

 2. 新增(Create)

 创建一个学生表

代码 

create table student(id int,name varchar(20));

 实例 

2.1 单行数据 + 全列插入 

代码 

insert into student (id,sn,name) values
(103,20003,'孙悟空’);

 实例 

 2.2 多行数据 + 指定列插入

 注意标点符号的大小写和特殊符号的大小写 比如括号

下面代码的括号写成中文的了

代码 

insert into student (id,sn,name)values
(102,20001,'曹孟德’),
(103,20002,‘孙仲谋’);

 实例

 3. 查询(Retrieve)

 -- 创建考试成绩表

代码 

括号(3,1)中的3代表小数的长度,1代表小数点后几位 

create table exam_result (
id INT,
name VARCHAR(20),
chinese DECIMAL(3,1),
math DECIMAL(3,1),
english DECIMAL(3,1)
);

 实例

-- 插入测试数据 

 3.1全列查询

-- 通常情况下不建议使用 * 进行全列查询
-- 1. 查询的列越多,意味着需要传输的数据量越大;
-- 2. 可能会影响到索引的使用。(索引待后面课程讲解) 

代码 

select * from  表名;

select * from exam_result;

 实例

 

 3.2 指定列查询

 -- 指定列的顺序根据你的需求查询

代码

select 列名 from 表名;

select name,chinese,english from exam——result;

 实例

 3.3 查询字段为表达式

 -- 表达式不包含字段
注意*表达式不会影响到数据库服务器硬盘上存储的原始数据 

SELECT id, name, 10 FROM exam_result;

实例 


-- 表达式包含一个字段
 
SELECT id, name, english + 10 FROM exam_result;

实例 

 


-- 表达式包含多个字段
select 表达式 from 表名;

SELECT id, name, chinese + math + english FROM exam_result;

实例 

 

3.4 别名
为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:

 as关键字表示别名 可以忽略但最好不要忽略

select 列名 as 别名 from 表名;

select id,name,chinese+math+english as 总分 from exam_result;

实例

 3.5 去重:DISTINCT

 distinct关键字表示去重,可以对数据去重

select distinct 列名 from 列名;

select math from exam_result;

没有去重以前

和去重之后对比

select distinct math from exam_result;

3.6 排序:ORDER BY

-- 默认为 ASC 升序 (从小到大)

-- DESC 为降序(从大到小)

注意*不会影响到数据库服务器硬盘上存储的原始数据 

  1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
  2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面 

select name,math from exam_result order by math;

 默认为升序

降序 

​
select name,math + chinese + english as 总分 from exam_result order by 总分 desc;

​

 3. 使用表达式及别名排序

        -- 查询同学及总分,由高到低

 3.7 条件查询:WHERE

比较运算符

  • 运算符                              说明

>, >=, <, <=                      大于,大于等于,小于,小于等于                        
=                                      等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>                                 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>                               不等于
BETWEEN a0 AND       范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
a1
IN (option, ...)                如果是 option 中的任意一个,返回 TRUE(1)
IS NULL                        是 NULL
IS NOT NULL               不是 NULL
LIKE                             模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字

逻辑运算符  

1. where条件可以使用表达式,但不能使用别名。
2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分 

  基本查询
SELECT name, english FROM exam_result WHERE english < 60;

 AND与OR 

 -- 查询语文成绩大于80分,且英语成绩大于80分的同学

-- 观察AND 和 OR 的优先级 

select * from exam_result where (chinese > 80 or math > 80) and english > 80;

范围查询 

1.between

 -- 查询语文成绩在 [80, 90] 分的同学及语文成绩

select name, chinese from exam_result where chinese between 80 and 90;

 2.in

-- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩

select name, math from exam_result where math in (58, 59 98, 99);

模糊查询:LIKE 

 -- % 匹配任意多个(包括 0 个)字符

 案例一

 案例二

找出姓名中最后字 为孙的 

案例三 

  找出姓名中包括(孙) ,只要包括可以符合

 - _ 匹配严格的一个任意字符

 NULL 的查询:

 -- 查询 name 未知的姓名 is null

 -- 查询 name 已知的姓名   is not null

select name from exam_result where name like is not null;

 3.8 分页查询:limit

LIMIT n OFFSET s;

-- 显示id升序前四个

 -- offset 表示从  s  开始,显示 n 个 (前闭后开)

4. 修改(Update) 

 -- 将孙悟空同学的数学成绩变更为 80 分

update exam_result set math = 80 where name = '孙悟空';

-- 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分

update exam_result set math = 60, chinese = 70 where name = '曹孟德';

-- 将所有同学的语文成绩更新为除以2         

   改了以后 

 

5. 删除(Delete)

 

-- 删除者行孙和者孙行同学的考试成绩

-- 删除整张表数据 

 -- 准备测试表

-- 插入测试数据


 -- 删除整表数据

内容重点总结 :

    操作数据库:

 常用数据类型:
     INT:整型
      DECIMAL(M, D):浮点数类型
     VARCHAR(SIZE):字符串类型
     TIMESTAMP:日期类型

 操作表:

     

 新增:

查询:

 

修改:

 

删除:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值