JavaWeb笔记——mysql单表操作


黑马程序员2023javaweb开发网课笔记,自用


一、SQL 基本概念

1.1 通用语法

  1. SQL语句可以单行/多行书写,以分号;结尾
  2. SQL语句中可以增加缩进/空格来增强可读性。
  3. SQL语句中的关键字不区分大小写
  4. SQL语句注释:单行注释(-- 注释),多行注释(/* 注释 */)

1.2 语句分类

在这里插入图片描述

1.3 mysql安装

  1. 解压安装包后,在环境中配置MYSQL_HOME,在path中配置%MYSQL_HOME%\bin。
  2. cmd中运行指令,出现截图结果则以上安装成功。
mysql

在这里插入图片描述

  1. 初始化: cmd中运行指令,安装目录下出现data文件夹
mysqld --initialize-insecure
  1. mysql服务注册:管理员身份运行cmd,指令如下:
mysqld -install

在这里插入图片描述

  1. 启动/关闭指令:
net start mysql
net stop mysql
  1. 修改默认账户密码:一般用户名是root
mysqladmin -u 用户名 password 密码
  1. 登录mysql:
mysql -u用户名 -p密码

1.4 图形化工具——navicat

安装教程:MySQL+Navicat安装配置

  1. 申请链接mysql:
    在这里插入图片描述
  2. 双击图标,由灰转绿,链接成功:
    在这里插入图片描述

1.5 idea链接Mysql

  1. 右侧Database->加号->Data Source->MySQL
    在这里插入图片描述

  2. 用户名和密码->第一次链接需要点击Download下载包->点击test connection测试链接->ok
    在这里插入图片描述

  3. 链接成功的结果:
    在这里插入图片描述

  4. console:右侧选择对应的库,再运行代码
    在这里插入图片描述

  5. 表格:加号增加新数据行,数据更新后,需要单击绿色箭头上传
    在这里插入图片描述


二、DDL数据定义语句

2.1 针对数据库操作的语句

  1. 创建数据库,data下自动创建db01,名称不可重复
create database [if exists] db01;

在这里插入图片描述

  1. 查询数据库:
show databases;--查询所有数据库

在这里插入图片描述

select database();--查询当前正在操作的数据库

在这里插入图片描述

  1. 使用数据库:
use 数据库名称;
  1. 删除数据库:
drop database [if exists] 数据库名称;

2.2 针对表操作的语句——创建表&&基础约束&&数据类型

  1. 创建表:选择对应的数据库,字段之间用逗号隔开,comment写注释;字符类型使用varchar(大小)定义;
    在这里插入图片描述
create table user(
    id int comment 'id',
    userName varchar(20) comment '姓名',
    age int comment '年龄',
    gender varchar(4) comment '性别'
) comment '用户表';

在这里插入图片描述

  1. 约束:
    在这里插入图片描述
create table user(
    id int primary key auto_increment comment 'id',  # 主键自增
    userName varchar(20) not null unique comment '姓名',  # 唯一且非空
    age int comment '年龄',
    gender varchar(4) default '男' comment '性别'  # 默认值为'男'
) comment '用户表';
  1. 数据类型
    1)数值:float和double类型需要指定参数,第一个是长度,第二个是小数位个数
    在这里插入图片描述
    2)字符串:优先使用varchar(n);char(n)占用定长n个字符;varchar(n)最多存储n个字符,占用为实际需要存储的字符长度x<=n
    在这里插入图片描述
    3)日期:
    在这里插入图片描述
  2. 其他针对表的语句:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

三、DML数据操作语句——增、改、删

3.1添加数据Insert

  1. 语法:
    1)插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
    2)字符串和日期型数据应该包含在单引号中。
    3)插入的数据大小,应该在字段的规定范围内。
    4)批量操作用逗号隔开
  2. sql语句:全部字段添加语句,没有指定字段名的顺序,默认以建表顺序插入,不推荐这种写法!!!推荐显式声明“字段名-数值”形式的
    在这里插入图片描述
insert into user (userName,age,gender) values ('liquor',100,'男');

3.2 更新数据update

  1. 语法:
    1)如果没有条件,则会修改整张表的所有数据。
    2)更新的字段使用逗号隔开;where之前不要逗号

  2. sql语句:
    在这里插入图片描述

update user set userName='Jin',age=40 where userName='liquor';  
# 将userName为'liquor'的数据行,userName更新为'Jin',age更新为40

3.3 删除数据delete

  1. 语法:如果没有条件,则会删除整张表的所有数据。危险操作,慎重。

  2. sql语句:在这里插入图片描述

delete from user where userName='Jin';
# 将表中userName为'Jin'的数据行删掉

四、DQL数据查询语句

4.1 基础查询

  1. 语法:
    1)* 号代表查询所有字段,少用,不直观。
    2)别名设置:as ‘别名名称’
    3)去重:distinct
    在这里插入图片描述
  2. 去重查找实例:年龄去重
select distinct age from user;

在这里插入图片描述
在这里插入图片描述

  1. 别名实例:输出的列表重命名
select userName as'姓名',age as '性别' from user;

在这里插入图片描述

4.2 条件查询——where

  1. 条件查询语句:
    在这里插入图片描述

  2. 条件语句中可用的运算符:
    1)(not) between…and…:适用于数据值的范围查询
    2)in(…):如where major in(‘CS’,‘M’,‘CH’)查找在固定已知字符范围
    3)like ‘%k_’:模糊查询,%是k之前的字符串可以是任意长度,_是k之后可以有一个任意字符串(注意,中文占两个字符串长度)。
    在这里插入图片描述
    在这里插入图片描述

  3. 条件语句实例1:查找用户名称中包含r且年龄在10-30的用户姓名和年龄;
    1)数据
    在这里插入图片描述
    2)sql语句和结果
    在这里插入图片描述

4.3 聚合函数

  1. 聚合概念:将一列数据作为一个整体,进行纵向计算

  2. 语法:
    1)null值不参与所有聚合函数运算
    2)统计数量可以使用:count(*) , count(字段) ,count(常量),尽量使用第一种
    在这里插入图片描述

  3. 常见聚合函数:
    在这里插入图片描述

  4. 聚合函数实例1:统计用户年龄超过40的人数
    1)数据
    在这里插入图片描述
    2)sql语句和结果:
    在这里插入图片描述

4.4 分组查询——group by

  1. 分组语法:
    1) 执行顺序:where > 聚合函数 > having ,where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤
    2)where不能对聚合函数进行判断,而having可以
    3)分组之后,返回的查询字段一般为聚合函数结果和分组字段,查询其他字段无任何意义,会报错。如group by age时,可以返回select age from user或者select count(*) from user
    在这里插入图片描述

2.分组实例:查找组内超过2个人年龄大于30的组号,以及该组内符合条件的人数
1)数据:
在这里插入图片描述

2)sql语句和结果
在这里插入图片描述

4.5 排序查询——order by

  1. 语法:
    1)排序方式默认升序asc,可以省略,降序为desc。
    2)如果第一个字段的数值一致,第二个字段的排序才会生效,见实例1.
    在这里插入图片描述

  2. 排序实例1:按组别升序排列,如果组别相同,再按照年龄降序排列。
    1)数据:
    在这里插入图片描述
    2)sql语句和结果
    在这里插入图片描述

4.6 分页查询——limit

  1. 语法:
    1)起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数
    2)不同的数据库有不同的实现,MySQL中是LIMIT。
    3)如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。
    在这里插入图片描述
  2. 实例:查询第3页的数据,每页展示10条。起始索引=(3-1)*10=20
select * from user limit 20,10;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值