sql复习

1011-zslnb / 2023-08-16 / 原文

第一章

第二件事情:数据库了解


1.学习前提条件--会一门语言

2.为什么学习数据库?


所有的电子设备操作核心----数据


编程语言如何进行数据处理:


1)--控制台打印数据
2) --变量

3 )---数组

4 ) ---Java---集合框架--临时
5 )-文件存储--持久化


文件存储--存在问题:

安全问题

读写困难

拓展性

解决问题:好事之人-----写一个专门用于管理数据---数据库

3.数据库相关概念

4.数据库选择

大型 中型 小型

国内:

普通的公司:

mysql【免费】 sqlite 【免费】 sqlserver【出现】 【收费】

财务:

excel或者access

大公司【有钱的】:

oracle db2

我们的学习:--选择用的多的----mysql

5.mysql数据库

概念:

中型的关系型数据的管理系统,有瑞典 MysqlAB公司开发的

后来被Oralce收购的

网站的数据库服务
数据库软件分类:

官方:

单独的数据库服务软件---mysql-server

包含了提供的开发工具的数据库服务软件---mysgl-com.....
第三方集成开发工具


数据库软件下载

官方-官网

原本的官网:https://www.mysql.com/
I/
oracle官网:https://www.oracle.com/downloads/#category-database

第三方-去第三方官网

phpstudy---https://m.xp.cn/


数据库安装卸载【重点】

检查环境:

系统中是否存在安装文件

服务中是否又启动的mysql

右击计算机----管理---服务与应用---服务

注册表

win+R---输入regedit
路径

HKEY_CURRENT_USERLSoftware

HKEY_CURRENT_USER\System
HKEY_LOCAL_MACHINE\Software -



安装和使用第三方工具


phestudy---https://m.xp.cn/


宝塔--https:/ /www.bt.cn/new/index.html

XAMPP----


LAMP

EasyPHP

 

注意事项:

1)一台电脑可以同时安装多个数据库----只要端口号不同

2)使用官方的一定一定一定要卸载干净再安装


使用第三方工具:


—定要停止在运行的服务,再关闭软件

 

6.数据库进行数据的存储


登录到服务,数据库服务软件数据后台运行软件,需要使用客户端管理工具

客户端管理工具三种:


1)命令行工具
Dos或者自己提供的shell工具

2)图形化界面工具:


workbench ----mysql官方提供的

Navicate----第三方--收费的

SqlFont ------第三方--免费的

Sqlyog----第三方--收费

等等


3 )编程语言连接

分析:


数据库处理数据的服务是独立的 管理工具独立

两者如何关联交流---网络技术----ip地址+端口----账号和密码

数据库软件的目录结构:

bin目录----数据库提供的操作工具

includ--源码

share---数据库默认信息【支持的语言,默认资源脚本】


7.命令行如何操作数据库软件

配置环境变量:将数据库的工具交给操作系统

将mysql 的server的bin目录交给操作系统path

常用的命令:

命令连接登录到数据库服务软件

mysql -h lP地址-p端口号-u账号-p密码

本在本地同一台机器

mysql -u账号 -p密码

退出登录的命令:

exit quiet

查看当前的用户:

select user();


查看版本:

select version();

查看当前有的数据库:

show databases;

选择一个数据库

use 数据库名;

查看数据库中的表

show tables;

查看当前数据库:


8.图形化工具

图形化工具 数据库服务---网络通信

数据库自带的

workbench 连接 登录

navicate

 

 

 第二章

 使用window+R进行系统自带的程序

登录

​ mysql -u用户 -p密码

​ 查看所有的用户信息:

​ 所有用户:select user,host from mysql,user;

​ 当前用户:select user ();

​ 3.创建用户

​ create user 用户名@主机号【identified by 密码】;

纠错:

​ %----任意主机可以连接当前数据库服务

​ 192.168.4% ----表示是192.168.4下面所有的主机可以连接当前数据库服务

​ 4.删除

drop user 用户名@主机信息

5.退出登录

​ exit 或者quite

6.查看用户所拥有的权限

​ 1)查看自己的权限

​ show grants;

​ 新用户所拥有的的权限:usege

​ 2)管理员或者拥有查看别人权限的用户查看别人的拥有的权限

​ show grants for 用户名@主机名或者ip

​ 7.查看mysql中所有的权限

​ show privileges;

​ 8.权限关系

​ 操作的权限命名 数据库表中实际管理权限的命名

​ select select_priv

​ create user create_user_priv

​ 9.常见的权限

​ insert

​ select

​ update

​ delete

表格数据库用户结构操作

​ create创建

​ create user

​ create database

​ create table

​ create view

​ drop 删除

​ after 修改

​ show 显示

10.给新用户赋予权限【grant】

​ 语法:

​ grant 权限1,权限2....... on 数据库.表名 to 用户名@主机号或者IP地址【with grant option】

 

​ 说明:

​ 权限列表:可以同时给用户赋予多个权限。使用逗号来分割

​ 数据库名.表名: 可以指定哪些数据库或者表可以被当前用户有对应权限操作

​ 所有的数据库所有的表都可以被操作: *.*

​ 用户名@主机

