一、通用语法

1、MySQL数据库的SQL语句不区分大小写

2、可以用/**/完成注释

3、常用数据类型

类型 描述
int 整型
double 浮点型
varchar 字符串型
date 日期类型,格式为yyyy-mm-dd,只有年月日没有时分秒

二、数据库操作

1、创建数据库

  1. CREATE DATABASE 数据库名;
  2. e.g
  3. CREATE DATABASE hospital;

2、查看数据库

①查看数据库MySQL服务器中所有数据库

  1. SHOW DATABASES
  2. /*查看数据库MySQL服务器中所有数据库*/

②查看某个数据库定义的信息

  1. SHOW CREATE DATABASE 数据库名;
  2.  
  3. e.g
  4. SHOW CREATE DATABASE hospital;

3、删除数据库

  1. DROP DATABASE 数据库名;
  2. e.g
  3. DROP DATABASE hospital;

4、切换数据库

  1. USE 数据库名;
  2. e.g
  3. USE hospital;

三、表操作

1、创建表

  1. CREATE TABLE 表名(
  2. 字段名 类型(长度) 约束,
  3. 字段名 类型(长度) 约束,
  4. );
  5.  
  6. e.g
  7. CREATE TABLE doctor(
  8. id INT PRIMARY KEY,
  9. name VARCHAR(20) NOT NULL,
  10. );

2、查看表

①查看数据库中的所有表

  1. SHOW TABELS;

②查看表结构

  1. DESC 表名;
  2. e.g
  3. DESC doctor;

3、删除表

  1. DROP TABLE 表名;
  2. e.g
  3. DROP TABLE doctor;

4、修改表

①添加列

  1. ALTER TABLE 表名 ADD 列名 类型(长度) 约束;
  2. e.g
  3. ALTER TABLE doctor ADD title VARCHAR(20);
  4. /*给医生表添加职称字段*/

②修改列类型长度及约束

  1. ALTER TABLE 表名 MODIFY 列名 类型(长度) 约束
  2. e.g
  3. ALTER TABLE doctor MODIFY title VARCHAR(50) NOT NULL;

③修改列名

  1. ALTER TABLE 表名 CHANGE 旧列名 新列名 类型(长度) 约束;
  2. e.g
  3. ALTER TABLE doctor CHANGE title doctitle VARCHAR(30);

④删除列

  1. ALTER TABLE 表名 DROP 列名;
  2. e.g
  3. ALTER TABLE doctor DROP title;

⑤修改表名

  1. RENAME TABLE 表名 to 新表名;
  2. e.g
  3. RENAME TABLE doctor to nurse;

四、数据操作

1、增加数据

  1. INSERT INTO 表名 [(字段列表)] VALUES (值列表);
  2. e.g
  3. INSERT INTO doctor VALUES('001', '张三', '主治医师');

如果遇到主键冲突(即插入数据时,主键对应的值已经存在),可以选择更新或替换。

①更新

  1. INSERT INTO 表名[(字段列表:包含主键)] VALUES(值列表) DUPLICATE KEY UPDATE 字段 = 新值;
  2. e.g
  3. /*假如说表中001已经是张三医生了,我现在要改成李四*/
  4. INSERT INTO doctor VALUES('001', '李四', '实习医生') DUPLICATE KEY UPDATE name = '李四';

②替换

  1. REPLACE INTO 表名 [(字段列表:包含主键)] VALUES(值列表);
  2. e.g
  3. REPLACE INTO doctor VALUES('001', '李四', '实习医生');

2、更新数据

  1. UPDATE 表名 SET 字段 = [WHERE条件][LIMIT更新数量];
  2. e.g
  3. /*把职称是实习医生的前三个人改成主治医师*/
  4. UPDATE doctor SET tilte = '主治医师' WHERE title = '实习医生' LIMIT 3;

3、删除数据

  1. DELETE FROM 表名 [WHERE条件][LIMIT数量];
  2. e.g
  3. /**/
  4. DELETE FROM 表名 WHERE title = '实习医生' LIMIT 10;

4、查询数据

  1. SELECT 字段列表/(*所有字段) FROM 表名 [WHERE条件]

①去重

  1. DISTINCT

②WHERE子句

  1. 比较运算符: >, <, >=, <= ,!= ,<>, =, like, between and, in/not in
  2.  
  3. 逻辑运算符: &&(and), ||(or), !(not)

③分组

  1. GROUP BY 字段名

分组即根据某个字段进行分组(相同的放一组,不同的分到别的组,主要是为了统计数据),以下是数据统计函数:

  1. COUNT():统计分组后的记录数,每一组有多少记录
  2. MAX():统计每组的最大值
  3. MIN():统计最小值
  4. AVG():统计平均值
  5. SUM():统计和

分组条件判断需要用:

  1. HAVING

④排序

  1. ORDER BY 字段名 [ADC|DESC];
  2. /*ADC升序(默认),DESC降序*/

⑤限制数量

  1. LIMIT 数据量;
  2. /*只用来限制长度*/
  3.  
  4. LIMIT 起始位置, 长度;
  5. /*限制起始位置和数量*/

五、连接查询

1、内连接:组合两个表中的记录,返回关联字段相符的记录。

  1. 左表 [INNER]JOIN 右表 ON 左表.字段 = 右表.字段;
  2. e.g
  3. dector AS dc INNER JOIN department dp ON dc.id = dp.id;

如果没有ON的话系统会保留所有结果,即两个表的笛卡尔积。

2、左外连接:左表的记录会全部显示出来,右表只会显示符合搜索条件的记录,右表记录不足的地方均为NULL。

  1. 左表 LEFT JOIN 右表 ON 左表.字段 = 右表.字段;
  2. e.g
  3. dector AS dc LEFT JOIN department dp ON dc.id = dp.id;

