什么是SQL:
SQL(Structured Query Language):结构化查询语言
其实就是定义了操作所有关系型数据库的规则。

SQL的分类:
DDL:用来定义数据库对象:数据库,表等
关键字:create,drop,alter
DML:用来对数据库的数据进行增删改
关键字:insert,delete,update
DQL:用来对数据库的数据进行查询
关键字:select,where
DCL:用来定义数据库的访问权限和安全级别,及创建用户
关键字:GRANT,REVOKE

DDL:操作数据库、表:
1.操作数据库:
关键词:CRUD
① C(Create): 创建
创建数据库:create database 数据库名称;
创建数据库,判断是否存在,不存在再创建:create database if not exists 数据库名称;
创建数据库,并制定字符集:create database 数据库名称 character set 字符集名称;
② R(Retrieve):查询
查询所有数据库的名称:show databases;
查询某个数据库的字符集名称:show create database 数据库名称;
③ U(Update):修改
修改数据库的字符集:alter database 数据库名称 character set 字符集名称;
④ D(Delete):删除
删除数据库:drop database 数据库名称;
判断数据库是否存在,存在则删除:drop database if exists 数据库名称;

2.操作表:
关键词:CRUD
① C(Create):创建
创建表:create table 表名(
列名1 数据类型1,
列名2 数据类型2,

列名n 数据类型n
);
② R(Retrieve):查询
查询某个数据库中所有的表名称:show table;
查询表结构:desc 表名;
③ U(Update):修改
修改表名:alter table 表名 rename to 新的表名;
修改表的字符集:alter table 表名 character set 字符集名称;
修改列名称的类型:alter table 表名 motify 列名 新数据类型;
删除列:alter table 表名 drop 列名;
④ D(Delete):删除
删除表:drop table 表名;
判断表是否存在,如果存在则删除:drop table if exists 表名;

DML:对表中的数据进行增删改:
1.添加数据:insert into 表名(列名1,列名2,…列名n) values (值1,值2,…值n);
注意:列名和值要一一对应
2.删除数据:delete from 表名 where + 条件;
3.修改数据:update 表名 set 列名1=值1,列名2=值2,…where + 条件;

DQL:查询表中的数据:
select * from 表名;
1.语法:select 字段列表
from 表名列表
where 条件列表
group by 分组字段
order by 排序
limit 分页限定
2.基础查询:
多个字段的查询:select 字段1,字段2…from 表名;
注意:如果查询的是所有字段,则可以用 * 来代替字段列表
但是在真正的开发中,尽量不要使用,会降低查询效率
去除重复:distinct
条件查询:
1.where子句后面跟条件

2.运算符:>,>=,<,<=,=,<>
注意:SQL语句中不存在 “==”
查询年龄大于(等于)20岁
SELECT * FROM student WHERE age > 20;
SELECT * FROM student WHERE age >= 20;

查询年龄小于(等于)20岁
SELECT * FROM student WHERE age < 20;
SELECT * FROM student WHERE age <=20;

查询年龄不等于20岁
SELECT * FROM student WHERE age <> 20;

3.BETWEEN…AND
查询年龄大于等于20岁小于等于30岁
SELECT * FROM student WHERE age BETWEEN 20 AND 30;

4.IN(集合)
查询年龄是18岁,22岁和25岁的信息
SELECT * FROM student WHERE age IN(18,22,25);

5.and 或 && ,or 或 ||, not 或 !
查询年龄是18岁,22岁和25岁的信息
SELECT * FROM student WHERE age = 18 OR age = 22 OR age = 15

6.LIKE(模糊查询):
占位符:_:表示单个任意字符
%:表示多个任意字符
表示姓张的有哪些
SELECT * FROM student WHERE NAME LIKE ‘张%’;

查询第二个字是强的人的信息
SELECT * FROM student WHERE NAME LIKE ‘_强%’;

查询名字是三个字的人
SELECT * FROM student WHERE NAME LIKE ‘___’;

查询名字中包含德的人
SELECT * FROM student WHERE NAME LIKE ‘%德%’;

3.查询语句:
排序查询:order by 子句
order by 排序字段1 排序方式1,排序字段2 排序方式2…
排序方式:ASC 升序(默认)
DESC 降序
聚合函数:将一列数据作为一个整体,进行纵向计算
1.count:计算个数
2.max:计算最大值
3.min:计算最小值
4.sum:计算总和
5.avg:计算平均值
分组查询:group by 分组字段;
where 和 having 的区别:
1.where在分组之前进行限定,如果条件不满足,则不会参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
2.where后不可以跟聚合函数,having可以进行聚合函数的判断。
例子:
按照性别分组。分别查询男、女同学的平均分
SELECT sex, AVG(math) FROM student GROUP BY sex;

按照性别分组。分别查询男、女同学的平均分,人数
SELECT sex,AVG(math),COUNT(id) FROM student GROUP BY sex;

按照性别分组。分别查询男、女同学的平均分,人数
要求:分数低于70分的人,不参与分组
SELECT sex,AVG(math),COUNT(id) FROM student WHERE math >70 GROUP BY sex;

按照性别分组。分别查询男、女同学的平均分,人数
要求:分数低于70分的人,不参与分组,分组之后,人数要大于2人
SELECT sex,AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;

约束:
概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性
分类:1.主键约束:primary key
2.非空约束:not null
3.唯一约束:unique
4.外键约束:foreign key

主键约束(primary key):
1.非空且唯一。一张表只能有一个主键。主键可以是一个字段也可以是多个字段(联合主键)。主键就是表中记录的唯一标识
2.创建表时添加主键约束:
create table student(
id int primary key,—给id添加主键约束
name varchar(20)
);

3.删除主键:
ALTER TABLE student DROP PRIMARY KEY;

4.创建完表后,添加主键:
ALTER TABLE student MODIFY id INT PRIMARY KEY;

5.自动增长:
① 如果某一列是数值类型的,使用auto_increment可以来完成值的自动增长
② 在创建表时,添加主键约束,并且完成主键自增长
create table student(
id int primary key auto_increment,—给id添加主键自增
name varchar(20)
);

③ 删除自动增长
ALTER TABLE student MODIFY id INT;

④ 添加自动增长
ALTER TABLE student MODIFY id INT AUTO_INCREMENT;

非空约束(not null):某一列的值不能为null
1.创建表时添加约束:
CREATE TABLE student(
id INT,
NAME VARCHAR(20) NOT NULL —name为非空
);

2.创建表完成后,添加非空约束:
ALTER TABLE student MODIFY NAME VARCHAR(20) NOT NULL;

3.删除name的非空约束:
ALTER TABLE student MODIFY NAME VARCHAR(20);

唯一约束(unique):
1.某一列的值不能重复,允许出现null值,但只能有一条记录为null
2.在创建表时,添加唯一约束:
CREATE TABLE student(
id INT,
phone_number VARCHAR(20) UNIQUE —手机号
);

3.删除唯一约束:
ALTER TABLE student DROP INDEX phone_number;

4.在表创建完成后,添加唯一约束
ALTER TABLE student MODIFY phone_number VARCHAR(20) UNIQUE;

外键约束(foreign key):让表与表产生关系,从而保证数据的正确性
1.在创建表时,可以添加外键:
create table student(

外键列
constraint 外键名称 foreign key (外键列名称)references 主表名称(主表列名称)
);

2.删除外键:
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

3.创建表之后,添加外键:
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主键名称(主列表名称);