​ 【with grant option】:需要被赋予权限的用户给其他用户赋权

​ 权限最初的拥有者是:root管理,管理员赋予权的时候没有指定with grant option,不允许用户给其他用户赋权,

​ 注意:mysql 数据中没权限给定不是绝对的,列如如果给了create user,同时开启after user drop

​ 一般使用数据的时候都是不适应默认用户去操作数据,都是创建新的用户按需操作

11.收回【revoke】权限的语法

​ 语法:

​ revoke 权限列表 on数据库.表名 from 用户名@主机名或者IP地址

语法:

​ 收回所有的权限和权限下发的语法

​ revoke all.grant option from 用户@主机名

​ revoke all from 用户@主机名

 

第三章

1.查看编码

​ 查看当前数据库支持的编码有哪些命令

​ show character set;

​ 查看当前mysql环境的编码

​ show variables like ‘char%';

​ 2.修改编码

​ 命令修改:

​ set 编码名字=编码值

​ 配置文件修改:

​ Windows环境

​ 安装目录【跟bin同一个目录】下有一个my.ini 配置文件 ----MySQL核心配置

​ 有的时候没有这个文件:my-medium.ini这个文件

​ --复制到安装目录,修改名字为my.ini

​ 修改:【client】【mysqld】后面添加或修改default-character-set=编码

​ Linux环境

​ 配置文件:my.cnf

3.练习

​ 创建一个新的用户 charuser

​ 给与全部权限

​ 查看当前数据库所有的编码

​ 讲client和results 编码改成utf16 client不可以 results可以

将system 编码改成gbk system不可以

​ 将server修改为utf32 server可以

查看修改结果

复原代码

第五件事情:数据库如何操作数据之后SQL语言

​ 1.问题---数据库软件

​ 客户端---操作业务--与数据库服务沟通

​ 数据库服务软件---存储和处理数据--后台掩藏运行软件

​ 通过客户端告诉数据库服务该如何操作?

​ 通过编写指令告诉数据库服务---进行相应的操作

​ 数据操作怎么处理?

​ 也可以通过命令指令--让数据库服务

学习数据库的最终目的:

​ 编程语言获取的数据方便安全的持续化存储

一门语言和一个软件之间如何沟通?

​ 编程语言来说---认识数据+语言+指令

需要数据库提供一套指令或者指令集合来操作数据

​ 数据库提供了俩门指令语言

​ ---SQL

​ ---PLSQL【中型数据库高版本+大型数据库必备】

​ 2.sql

​ structure query language 结构化查询语言

​ 结构化: 固定语言写法

​ 查询:重点获取自己想要的数据

​ 语言

​ 关系型数据库核心

关系数据库较多---每个数据库各自为战---定义基础规范

​ sql-92----

​ sql-1999--

​ sql-2003---

标准的定义---基础通用+协议规范+解析方式

每一个数据可以自己开发一些特殊用于指令

​ 3.sql包含的内容

​ SQL语言划分四大模块语言:

​ DDL【DATA Definition Language】:数据定义语言

​ 作用:用来操作用户 数据库 表,试图的数据库结构

​ create【创建】 drop【删除】 alter【修改】

 

​ DML【Dtae Manipilation language】:数据库操作语言

​ 作用:主要用户处理数据库表中的数据

​ insert 【插入】 delete【删除】 update【修改】select【查询】

注意:select 单独分类一类 DQL【Date Query Languages】

 

DCL【Date Control Languages】:数据控制语言

​ 作用:控制数据使用范围,用户权限管理

​ grant【赋予】 revoke【收回】

​ TCL【Transacton Control Languages】:事务控制语言

​ 作用:控制操作过程事务【失误】

​ commit【提交】 rollback【回滚】 savepoint【保持点】

4.学习这四门语言完成数据库业务---数据库的结构

​ 5.操作数据之存储引擎

​ 主要数据库的发动机,用户数据库与文件之间转化

因为数据库操作数据形式不同,所以与数据库定义多个存储引擎

常用:innoDB, MyisaM Memory

1)查看数据库支持的存储引擎

show engines;

2)存储引擎之--innoDB

8.0默认存储引擎为innoDB

8.0之前默认是MyisM

​ 优势:

提供了完整的事务处理,有很好的容灾能力

提供了外键支持---多表关联查询

提供自增操作 auto_increment

支持并发操作

缺点:读写数据慢,占用空间大

3)MyISaM

80.之前默认存储引擎

优点:

​ 将数据表拆分为三块:表结构,数据,索引

存储数据速度快,占用空间小

缺点:

不支持事务处理,不支持并发操作

4)Memory

内存存储处理数据----磁盘上也会有一个临时文件

优点:

速度亏啊,方便

缺点:

数据生命周期短依赖内存

 

第六件事情:数据操作有----数据库

​ 1.什么事数据库?

管理数据的最小单元 每一个数据库对应一个应用【常规应用】

2.查看数据库

​ 查看当前所有的数据库:show databases;

​ 查看当前使用的数据库:select database();

进入数据库:use 数据库名

3.创建数据

createdatabase【if not exist】数据库名;

if not exist:如果数据库不存在