目录
1. CRUD注释:在SQL中可以使用“--空格+描述”来表示注释说明CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写
3.4 别名为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:
常用数据类型: 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:日期类型
操作表:
新增:
查询:
修改:
删除: