数据库概述SQL基本语法

基本概念

数据库DB

database简称DB: 存储数据的仓库,是以某种结构存储数据的文件。指长期保存在计算机的存储设备上,按照一定规则阻止起来,可以被用户或应用共享的数据集合。

数据库管理系统DBMS

用于创建,维护,使用数据库的一种大型软件系统。比如MySQL, Oracle, SQL server等等。

使用

MySQL服务的开启

方式1:右键任务栏->任务管理器->服务->MySQL80->右键即可启动服务
方式2:CMD命令行操作:小黑窗里面输入:net start/stop MySQL80来启动或关闭服务。

MySQL的访问方式

方式1:外部访问命令 mysql -h主机名 -P端口号 -u用户名 -p密码
如果是访问本机的数据库,可以省略为mysql -u用户名 -p密码

方式2:MySQL安装自带的命令行
直接输入账号的密码即可登录,默认是主机是本机,默认端口号是3306,默认账号是root.

方式3:图形化窗口,Navicat, SQLyog, MySQLWorkBench等工具。

数据类型

数值类型:
int : tinyint、smallint、mediumint、int
decimal(5, 2): 表示范围为-999.99~999.99
字符串类型:
char: 定长字符串类型,默认长度为1
varchar(50):变长字符串类型
text: 不支持默认值
日期类型:
datatime: 存储的时间不会随着时区变化。
timestamp:日期时间戳,到2038年就不能用了。
json类型

update products
set properties = '{"dimension" : [1,2,3],"weight" : 10,"manufacturer" : {"name" : "sony"}
}'
WHERE product_id = 1;
select product_id, json_extract(properties, '$.weight') as weight
from products
where product_id = 1;

SQL语言

分类

  • DDL数据定义语言
  • DML数据操作语言
  • DQL数据查询语言
  • DCL数据控制语言

定义库

-- 查询所有的库
show databases;
-- 创建库
create database db1;
-- 查询数据库的字符集
show create database;
-- 指定字符集和校对规则
create database mydb2 character set gbk;
-- 修改字符集
alter database mydb2 character set utf8;
-- 删除数据
drop database mydb2;
--切换库
use db1;

定义表

-- 创建表
create table student (id int, name varchar(50), age int, gender char);
-- 查看所有表
show tables;
show create table student; -- 查看完成的创建语句
-- 查看表结构
desc student;
-- 修改表名
alter table student rename to stu;
-- 修改字段名
alter table stu change id sid int;
-- 修改数据类型
alter table stu modify gender char(2);
-- 新增字段
alter table stu add score double(5, 2);
-- 修改字段的顺序
alter table stu modify gender char(2) after name;
-- 删除表
drop table stu;

DML数据操作

  • insert添加数据
-- 全字段插入
insert into emp 
value(101,'tom','男'12000, '1999-02-23', 'boss');
-- 指定字段插入
insert into emp(id, name)
value(102, 'jack');
-- 批量插入
insert into emp(id, name) 
values(103, 'rose'),(104, 'pert');
  • update更新数据
-- 将所有行的该字段数据修改为一个值
update emp set salary = salary + 15000;--指定某一条数据
update emp set salary = 19000 
where name = 'jack';update emp salary = 1000, gender='女'
where name = 'rose';update emp set birthday = '2000-01-01'
where id = 104;
  • delete删除数据
delete from emp where name = 'jack';-- 删除全部数据,逐条删除,删除后可以恢复,主键还是继续累加的
delete from emp;-- 删除表后,全新创建一个空的新表,删除后无法恢复
truncate emp;

delete和truncate的区别:

  • 删除全部数据,逐条删除,删除后可以恢复,主键还是继续累加
  • 删除表后,全新创建一个空的新表,删除后无法恢复

DQL数据查询语句

