MySQL 系列第一天

2023-11-18

MySQL 系列第一天

这篇文章是黑马程序员 MySQL 教程的笔记,好好学习哦。

和 MySQL 数据库的交互

  • 客户端单向连接认证:连接服务器,认证身份。

MySQL 数据库属于 C/S 架构,所以开启服务器程序后,需要通过客户端连接它。MySQL 会自带一个客户端程序,可以直接输入账号和密码即可连接。

如果你是在 Windows 系统上使用 MySQL ,那么可以通过 cmd 命令打开命令行窗口,输入以下指令,同样可以连接上 MySQL 服务器程序。首先要配置 Path 环境变量,这样就可以不用输入 mysql.exe 的完整路径,操作系统也能找到这个可执行文件。

mysql -hlocalhost -p3306 -uroot -p //此时回车,紧接着输入密码再回车,就可以连接上 MySQL 服务器了。
//其中 -h 表示 MySQL 服务器程序所在主机的地址, -p 表示应用程序所使用的端口号, -u 表示用户名, -p 表示密码
  • 客户端发送 SQL 指令 show databases; //查询所有数据库
  • 服务器端接受指令,处理指令并返回结果
  • 客户端接受结果,并显示结果。
  • 客户端断开连接,释放资源,SQL 指令为 exit

全程截图如下:
这里写图片描述

SQL 基本操作

在学习sql 指令使可以按照操作对象分为三类:数据库操作指令,数据表操作指令,数据操作指令。

  • 库操作指令

新增数据库:

create database 数据库名字 [库选项]

create database newdatabase cahrset utf8; 

执行新增操作后,MySQL 服务器程序会在它的 data 文件夹中创建一个以数据库名字命名的文件夹,文件夹内还有一个 db.opt 文件,里面保存的是库选项,内容如下:

default-character-set=utf8 //默认字符集是 utf8
default-collation=utf8_general_ci //默认校对集是 utf8_general_ci
//字符集很好理解,这里的校对集是什么呢?通常从数据库中查询数据时候,需要进行数据的比对,比如按照价格升序取出,这个校对集就是一种规定如何进行比对的规范

查询数据库:

show databases; //查询 DBMS 中所有的数据库
show databases like 'my%' //这是模糊查询的方式,如果有转义字符,不要忘了转义
show create database newdatabase; //查询创建某个数据库的 sql 语句

//此处查询后发现和自己写的 sql 语句不一样,只是因为 MySQL 在执行指令前,会先优化 sql 语句,再执行。 

更新数据库:

数据库的修改仅限于修改库选项:alter database 数据库名 charset 字符集 collate 校对集

 alter database newdatabase charset gbk
 //此指令执行后,db.opt 文件的字符集选项同时会立即更改,因为校对集依赖于字符集,所以它也会随之改变

删除数据库:

drop database newdatabase;
// 删除指令执行后,它在磁盘上的文件也会删除
  • 表操作指令

新增数据表:

create table [if not exists] 表名 (字段名字 数据类型 ,字段名字 数据类型 )[表选项] ;

create table student(
    name varchar(11),
    gender varchar(11),
    number varchar(11),
    age int
)
//数据库执行此操作后,默认会生成一个对应的表文件

查看数据表:

    show tables; //查看次数据库所有表
    show tables like 's%'; //模糊查询
    show create student; //查看表创建语句
    show columns from student //查看表结构,也就是查看表的字段名

修改数据表:

表本身可以修改,修改表名和表选项

rename table student to ne_student; //修改表名
alter table ne_student chaeset gbk; //修改表选项

项目写着就发现数据库设计的不够合理,需要更改,掌握修改字段真的很重要。
alter table ne_student add id int first;//添加 id 字段到表的第一个位置、
alter table ne_student add phone varchar(11) after age; //添加 phone 字段到 age 后面

alter table ne_student modify gender varchar(10); //修改 gender 字段的数据长度
alter table ne_student change gender sex varchar(10); //重命名 gender 为 sex

