MySQL语法基础
一、通用语法
1、MySQL数据库的SQL语句不区分大小写
2、可以用/**/完成注释
3、常用数据类型
| 类型 | 描述 |
| int | 整型 |
| double | 浮点型 |
| varchar | 字符串型 |
| date | 日期类型,格式为yyyy-mm-dd,只有年月日没有时分秒 |
二、数据库操作
1、创建数据库
CREATE DATABASE 数据库名;
e.g
CREATE DATABASE hospital;
2、查看数据库
①查看数据库MySQL服务器中所有数据库
SHOW DATABASES;
/*查看数据库MySQL服务器中所有数据库*/
②查看某个数据库定义的信息
SHOW CREATE DATABASE 数据库名; e.g
SHOW CREATE DATABASE hospital;
3、删除数据库
DROP DATABASE 数据库名;
e.g
DROP DATABASE hospital;
4、切换数据库
USE 数据库名;
e.g
USE hospital;
三、表操作
1、创建表
CREATE TABLE 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束,
); e.g
CREATE TABLE doctor(
id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
);
2、查看表
①查看数据库中的所有表
SHOW TABELS;
②查看表结构
DESC 表名;
e.g
DESC doctor;
3、删除表
DROP TABLE 表名;
e.g
DROP TABLE doctor;
4、修改表
①添加列
ALTER TABLE 表名 ADD 列名 类型(长度) 约束;
e.g
ALTER TABLE doctor ADD title VARCHAR(20);
/*给医生表添加职称字段*/
②修改列类型长度及约束
ALTER TABLE 表名 MODIFY 列名 类型(长度) 约束
e.g
ALTER TABLE doctor MODIFY title VARCHAR(50) NOT NULL;
③修改列名
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型(长度) 约束;
e.g
ALTER TABLE doctor CHANGE title doctitle VARCHAR(30);
④删除列
ALTER TABLE 表名 DROP 列名;
e.g
ALTER TABLE doctor DROP title;
⑤修改表名
RENAME TABLE 表名 to 新表名;
e.g
RENAME TABLE doctor to nurse;
四、数据操作
1、增加数据
INSERT INTO 表名 [(字段列表)] VALUES (值列表);
e.g
INSERT INTO doctor VALUES('001', '张三', '主治医师');
如果遇到主键冲突(即插入数据时,主键对应的值已经存在),可以选择更新或替换。
①更新
INSERT INTO 表名[(字段列表:包含主键)] VALUES(值列表) DUPLICATE KEY UPDATE 字段 = 新值;
e.g
/*假如说表中001已经是张三医生了,我现在要改成李四*/
INSERT INTO doctor VALUES('001', '李四', '实习医生') DUPLICATE KEY UPDATE name = '李四';
②替换
REPLACE INTO 表名 [(字段列表:包含主键)] VALUES(值列表);
e.g
REPLACE INTO doctor VALUES('001', '李四', '实习医生');
2、更新数据
UPDATE 表名 SET 字段 = 值 [WHERE条件][LIMIT更新数量];
e.g
/*把职称是实习医生的前三个人改成主治医师*/
UPDATE doctor SET tilte = '主治医师' WHERE title = '实习医生' LIMIT 3;
3、删除数据
DELETE FROM 表名 [WHERE条件][LIMIT数量];
e.g
/**/
DELETE FROM 表名 WHERE title = '实习医生' LIMIT 10;
4、查询数据
SELECT 字段列表/(*所有字段) FROM 表名 [WHERE条件]
①去重
DISTINCT
②WHERE子句
比较运算符: >, <, >=, <= ,!= ,<>, =, like, between and, in/not in 逻辑运算符: &&(and), ||(or), !(not)
③分组
GROUP BY 字段名
分组即根据某个字段进行分组(相同的放一组,不同的分到别的组,主要是为了统计数据),以下是数据统计函数:
COUNT():统计分组后的记录数,每一组有多少记录
MAX():统计每组的最大值
MIN():统计最小值
AVG():统计平均值
SUM():统计和
分组条件判断需要用:
HAVING
④排序
ORDER BY 字段名 [ADC|DESC];
/*ADC升序(默认),DESC降序*/
⑤限制数量
LIMIT 数据量;
/*只用来限制长度*/ LIMIT 起始位置, 长度;
/*限制起始位置和数量*/
五、连接查询
1、内连接:组合两个表中的记录,返回关联字段相符的记录。
左表 [INNER]JOIN 右表 ON 左表.字段 = 右表.字段;
e.g
dector AS dc INNER JOIN department dp ON dc.id = dp.id;
如果没有ON的话系统会保留所有结果,即两个表的笛卡尔积。
2、左外连接:左表的记录会全部显示出来,右表只会显示符合搜索条件的记录,右表记录不足的地方均为NULL。
左表 LEFT JOIN 右表 ON 左表.字段 = 右表.字段;
e.g
dector AS dc LEFT JOIN department dp ON dc.id = dp.id;
3、右外连接:左表只会显示符合搜索条件的记录,右表的记录将全部显示,左表记录不足的地方均为NULL。
左表 RIGHT JOIN 右表 ON 左表.字段 = 右表.字段;
e.g
dector AS dc RIGHT JOIN department dp ON dc.id = dp.id;
六、视图
视图是一种有结构(有行有列)但没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义,而是从对应的基表中产生(视图的数据来源)。使用视图主要为了查询,所以把视图当做表一样查询即可。
CREATE VIEW 视图名字 AS SELECT语句
1、查看视图
DESC 视图名字;
2、使用视图
直接把视图当做表一样查询即可
3、修改视图
视图本身不可修改,但视图的来源可以修改。
ALTER VIEW 视图名 AS 新的SELECT语句
4、删除视图
DROP VIEW 视图名
MySQL语法基础的更多相关文章
- 学习mysql语法--基础篇(一)
前 言 mysql mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: 一.创建用户,创建数据库,给 ...
- 学习mysql语法--基础篇(二)
前 言 mysql mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成] DML ...
- 2019-10-10:渗透测试,基础学习,mysql语法基础,笔记
mysql常用命令mysql -u用户名 -p,登录方式也称为,二进制方式exit 退出mysql 查看mysql版本select version(); 查看mysql所有数据库show dateba ...
- MySQL:基础语法-4
MySQL:基础语法-4 记录一下 MySQL 基础的一些语法,便于查询,该部分内容主要是参考:bilibili 上 黑马程序员 的课程而做的笔记,由于时间有点久了,课程地址忘记了 上文MySQL:基 ...
- MySQL:基础语法-3
MySQL:基础语法-3 记录一下 MySQL 基础的一些语法,便于查询,该部分内容主要是参考:bilibili 上 黑马程序员 的课程而做的笔记,由于时间有点久了,课程地址忘记了 上文MySQL:基 ...
- MySQL:基础语法-2
MySQL:基础语法-2 记录一下 MySQL 基础的一些语法,便于查询,该部分内容主要是参考:bilibili 上 黑马程序员 的课程而做的笔记,由于时间有点久了,课程地址忘记了 上文MySQL:基 ...
- MySQL:基础语法-1
MySQL:基础语法-1 记录一下 MySQL 基础的一些语法,便于查询,该部分内容主要是参考:bilibili 上 黑马程序员 的课程而做的笔记,由于时间有点久了,课程地址忘记了 关于数据库的安装操 ...
- mongodb linux基本启动 基础增删改 mysql语法的对比
一.主流数据源类型 还存在自定义数据源以及REST接口数据,共6中数据源. 二.linux下启动连接数据库 进去mongodb的目录启动服务:mongo --host 192.168.320.826 ...
- MySQL数据库基础
MySQL数据库基础 本文的所有操作是基于CMD环境,MySQL通过在命令行中输入SQL语句对数据库进行操作.配置问题可参考<打通MySQL的操作权限>中的内容,该文算是针对前期的环境配置 ...
随机推荐
- 杭电多校HDU 6586 String(预处理 + 贪心)题解
题意: 给你一个串,现需要你给出一个子序列,满足26个约束条件,\(len(A_i) >= L_i\) 且 \(len(A_i) <= R_i\), \(A_i\)为从a到z的26个字母. ...
- 重新上手c语言的一些坑
c语言结构体不能声明函数,放几个函数指针倒是没问题 c语言结构体不能在声明时初始化 声明两个指针 int *a,*b; 或者typedef int* int_P int_P a,b; typedef要 ...
- 【原】无脑操作:Centos 7.6 + MariaDB + Rsyslog + LogAnalyzer环境搭建
背景: 网络安全法第三章第二十一条明确规定"采取监测.记录网络运行状态.网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月". 为了满足合规性的要求,应当建设相应的日 ...
- Go之Casbin简介,安装,模型,存储,函数
简介 Casbin是一个强大的,高效的开源访问控制框架,其权限管理机制支持多种访问控制模型 支持编程语言 不同语言中支持的特性 我们一直致力于让 Casbin 在不同的编程语言中拥有相同的特性. 但是 ...
- HTTP状态响应码解析
# HTTP响应状态码 ## 1xx:临时响应 #### 表示临时响应并需要请求者继续执行操作的状态代码. 100 **继续**请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等 ...
- JDK源码阅读-DirectByteBuffer
本文转载自JDK源码阅读-DirectByteBuffer 导语 在文章JDK源码阅读-ByteBuffer中,我们学习了ByteBuffer的设计.但是他是一个抽象类,真正的实现分为两类:HeapB ...
- 蓝绿部署、金丝雀发布(灰度发布)、A/B测试
本文转载自蓝绿部署.金丝雀发布(灰度发布).A/B测试的准确定义 概述 蓝绿部署.A/B测试.金丝雀发布,以及灰度发布.流量切分等,经常被混为一谈,影响沟通效率. 根本原因是这些名词经常出现,人们耳熟 ...
- 🎊 Element UI 新春快报
新年好,Element UI 开发团队给各位支持我们的开发者们拜个晚年,祝大家在新的一年里工作没 bug, 天天不加班. 在过去一年里,Element UI 团队在稳定维护 Vue 2.x 版本的同时 ...
- 【Notes_8】现代图形学入门——几何(基本表示方法、曲线与曲面)
几何 几何表示 隐式表示 不给出点的坐标,给数学表达式 优点 可以很容易找到点与几何之间的关系 缺点 找某特定的点很难 更多的隐式表示方法 Constructive Solid Geometry .D ...
- jenkins+docker+nginx+tomcat实现vue项目部署
一.项目准备 1.新建一个vue的项目,确保能在浏览器正常访问.然后在项目的根目录下新建一个Dockerfile的文件,内容如下 FROM nginx COPY dist /usr/share/ngi ...