MySQL基础(补充)相关推荐

  1. MySQL基础01 补充

    MySQL基础2 引擎 sql语句增删改查 引擎 MySQL 5.5.5 以前默认引擎是MyISAM 以后默认引擎是InnoDB show engines\G MyISAM 读取效率高 读效率高 不支 ...

  2. mysql五补充部分:SQL逻辑查询语句执行顺序

    mysql五补充部分:SQL逻辑查询语句执行顺序一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SE ...

  3. mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...

    从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程 课程目录 (1) 01MySQL基础_课程引入.avi (2) 02MySQL基础_为什么学习 ...

  4. MySQL 基础 ———— 流程控制结构

    引言 MySQL 中的流程控制作为基础知识的最后一块拼图,显得并不是特别重要,而且,在实际生产开发中,也往往不需要通过它来进行程序的控制,那么为什么还要学习它呢?我认为有以下几点: 1.知识的完整性: ...

  5. MySQL基础——数据库和SQL概述\MySQL基本使用\DQL语言学习\条件查询\排序查询\常见函数\分组查询\连接查询\子查询\分页查询\联合查询

    本文详细讲解了MySQL中DQL语言,也就是数据查询语句的使用.全文3w余字,是对学习MySQL知识的整理总结,因为篇幅较长,MySQL基础知识余下部分发表在余下博客中 DML语言学习\插入数据\删除 ...

  6. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql/* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证 ...

  7. MySQL基础_模糊查询—between and in is null <=>(安全等于)等关建字

    文章目录 MySQL基础_模糊查询-in关键字 MySQL基础_模糊查询-is null关键字 MySQL基础_[补充]安全等于的介绍 eg: select * from table where 字段 ...

  8. 04夯实基础之MySQL基础

    文章目录 MySQL基础 一.数据库简介 1.1 数据库概念 1.2 常见数据库管理系统 1.3 数据库存储特点 1.4 三大范式(规范)-面试常考 1.5 MySQL安装和卸载 1.6 CMD操作数 ...

  9. 最全MySQL基础篇

    文章目录 导入表的问题 第三章_最基本的SELECT语句 1. SQL语言的规则和规范 1) 基本规则 2) SQL大小写规范(建议遵守) 3) 注释 4) 命名规则 2. 基本的SELECT语句 1 ...

  10. MySQL基础(二)

    MySQL基础(二) MySQL基础(一) 文章目录 MySQL基础(二) MySQL基础(一) 存储过程与函数 存储过程概述 理解 分类 创建存储过程 语法分析 代码举例 调用存储过程 调用格式 代 ...

最新文章

  1. 亿级PV,常见性能优化策略总结与真实案例
  2. 航天智慧物流线上预选赛-成绩公布
  3. 通过jquery获取td下的input标签的值,并且改变onclick的参数值
  4. tensorflow2.0 Dataset创建和使用
  5. mqadmin命令运行出错
  6. realme Q5系列核心规格曝光:80W快充加持 同价位绝无仅有
  7. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【三】——Web Api入门
  8. 摩尔斯电码对照表—Morse code
  9. Docker 视频教程 ( 猿课 )
  10. 自顶向下(top down)简介
  11. Win8 无法连接打网络打印机(HP LaserJ1010)
  12. 局域网网络流量监控_网工必知:用于监控企业网络的10款最佳工具,拿走!不谢!...
  13. 头歌-软件测试技术-面向对象测试_王铁军
  14. lighttpd使用
  15. dub的sdl配置文件中文帮助
  16. Sql中的offset 用法
  17. kityminder-editor 百度脑图与my-mind 使用体验
  18. 通过STM32CubeMX实现LED闪烁——基于HAL库
  19. 你还在用二分法求2个鸡蛋100层楼的问题吗?
  20. 修改ardupilotmega.h中MAV_CMD联合体中的命令定义,增加MAV_CMD_LED_CONTROL命令

热门文章

  1. 高考计算机会考等级划分标准,学考等级怎么划分2020最新标准
  2. android 日历翻页动画,Android 仿日历翻页、仿htc时钟翻页、数字翻页切换效果
  3. Windows程式开发设计指南--图形基础
  4. u盘中毒数据还能恢复吗?
  5. 华硕电脑连接不上wifi_四招解决华硕笔记本不能连接WiFi!
  6. 中国象棋游戏Chess(1) - 棋盘绘制以及棋子的绘制
  7. 防火墙相关知识,有备无患
  8. Python 爬取迷你MP4电影网,电影名称保存到本地,Requests+lxml框架
  9. c语言100道题 第二道 出租车计价
  10. MP1541升压电路