alter table ne_student drop sex; //删除 sex 字段

删除数据表

drop table student; //删除 student 单张表
drop table ne_student,ne_teacher; //删除多张表
  • 数据操作指令

插入数据:

insert into ne_student(id,name) values(1,'kk'); //这种插入操作只要字段名和值对应就可以了,并不需要全部字段都写上。

insert into ne_student values(2,'kkk','male','123'); //这种插入操作,就必须要按照表中字段的顺序,每一个字段都插入相对应的值。

查看数据:

select * from ne_student; //查看所有数据
select * from ne_student where name like 'k%'; //限制查询条件
//关于查询的操作非常多,这里只是简单展示下

更新数据:

update 表名 set 字段 = 值 [where条件];

update ne_student set id = 3 where name = 'kkk'; //将 kkk 的 id 改为 3 

删除数据:

delete form ne_student where name='kkk';//删除名字为 kkk 的这条记录
//这里之所以能够查询,是因为校对集在起作用

讲到这里,对于数据库、表、,表中字段以及数据的增删改查都已经展示完了。主要还是起到一个建立框架的作用,明确数据库中有哪些对象,针对这些对象来进行相应操作。

库选项的相关介绍

学习编程时,通常会遇到中文乱码问题。其实总结下来,就是因为编码和解码采用不同的字符集,产生了乱码。MySQL 数据库自然不能免俗啊。

通过show charsets; 可以查看 MySQL 支持的所有字符集,它默认采用的是 utf-8 编码,只要同一字符集就不会出现乱码问题。

通过show collation; 可以查看 MySQL 支持的所有校对集,有 129 种,不要惊讶,这是因为校对集是依赖于字符集的,每种字符集都有几种校对集。

校对集有三种格式:

_bin: binary 二进制比较, 取出二进制位,一位一位的比较, 区分大小写。例如,数据库会认为 aaa 不等于 Aaa;

_cs: case sensitive 大小写敏感, 区分大小写。例如,数据库会认为 aaa 不等于 Aaa;

_ci: case insensitice 大小写不敏感,不区分大小写。例如,数据库会认为 aaa 等于 Aaa;

所以,我们要根据实际情况,选择对应的校对集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 系列第一天 的相关文章