select 关键字的作用:用于运算,执行函数,查询数据。

  • 基本查询

    • select * from emp;: 查询emp的所有数据
    • select name, salary from emp; 查询指定字段的数据
    • select distinct salary from emp; 去除重复数据
    • select name, salary + 1000 as new_salary from emp;起别名
  • 多个条件复合查询

    • select * from emp where id = 1 or id = 2;
    • select * from emp where eid in (1, 3, 5);集合条件查询
  • 区间条件查询

    • select * from emp where salary >= 8000 and salary <= 15000;
    • select * from emp where salary between 9000 and 15000;
  • 带有NULL的查询

    • select * from emp where salary is null;
    • select * from emp where salary is not null;
    • select name, IFNULL(salary, 0) + 1000 from emp; 把null值作为0处理。
  • 模糊查询:使用like关键字,不要用等号

    • 下划线 _ 表示任意一个字符
    • 百分号 % 表示任意 多个字符
  • 排序:关键字order by 字段名,默认是ASC升序排序,DESC是降序。

    • select * from emp order by salary desc; 按照降序排列
    • select * from emp order by id asc; asc可以省略
    • select * from emp order by salary asc, id desc;多个条件排序
  • 聚合函数

    • select count(*) from t_employee where commission_pct is not null;统计函数
    • select * from t_employee where salary * (1 + IFNULL(commission_pct, 0)) > 15000; 如果值可能为空的话,要使用IFNULL()方法设置默认值,否则NULL和其他数字计算还是NULL.
    • select SUM(salary), SUM(commission_pct * salary) from t_employee;计算工资总和
    • select SUM(salary * (IFNULL(commission_pct, 0) + 1)) from t_employee;计算带佣金的工资总和
    • select max(birthday), min(birthday) from t_employee;查询年纪最小和最大的员工
  • 分组查询

    • select did, count(*) from t_employee group by did;查询部门变化和每个部门的人数
    • select did, sum(salary) from t_employee group by did having SUM(salary) > 40000;查询工资总和大于40000的部门编号及工资和。
    • select did, SUM(salary) sm from t_employee where gender = '女' group by did having sm > 20000;查询部门女员工工资总和大于20000的部门编号和工资总和。
  • Limit m, n 关键字

    • m 表示查询的起始索引,n表示需要查询的记录数
    • select * from emp limit 0, 5;查询前5条记录
    • select * from emp limit (x-1) * n , n; 查询第x页的记录,每页有n条记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/50597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“深入剖析JVM内部机制:了解Java虚拟机的工作原理“

标题&#xff1a;深入剖析JVM内部机制&#xff1a;了解Java虚拟机的工作原理 摘要&#xff1a;本文将深入剖析JVM内部机制&#xff0c;详细介绍Java虚拟机的工作原理。我们将探讨JVM的组成部分、类加载过程、内存管理、垃圾回收以及即时编译等关键概念。此外&#xff0c;还将提…

selenium +Jmeter 的性能测试

通过Jmeter快速将已有的Selenium 代码以性能测试的方式组织起来&#xff0c;并使用JMeter 丰富的报表展示测试结果 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By driver …

08.利用Redis实现签到功能

学习目标&#xff1a; 来源&#xff1a;黑马教程 使用Redis中BitMap数据结构使用签到功能和连续签到功能 学习产出&#xff1a; 解决方案&#xff1a; 1. 准备pom环境 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-b…

push github

一、生成密钥 打开git bash执行下面指令&#xff0c;Enter下一步Enter下一步..生成ssh key 密钥&#xff1b; ssh-keygen -t rsa 二、 复制公共密钥到git hub 登录github&#xff0c;在选项setting >> SSH and GPG key >> add new ssh添加刚才的公钥地址即可 验证…

Hadoop入门机安装hadoop

0目录 1.Hadoop入门 2.linux安装hadoop 1.Hadoop入门 定义 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下&#xff0c;开发分布式程序。充分利用集群的威力进行高速运算和存储。 优势 高可靠性&#xff1a;Hadoop底层维护多…

机器学习中XGBoost算法调参技巧

本文将详细解释XGBoost中十个最常用超参数的介绍&#xff0c;功能和值范围&#xff0c;及如何使用Optuna进行超参数调优。 对于XGBoost来说&#xff0c;默认的超参数是可以正常运行的&#xff0c;但是如果你想获得最佳的效果&#xff0c;那么就需要自行调整一些超参数来匹配你…

docker实践作业

1.安装docker服务&#xff0c;配置镜像加速器 2.下载系统镜像&#xff08;Ubuntu、 centos&#xff09; 3.基于下载的镜像创建两个容器 &#xff08;容器名一个为自己名字全拼&#xff0c;一个为首名字字母&#xff09; 4.容器的启动、 停止及重启操作 5.怎么查看正在运行的容器…

c++都补了c语言哪些坑?