3、右外连接:左表只会显示符合搜索条件的记录,右表的记录将全部显示,左表记录不足的地方均为NULL。

  1. 左表 RIGHT JOIN 右表 ON 左表.字段 = 右表.字段;
  2. e.g
  3. dector AS dc RIGHT JOIN department dp ON dc.id = dp.id;

六、视图

视图是一种有结构(有行有列)但没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义,而是从对应的基表中产生(视图的数据来源)。使用视图主要为了查询,所以把视图当做表一样查询即可。

  1. CREATE VIEW 视图名字 AS SELECT语句

1、查看视图

  1. DESC 视图名字;

2、使用视图

直接把视图当做表一样查询即可

3、修改视图

视图本身不可修改,但视图的来源可以修改。

  1. ALTER VIEW 视图名 AS 新的SELECT语句

4、删除视图

  1. DROP VIEW 视图名

MySQL语法基础的更多相关文章

  1. 学习mysql语法--基础篇(一)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分:    一.创建用户,创建数据库,给 ...

  2. 学习mysql语法--基础篇(二)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成]   DML ...

  3. 2019-10-10:渗透测试,基础学习,mysql语法基础,笔记

    mysql常用命令mysql -u用户名 -p,登录方式也称为,二进制方式exit 退出mysql 查看mysql版本select version(); 查看mysql所有数据库show dateba ...

  4. MySQL:基础语法-4

    MySQL:基础语法-4 记录一下 MySQL 基础的一些语法,便于查询,该部分内容主要是参考:bilibili 上 黑马程序员 的课程而做的笔记,由于时间有点久了,课程地址忘记了 上文MySQL:基 ...

  5. MySQL:基础语法-3

    MySQL:基础语法-3 记录一下 MySQL 基础的一些语法,便于查询,该部分内容主要是参考:bilibili 上 黑马程序员 的课程而做的笔记,由于时间有点久了,课程地址忘记了 上文MySQL:基 ...

  6. MySQL:基础语法-2

    MySQL:基础语法-2 记录一下 MySQL 基础的一些语法,便于查询,该部分内容主要是参考:bilibili 上 黑马程序员 的课程而做的笔记,由于时间有点久了,课程地址忘记了 上文MySQL:基 ...

  7. MySQL:基础语法-1

    MySQL:基础语法-1 记录一下 MySQL 基础的一些语法,便于查询,该部分内容主要是参考:bilibili 上 黑马程序员 的课程而做的笔记,由于时间有点久了,课程地址忘记了 关于数据库的安装操 ...

  8. mongodb linux基本启动 基础增删改 mysql语法的对比

    一.主流数据源类型 还存在自定义数据源以及REST接口数据,共6中数据源. 二.linux下启动连接数据库 进去mongodb的目录启动服务:mongo --host 192.168.320.826 ...

  9. MySQL数据库基础

    MySQL数据库基础 本文的所有操作是基于CMD环境,MySQL通过在命令行中输入SQL语句对数据库进行操作.配置问题可参考<打通MySQL的操作权限>中的内容,该文算是针对前期的环境配置 ...

随机推荐

  1. Linux 驱动框架---驱动中的并发

    并发指多个执行单元被同时.并行的执行,而并发执行的单元对共享资源的访问就容易导致竟态.并发产生的情况分为抢占和并行(多核)和硬抢占(中断).Linux为解决这一问题增加了一系列的接口来解决并发导致的竟 ...

  2. Linux下开发STM32单片机

    一开始学习51单片机就是用的MDK这个IDE软件,IDE软件虽然看起来直观好像更加容易入门(因为有界面看起来很形象),但是实际上IDE却是向我们这些入门人员隐藏了背后真实存在的过程,让我们以为编译就是 ...

  3. Jamstack Conf 2020

    Jamstack Conf 2020 Jamstack Conf Virtual https://jamstackconf.com/virtual/ Conf Schedule https://jam ...

  4. js 构造函数 & 静态方法 & 原型 & 实例方法

    js 构造函数 & 静态方法 & 原型 & 实例方法 ES5 "use strict"; /** * * @author xgqfrms * @licens ...

  5. shit 牛客网

    shit 牛客网 为什么,只可以 log 一次,什么垃圾逻辑呀! https://www.nowcoder.com/test/question/e46437833ddc4c5bb79f7af7a1b7 ...

  6. img & srcset

    img & srcset 性能优化 <img class="fn tj s t u fa ai ht" width="3700" height=& ...

  7. 从微信小程序到鸿蒙js开发【08】——表单组件&注册登录模块

    目录: 1.登录模块 2.注册模块 3.系列文章导读 牛年将至,祝大家行行无bug,页页so easy- 在微信小程序中,提供了form组件,可以将input.picker.slider.button ...

  8. (1)MySQL进阶篇在linux环境下安装

    1.概述 对于mysql二进制安装,优点是可以安装到任何路径下,灵活性好,一台服务器可以安装多个mysql.缺点是已经编译过,性能不如源码编译得好,不能灵活定制编译参数.如果用户即不想安装最简单却不够 ...

  9. 面试20家互联网公司总结出的高频MySQL面试题

    1.MyISAM存储获与InnoDB存储引擎  MyISAM存储引擎不支持事务.表锁设计.支持全文索引.缓冲池只缓存索引文件,并不缓存数据文件. InnoDB存储引擎支持事务.行锁设计.支持外键,支持 ...

  10. ATP - UI 自动化测试用例管理平台搭建

    用到的工具:python3 + django2 + mysql + RabbitMQ + celery + selenium python3和selenium这个网上很多教程,我不在这一一说明:   ...