随机推荐

  • C - 滑动窗口 /【模板】单调队列

    Description 有一个长为 n 的序列 a 以及一个大小为 k 的窗口 现在这个从左边开始向右滑动 每次滑动一个单位 求出每次滑动后窗口中的最大值和最小值 例如 The array is 1 3 1 3 5 3 6 7 and k
  • .whl is not a supported wheel on this platform的原因及其解决办法

    在PIP安装 whl文件的时候碰到这个错误 具体如下 我的python版本是3 4 4 这个错误的原因如下 可能的原因1 安装的不是对应python版本的库 下载的库名中cp27代表python2 7 其它同理 可能的原因2 下载的是对应版
  • IDEA写SQL语句时不会提示表名、列名的处理方法(实测有效)

    打出表名没有提示 下面进行设置 按照别人的设置没效果 打开设置 还是刚才的路径 要同时设置两个地方才有效
  • 《Netty实战》读书笔记

    第一章 Netty 异步和事件驱动 Netty包含网络编程 多线程处理和并发 NIO NIO 代表非阻塞 I O Non blocking I O Netty 的核心组件 Netty 的主要构件 Channel 回调 Future 事件和
  • SSM商城项目实战总结

    SSM商城项目实战总结 编程思想是指在软件开发过程中 程序员所遵循的一种思维模式或方法论 它是指导程序员如何组织和解决问题的一种思考方式 下面是对常见的编程思想进行的总结 面向对象编程 OOP 面向对象编程是一种将数据和操作数据的方法组合在
  • ADS使用J-LINK调试之配置方法

    ADS使用J LINK调试之配置方法 1 安装好ADS1 2及J LINK驱动文件 2 ADS配置 随便打开项目 进入AXD调试界面 在AXD中 选择 3 进入以下界面 选择 Add 进入J LINK安装目录下 添加 JLinkRDI dl
  • ubuntu终止terminal中下载任务以及继续下载

    ctrl c是终止正在下载的任务 wget c URL是继续刚才终止的那个任务
  • 22 年国内最牛的 Java 面试八股文合集(全彩版),不接受反驳

    很多小伙伴从四月份就开始准备面试了 截止现在已经过去 2 个多月的时间 显然这段时间的准备没有白费 很多小伙伴都报喜 成功拿到了 XX 公司的 Offer 下面我把这段时间给小伙伴本准备的 Java 面试八股文合集 全彩版 拿出来 来帮助没
  • Python 字符串拼接 ‘+=‘ 和 ‘join()‘ 谁的速度更快?

    一 字符串拼接的两种方法 程序当中经常出现需要不断接收新字符串并将这些字符串组成新字符串输出的情况 该方法一般有两种解决方案 创建一个空字符串 test str 将每次新传入的 new str 使用 test str new str 的方式
  • 面试题 02.07. 链表相交

    给你两个单链表的头节点 headA 和 headB 请你找出并返回两个单链表相交的起始节点 如果两个链表没有交点 返回 null 图示两个链表在节点 c1 开始相交 来源 力扣 LeetCode 链接 https leetcode cn p
  • Linux内核中PF_KEY协议族的实现(4)

    本文档的Copyleft归yfydz所有 使用GPL发布 可以自由拷贝 转载 转载时请保持文档的完整性 严禁用于任何商业用途 msn yfydz no1 hotmail com 来源 http yfydz cublog cn 6 通知回调处
  • Android高级工程师普遍进阶难题:遇到瓶颈我们该如何去提升自己?哪个方向

    不要抱怨 抱怨无济于事 只能带来负能量 最重要的是改变 7 坚持写博客和技术文章 多总结 多参与开源项目 8 选择一家好的有发展前途的公司陪其成长 当发现现在公司不能满足自己的成长和发展时 果断跳槽 因为人生毕竟最宝贵的是时间 特别是程序员
  • 《图解算法》总结

    最近快速阅读了 图解算法 这本算法的入门书 对其中的一些知识点做了总结 使用递归函数需要确定基线条件和递归条件 调用栈 在调用一个函数的时候 当前函数暂停并处于未完成状态 分而治之 D C算法 找出基线条件 然后不断将问题分解 直到符合基线
  • [springboot+thymeleaf ] 前台js读取后台传值

    后台代码 通过ModelAndView类型返回 RequestMapping value list method RequestMethod GET public ModelAndView list RequestParam value p
  • Windows 任务管理器 PF使用率 总数 核心内存 物理内存(转)

    1 CPU 使用 CPU的使用百分比 柱状图表示实时的CPU使用率 2 CPU 使用记录 CPU使用量随时间的变化曲线 其中红线则表示系统内核的使用率 红线需点击任务管理器的查看菜单 选中 显示内核时间 项 3 PF 使用 PF是页面文件
  • 550 Mailbox unavailable or access denied

    今天还处理了另外一个问题就是用户发往vip qq com 没有发送成功 还被退信
  • python中summary_看懂python3 之statsmodels包summary的参数解释

    放上代码例子 coding utf 8 import pandas as pd import matplotlib pyplot as plt import matplotlib import numpy as np import time
  • 信息安全中常用术语介绍

    转自 https www hi linux com posts 56503 html 我们在一些重大的安全事件发生后 经常会在相关新闻或文档中看到一些相关的安全术语 比如 VUL CVE Exp PoC 等 今天我们就来对这些常用术语的具体
  • 利用ajax获取服务器时间,并显示

    p p
  • MySQL 系列第一天

    MySQL 系列第一天 这篇文章是黑马程序员 MySQL 教程的笔记 好好学习哦 和 MySQL 数据库的交互 客户端单向连接认证 连接服务器 认证身份 MySQL 数据库属于 C S 架构 所以开启服务器程序后 需要通过客户端连接它 My