学习MySQL的第二天:SQL(基础篇)
目录
一,SQL通用语法
二,SQL分类
三,DDL(数据定义语言)
1,数据库操作:
2,表操作:
3,表操作-数据类型:
1)数据类型:编辑
2)字符串类型:
3)日期类型:
4)案例:
4,表操作-修改:
1)增加字段:
2)修改:
3)删除字段:
4)修改表名:
5,表操作-删除
6,总结:
1)数据库操作:
2)表操作:
四, 图形化界面工具DataGrip
五,DML(数据操作语言)--Data Manipulation Language
1,增加数据:
1)给指定字段添加数据:
2)给所有字段添加数据:
3)批量添加数据:
2,修改数据:
3,删除数据:
六,DQL (数据查询语言)--Data Query Language
1,基本查询:
1)查询多个字段:
2)设置别名: 编辑
3)去除重复记录:(返回去重操作后的数据)
2,条件查询:
3,聚合函数:
4,分组查询:
5,排序查询:
6,分页查询:
习题:
答案:
7,执行顺序:
七,DCL(数据控制语言)--Data Control Language
1,用户管理:
2,权限控制:
学习大纲:
一,SQL通用语法
1. SQL语句可以单行或多行书写,以分号结尾。
2.SQL语句可以使用空格/缩进来增强语句的可读性。
3. MySQL数据库的SQL语句不区分大小写, 关键字建议使用大写。(统一规范)
4.注释:
●单行注释: -- 注释内容或 # 注释内容(MySQL特有)
●多行注释: /* 注释内容*/
二,SQL分类
三,DDL(数据定义语言)
1,数据库操作:
2,表操作:
查询所有的表之前,前提是要先进入这个数据库中。(use 数据库名)
注意: [..]为可选参数,最后一个字段后面没有逗号
尝试用上面的伪代码讲下面的表结构创建出来。
注:不要随意在系统库里面进行操作。
3,表操作-数据类型:
MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
1)数据类型:
精度:所有位数
标度:小数位数
2)字符串类型:
char的性能较好,(varchar)。有一个计算的过程。(计算字符串的长度)
3)日期类型:
4)案例:
根据需求创建表(设计合理的数据类型、长度)
设计一张员工信息表,要求如下:
1.编号(纯数字)
2.员工工号 (字符串类型,长度不超过10位)
3. 员工姓名(字符串类型,长度不超过10位)
4.性别(男/女,存储一一个汉字)
5.年龄(正常人年龄,不可能存储负数)
6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
7.入职时间 (取值年月日即可)
4,表操作-修改:
1)增加字段:
为emp表增加一个新的字段”昵称"为nickname,类型为varchar(20)
2)修改:
将emp表的nickname字段修改为username,类型为varchar(30)
3)删除字段:
将emp表的字段username删除
4)修改表名:
将emp表的表名修改为employee
5,表操作-删除
将原有的数据全部删除,重新创建一张新表,表中无任何数据。
6,总结:
1)数据库操作:
2)表操作:
四, 图形化界面工具DataGrip
日常开发效率低,使用不直观。
五,DML(数据操作语言)--Data Manipulation Language
用于对数据库中表的数据记录进行增删改操作
1,增加数据:
1)给指定字段添加数据:
2)给所有字段添加数据:
3)批量添加数据:
注意:
●插入数据时,指定的字段顺序需要与值的顺序是一一对应的。.
●字符串和日期型数据应该包含在引号中。
●插入的数据大小,应该在字段的规定范围内。
2,修改数据:
注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
如果不带where条件,代表修改整张表。
3,删除数据:
注意:
DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
DELETE语句不能删除某一个字段的值(可以使 用UPDATE)。
六,DQL (数据查询语言)--Data Query Language
用来查询数据库中表的记录。
1,基本查询:
1)查询多个字段:
2)设置别名:
3)去除重复记录:(返回去重操作后的数据)
create table emp(id int comment '编号',workno varchar(10) comment '工号',name varchar(10) comment '姓名',gender char(1) comment '性别',age tinyint unsigned comment '年龄',idcard char(10) comment '身份证号',workaddress varchar(50) comment '工作地址',entrydata date comment '入职时间'
) comment '员工表';insert into emp(id, workno, name, gender, age, idcard, workaddress, entrydata)
values (1,'1','y11','m',29,'1234','北京','2008-01-01'),(2,'2','y12','m',30,'2234','北京','2008-03-01'),(3,'3','y13','w',19,'3234','北京','2008-05-01'),(4,'4','y14','m',56,'4234','北京','2008-07-01'),(5,'5','y15','w',25,'5234','北京','2008-08-01'),(6,'6','y16','m',35,'6234','北京','2009-01-01'),(7,'7','y17','w',38,'7234','北京','2002-01-01'),(8,'8','y18','m',45,'8234','北京','2005-06-01'),(9,'9','y19','w',29,'9234','北京','2008-01-01'),(10,'10','y10','m',21,'0234','北京','2007-03-01');
案例:
1,
2,
尽量不写*,不直观,会影响效率。
3,
as可写可不写。
4,
不能用别名去查重。
2,条件查询:
案例:
1,
2,
4,
不能混合使用关键字。
6,
7,
between后面接最小值,and后面接最大值。
9,
10,
11,查询身份证号第一位是9的员工信息
3,聚合函数:
1)将一列数据作为一个整体,进行纵向计算。
2)常见聚合函数:
3)语法:
案例:
注意: null值不参与所有聚合函数运算。
1,
2,自动保留四位小数 3,
5,
4,分组查询:
where与having区别
执行时机不同: where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
判断条件不同: where不能对聚合函数进行判断,而having可以。
案例:
1,
3,
注意
●执行顺序: where >聚合函数> having。
●分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
5,排序查询:
排序方式
ASC:升序(默认值)
DESC:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
案例:
1, 3,
6,分页查询:
注意
●起始索引从0开始,起始索引= (查询页码-1) *每页显示记录数。
●分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
●如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。
案例:
1,
2,
习题:
答案:
7,执行顺序:
验证!!!!
七,DCL(数据控制语言)--Data Control Language
用来管理数据库用户,控制数据库访问权限。
主要是管理两个方面。
1,哪些用户可以访问该数据库服务器。(用户管理)
2,该用户可以访问哪些数据库。(权限控制)
1,用户管理:
案例:
注意:
●主机名可以使用%通配。
●这类SQL语句开发人员操作的比较少,主要是DBA ( Database Administrator 数据库管理员)使用。
2,权限控制:
还想知道更多,就去查官方文件。
无任何权限,仅仅是能登录数据库,连接数据库而已。
用命令行查看时,要先退出,再进去查看。不然的话,权限仍然未变。
注意:
●多个权限之间,使用逗号分隔
●授权时,数据库名和表名可以使用*进行通配,代表所有。
学习MySQL的第二天:SQL(基础篇)相关推荐
- 焱老师带你学习MYSQL系列 第二篇 (MYSQL 数据结构)
相关系列链接 焱老师带你学习MYSQL系列 第六篇 (MYSQL是如何实现锁的) 焱老师带你学习MYSQL系列 第五篇 (MYSQL事务隔离级别是如何实现的) 焱老师带你学习MYSQL系列 第四篇 ( ...
- D3.js学习指北--第二章,基础复习
D3学习指北–第二章,基础复习 1.关于html的svg标签 html5里有很多个标签,但是关于D3的应用多用在一个标签上< svg >svg标签可以理解为一个绘画板,里面提供了各类的 ...
- Python学习之旅(核心编程基础篇003运算符)
Python学习之旅 Python核心编程基础篇2020.12.18 一.算数运算符 二.比较运算符 三.赋值运算符 四.逻辑运算符 五.成员运算符 六.身份运算符 七.三目运算符 八.运算符优先级 ...
- SQL 基础篇 SQL 16 查找GPA最高值
SQL基础篇(汇总)刷题传送门 题目链接 题面 样例输入 drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` i ...
- Cyclone V SoC FPGA学习之路第二章:硬件篇
Cyclone V SoC FPGA学习之路第二章:硬件篇(内部资源) 前言 上一章了解了<cycloneV device datasheet>,其中数据手册里重点介绍了电源要求,时序参数 ...
- 学习easygui的第二天(基础功能)
学习easygui的第二天(基础功能) 一.什么是easygui 二.导入easygui 三.easygui的默认参数 四.调用easygui里的函数 一.什么是easygui easygui是Pyt ...
- 【MySQL之MySQL底层分析篇】系统学习MySQL,从应用SQL语法到底层知识讲解,这将是你见过最完成的知识体系
文章目录 MySQL体系结构 MySQL存储结构(以InnoDB为例) MySQL执行流程(以InnoDB为例) 1. 数据写入原理 2. 数据查询原理 MySQL存储引擎 1. 为什么需要不同的存储 ...
- 【MySQL入门到高级之基础篇(参考尚硅谷宋红康老师2022版)】
文章目录 第一章数据库概述 为什么要使用数据库 数据库与数据库管理系统 数据库的相关概念 数据库与数据库管理系统的关系 常见的数据库管理系统排名(DBMS) 常见的数据库介绍 MySQL介绍 概述 M ...
- mysql经典总结文章_MySQL基础篇(01):经典实用查询案例,总结整理
MySQL基础篇(01):经典实用查询案例,总结整理 发布时间:2020-02-26 22:25:21 来源:51CTO 阅读:244 作者:知了一笑 本文源码:GitHub·点这里 || GitEE ...
最新文章
- 华人“军火专家”——黄仁勋
- 调查:新冠病毒对全球结构化布线市场的影响
- 数据分析结果解读_聚类分析的实际运用及案例解读(二)
- Python中正反斜杠('/'和'\')的意义
- osgdem的参数表(转)
- jq分页 不刷新页面_jQuery无刷新分页完整实例代码
- oracle 物化视图 on commit,oracle物化视图的一般用法
- edius隐藏快捷键_EDIUS素材隐藏快捷键是什么啊?
- Linux基础——014_钩子程序同步代码
- 淘宝与拍拍的世纪之战!(庄帅)
- 系统测试缺陷检出密度越大越好吗?
- 知道一点怎么设直线方程_两点直线方程怎么求
- WRITE_ONCE READ_ONCE 函数的介绍与使用
- 世硕科技推荐:Shockman 最新音译 登峰侠
- qcustomplot时间坐标轴画直线_QCustomplot使用分享(六) 坐标轴和网格线
- 计算机win10分区软件,如何利用Win10系统DiskPart工具进行GPT硬盘分区
- 前端项目更换鼠标样式
- raspberry pi_使用Raspberry Pi为您的娱乐中心构建时钟
- 139邮箱山寨版push mail功能
- 支持向量机-《统计学习方法》学习笔记