目录 1.命名空间 1.1 定义 1.2 使用 2.缺省参数 2.1 概念 2.2 分类 3.函数重载 4.引用 4.1 概念 4.2 特性 4.3 常引用 4.4 引用和指针的区别 5.内联函数 1.命名空间 在 C/C 中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0c;这些变量、函数和类的名称将…

AR地图微信小程序:数字化时代下地图应用的新突破

随着数字化时代的到来&#xff0c;地图应用成为人们日常生活中不可或缺的工具。而随着增强现实&#xff08;AR&#xff09;技术的快速发展&#xff0c;AR地图微信小程序应运而生&#xff0c;为用户提供了一种全新的地图导航体验。本文将深入探讨AR地图微信小程序的专业性和思考…

Node.js 安装和配置(完整详细版)

在Windows上安装和配置Node.js&#xff1a; 下载Node.js安装程序&#xff1a; 前往Node.js官方网站&#xff08;https://nodejs.org/&#xff09;&#xff0c;在主页上找到"Downloads"&#xff08;下载&#xff09;选项。然后选择适用于Windows的"Windows Insta…

libdrm全解析十 —— 源码全解析(7)

接前一篇文章&#xff1a;libdrm全解析九 —— 源码全解析&#xff08;6&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; 特此致谢&#xff01; 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 11. DRM_IOCTL_GEM_FLINK …

kotlin 比较 let apply

let 和 apply 是 Kotlin 标准库中的两个非常有用的函数&#xff0c;它们用于在代码中实现更简洁和可读的操作。它们通常在函数式编程和链式调用中使用&#xff0c;以简化代码并提高可维护性。下面是关于这两个函数的详细解释&#xff1a; let let 函数是一个作用域函数&#…

安卓系列机型-禁止卸载某个APP 防止误卸载软件 无需root权限

安卓系列机型-禁止安装某软件 防止“沉迷游戏的小孩”操作解析_安卓机器的博客-CSDN博客 上一期讲了如何禁止安装某个app。今天讲下如何禁止卸载某app。正好相反的操作。任何操作有利有弊。主要看使用者如何对待使用。 &#x1f494;&#x1f494;&#x1f494;以腾讯的一款游…

Android Lottie加载gson文件动画

一&#xff1a;Lottie的使用 在你工程的build.gradle文件里添加如下配置 implementation com.airbnb.android:lottie:3.4.0二&#xff1a;布局文件直接引入LottieAnimationView <com.airbnb.lottie.LottieAnimationViewandroid:id"id/lottie_view"android:layout…

2023年国赛 高教社杯数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 最短时…

基于Jenkins自动打包并部署docker环境

目录 1、安装docker-ce 2、阿里云镜像加速器 3、构建tomcat 基础镜像 4、构建一个Maven项目 实验环境 操作系统 IP地址 主机名 角色 CentOS7.5 192.168.200.111 git git服务器 CentOS7.5 192.168.200.112 Jenkins git客户端 jenkins服务器 CentOS7.5 192.168…

【实训项目】易行APP设计(c2c二手交易平台)

1.设计摘要 1.1市场背景 随着经济的迅速发展与科技日新月异的进步&#xff0c;家庭内的各项物品更新换代频率越来越快&#xff0c;人们购买新商品后越来越多旧的商品积压需要处理&#xff1b;在互联网电商的各种营销刺激下&#xff0c;消费者非常容易形成“冲动”消费&#x…

回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测

回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测 目录 回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现DBN-ELM深度置信网络结合极限学习…

基于paddleocr的文档识别

1、版面分析 使用轻量模型PP-PicoDet检测模型实现版面各种类别的检测。 数据集&#xff1a; 英文&#xff1a;publaynet数据集的训练集合中包含35万张图像&#xff0c;验证集合中包含1.1万张图像。总共包含5个类别。 中文&#xff1a;CDLA据集的训练集合中包含5000张图像&a…

蓝蓝设计-UI设计公司作品-博晖创新原子吸收光谱仪软件交互及界面设计

博晖创新原子吸收光谱仪软件交互及界面设计 图标设计 | 交互设计 | 界面设计 博晖公司拥有强大的自主研发实力&#xff0c;建立了专业的研发团队&#xff0c;通过不断的技术创新&#xff0c;形成了分子诊断、免疫诊断、原子吸收、原子荧光及质谱五大技术平台&#xff0c;并成功…