当前位置: 首页 > 编程日记 > 正文

day1-数据库基础

数据库基本概念

数据库是什么

数据库是用来存储数据的仓库,本质上就是一套基于CS架构的服务端和客户端程序,最终将数据存储在服务器端的磁盘中。之前学过的数据存储方式有:

  1. 列表 字典......等等,是在内存中的数据,缺点是断电丢失,优点是速度快
  2. 文件存储,如json,txt......等等,优点是可以实现永久保存,缺点是速度慢

为什么要使用数据库

1.提高速度

2.通过网络来访问不同机器上的数据:我们的程序将来可能会分布在不同的机器上,而每台机器性能肯定有上限,如果一台机器不能够满足,就需要用多个机器来共同完成任务。

  • 分布式:每个服务器提供不同的服务,有时候某个业务流程可能会涉及到多个服务器。所以通信繁琐,容灾性也没有集群好,但耦合度低,易维护
  • 集群:所有服务器提供的服务是一模一样的,容灾性强,易扩展,可插拔

3.管理用户权限

4.多个客户端并发访问,保证数据安全

数据库的分类

关系型数据库 :数据之间可以存在关联关系,数据库会帮我们维护这种关系。通常把磁盘作为存储介质。常用的关系型数据库有:

  • MySQL:目前最流行的关系型数据库,免费开源
  • SQLserver:微软推出,只能运行在windows平台下
  • oracle:最强大的关系型数据库,主要在集群和用户管理比较突出,收费
  • db2:IBM的产品,主要面向企业级用户

非关系型数据库:不能帮我们维护数据之间的关系,通常把内存作为存储介质。常用的非关系型数据库有:MongoDB、Redis、memcahe

数据库重要概念

数据(Column):文件中的某个字符串

记录(Row):文件中的某一行

表(Table):某个文件

库(DataBase):就是一个文件夹

DBMS:数据库管理系统(指的就是数据库软件)

数据库服务器:运行DBMS的计算机

MySQL使用前奏

在安装好Mysql后,有bin文件用来存储所有执行文件,bin文件中的mysqld.exe是服务端程序,mysql.exe是客户端程序。需要先运行mysqld.exe。data文件是用来存数据的地方

运行客户端时,如果是直接双击进入为游客模式;正确的运行方式是在终端里输入命令指定用户名和参数,如:mysql -h127.0.0.1 -P3306 -uroot -p123

  • -h:要连接的服务端主机名称,如果是本机可以忽略
  • -P:指定的端口,Mysql默认端口号为3306,可以不写
  • -u:指定用户名
  • -p:指定密码(一般不指定密码,因为此时显示的密码是明文。通常直接-p后回车再输入密码)

以管理员身份运行终端

  • mysqld --install # 注册系统服务,注册后可设置为自动启动,下次就不用自己开启服务端
  • sc delete mysql # 删除服务
  • net start mysql # 启动服务
  • net stop mysql # 停止服务
  • tasklist | findstr mysqld # 查看进程
  • taskkill -f /pid 18536 # 关闭指定的进程

mysql 5.6 管理员密码的设置

知道密码时:

​ 1.登录到mysql执行更新语句来修改

  • 进入mysql -> use mysql -> update user set password = password("123") where host = "localhost" and user = "root" -> flush privileges;或者重启mysqld(注123位你设置的密码)

​ 2.使用mysqladmin小工具修改

  • mysqladmin -uroot -p123 password 321(注123为原来的密码,321设置你的新密码)

不知道密码时通过跳过授权表来修改:

  • 以管理员身份运行终端 -> net stop mysql -> mysqld --skip-grant-tables(跳过授权表开启服务端) -> 以普通身份运行终端 -> mysql -uroot -p 直接回车不输入密码 -> use mysql -> update user set password = password("123") where host = "localhost" and user = "root"; -> 重新正常启动服务端

简单的使用

数据必须找个文件存起来也就是表,表必须存在库中也就是文件夹中

库的操作

# 切换数据库
use 数据库名称# 查看所有数据库
show databases;
show create database 数据库名;  # 查看单个数据库的详细信息
select database();  # 查看当前库# 创建数据库
create database 数据库名称;
create database 数据库名称 charset utf8;  # 创建数据库时指定字符编码,不能写utf-8# 删除数据库
drop database 数据库名称;# 修改数据库编码,可以进入到数据库文件夹修改db.opt。db.opt的第一行是编码,第二行是校对规则
alter database 数据库名 charset utf8;  # 修改数据库的字符编码# 修改数据库名,可以直接修改对应的文件夹名称

表的操作

# 创建表
create table 表名称(列名称 列的数据类型, 列名称2 列的数据类型...);
# 创建表时指定编码
Create table 表名称(列名称 列的数据类型, 列名称2 列的数据类型...)charset gbk;# 查看当前库下所有表
show tables;
# 查看表结构
desc 表名称;
# 查看表的创建语句
show create table 表名称;# 删除表
drop table 表名称;
# 清空表
truncate table 表名称;# 修改表结构
# 添加字段
alter table 表名称 add 列名称 数据类型;
# 删除字段
alter table 表名称 drop 列名称;
# 修改数据类型
alter table 表名称 modify 列名称 新的数据类型;
# 修改列名
alter table 表名称 change 旧的列名 新的列名 新的类型;# 修改表的名称
rename table 旧名称 to 新名称;# 修改编码
alter table 表名称 charset utf8;

转载于:https://www.cnblogs.com/863652104kai/p/11167432.html

相关文章:

双重指针作为函数参数的妙用

双重指针作为函数参数&#xff0c;可以在函数函数内部修改外部指针的值。主要用法包括&#xff1a; 1. 在函数内部分配内存&#xff0c;作为函数参数返回&#xff1b; 2. 在函数内部设置指针为空&#xff1b; #include <stdio.h> #include <stdlib.h> #include …

什么是常函数?

类的成员函数后面加 const&#xff0c;表明这个函数不会对这个类对象的数据成员&#xff08;准确地说是非静态数据成员&#xff09;作任何改变。 在设计类的时候&#xff0c;一个原则就是对于不改变数据成员的成员函数都要在后面加 const&#xff0c;而对于改变数据成员的成…

matlab整型和浮点的区别,技术帖 | 心理学MATLAB初学者教程--简单数据类型介绍(逻辑型数据,整型/浮点型数据,字符型)......

1.2.1 什么是变量和变量名变量这个词似乎在许多地方都有出现&#xff0c;在计算机中变量是指是一段有名字的连续存储空间(摘自百度百科)&#xff0c;而这个所谓的名字就叫做变量名。举个例子说现在我们再MATLAB的命令窗口中输入&#xff1a;A 1 然后按回车&#xff0c;我们会看…

为窗口添加滚动条事件

为窗口添加滚动条事件其实非常的简单&#xff0c; window.οnscrοllfunction(){};注意在获取滚动条距离的时候谷歌不识别document.documentElement.scrollTop&#xff0c;必须要加上document.body.scrollTop&#xff1b;即var scrolltopdocument.documentElement.scrollTop||d…

当远程桌面到Windows终端服务器,出现终端服务器超出了最大允许连接数,怎么办...

如果是老版本的MSTSC则使用 MSTSC /console /v:ip如果是新版本 MSTSC /admin /v:ip转载于:https://www.cnblogs.com/SharkXu/archive/2012/10/08/MSTSC.html

连续地址数据(数组或者malloc的内存)作为函数参数

在编程时&#xff0c;一簇连续的内存单元&#xff0c;比如数组或者malloc的内存块,如下的数组a 或者指针p. int a[4]; int *p malloc(4 * sizeof(int)); 我们要想修改上述连续的内存块&#xff0c;可以写一个函数(一维指针做参数传入起始地址即可&#xff09;来搞定。 If …

Linux 文件系统及 ext2 文件系统

linux 支持的文件系统类型 Ext2:有点像 UNIX 文件系统。有 blocks,inodes,directories 的概念。Ext3:Ext2 的加强版&#xff0c;添加了日志的功能。支持 POSIX ACL(Access control Lists,访问控制列表) 。Isofs(iso9660):CDROM 文件系统。Sysfs:基于 ram 的文件系统&#xff0c…

php每分钟刷新一次的验证码,php如何在进入页面的时候自动刷新一次验证码

页面直接进入login页面的时候无法获取到$_SESSION["auth"]值&#xff0c;只能刷新一次验证码才能获取到值&#xff0c;怎么才能在用户访问的时候自动刷新一次验证码&#xff0c;求大神支招。。。验证码回复讨论(解决方案)哪里获取到$_SESSION["auth"]值&am…

vs2010快捷方式

【窗口快捷键】 CtrlW,W: 浏览器窗口 CtrlW,S: 解决方案管理器 CtrlW,C: 类视图 CtrlW,E: 错误列表 CtrlW,O: 输出视图 trlW,P: 属性窗口 CtrlW,T: 任务列表 CtrlW,X: 工具箱 CtrlW,B: 书签窗口 CtrlW,U: 文档大纲 CtrlD,B: 断点窗口 CtrlD,I: 即时窗口 CtrlTab: 活…

移动端rem屏幕设置

//修改页面title var pageTitledocument.getElementsByTagName("title")[0].innerHTML; if(location.href.indexOf("index.html")>-1 || location.href.indexOf("html")-1){document.getElementsByTagName("title")[0].innerHTML&q…

二维指针操作链表

背景 Linus slashdot: https://meta.slashdot.org/story/12/10/11/0030249 Linus大婶在slashdot上回答一些编程爱好者的提问&#xff0c;其中一个人问他什么样的代码是他所喜好的&#xff0c;大婶表述了自己一些观点之后&#xff0c;举了一个指针的例子&#xff0c;解释了…

php多选框怎么传值,tp3.2如何处理多选框传参和判断状态

创建多选框&#xff1a;(1)普通的多选&#xff1a;123(2)在数据库中遍历出来的多选框,value和data-id都要赋值(大家都懂&#xff0c;我就不说啦)&#xff1a;{$vo.title} 2.我是用jq做的异步,我是使用英文“&#xff0c;”分割字段存储的。我们的前端是自己封装过的,大家根据自…

UIWebView和UIActivityIndicatorView的结合使用

环境&#xff1a;Xcode6.1 UIWebView是iOS开发中常用的一个控件&#xff0c;是内置的浏览器控件&#xff0c;我们可以用它来浏览网页&#xff0c;加载文档等。这篇文件将结合UIActivityIndicatorView控件制作一个小实例(加载apple的官网)。效果如下&#xff1a; 一.建立一个Sin…

Python对象类型——字符串、列表、元组

字符串Python连接多个字符串可用“”号&#xff0c;但这个操作不如把所有子字符串放到一个列表或可迭代对象中&#xff0c;然后调用一个join方法来把所有内容连接在一起节约内存。原始字符串操作符&#xff08;R/r&#xff09;&#xff1a;相当于取消“\”转义&#xff0c;在使…

leetcode--1:(python)Two Sum

2019.5.25: #1 Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: 我的解法&#xff1…

memset初始化内存

在suse 9,运行man memset 查看memset的解释如下&#xff1a; “NAME memset - fill memory with a constant byte SYNOPSIS #include <string.h> void *memset(void *s, int c, size_t n); DESCRIPTION The memset() function fills the fir…

php 数字变量,php入门变量之数字_PHP教程

在介绍变量时&#xff0c;我明确指出PHP具有整型和浮点型(小数)数字类型。但是&#xff0c;依据我的经验&#xff0c;这两种类型都可以归类到一般的数字之下(在极大程度上是这样的)。下面列举下PHP中有效的数字类型的变量&#xff1a;83.1410980843985-4.23985084.4e2注意&…

BZOJ 1597: [Usaco2008 Mar]土地购买( dp + 斜率优化 )

既然每块都要买, 那么一块土地被另一块包含就可以不考虑. 先按长排序, 去掉不考虑的土地, 剩下的土地长x递增, 宽y递减dp(v) min{ dp(p)xv*yp1 }假设dp(v)由i转移比由j转移优(i>j), 那么dp(i)xv*yi1 < dp(j)xv*yj1化简得 (dp(i) - dp(j))/(yi1-yj1) > -xv然后就斜率优…

雨季来临 对车辆涉水说“NO”

七月的上海开始进入暴雨频发的季节。在城市排水系统受到考验的同时&#xff0c;车主们的车辆也同样经受着雨水的考验。而每年都会有相当一部分车辆因为“水害”&#xff0c;使车辆自身的价值受到很大的影响。为此开新通过以下案例为大家做个分析。并推荐几个实用的技巧以备不时…

C#编写dll进行sql server数据库扩展储存过程

一、编写C#函数文件 1、新建一个类库文件 备注&#xff1a;sqlserver 2008只能用.net3.5版本。 2、如有想加入强命名的话可如下步骤&#xff1a; 参考博文&#xff1a;https://blog.csdn.net/donnie88888888/article/details/52743064 1、运行在“开始菜单”-“程序”-“Micros…

malloc(0)-malloc 0 字节

C17中有如下描述&#xff1a; 7.22.3 Memory management functions 1 The order and contiguity of storage allocated by successive calls to the aligned_alloc, calloc, malloc, and realloc functions is unspecified. The pointer returned if the allocation succeeds …

php常见排序算去,PHP兑现常见排序算法

PHP实现常见排序算法//插入排序(一维数组)function insert_sort($arr){$count count($arr);for($i1; $i$tmp $arr[$i];$j $i - 1;while($arr[$j] > $tmp){$arr[$j1] $arr[$j];$arr[$j] $tmp;$j--;}}return $arr;}//选择排序(一维数组)function select_sort($arr){$coun…

C#中 int.TryParse 的用法

int i -1;bool b int.TryParse(null, out i);执行完毕后&#xff0c;b等于false&#xff0c;i等于0&#xff0c;而不是等于-1&#xff0c;切记。 int i -1;bool b int.TryParse("123", out i); 执行完毕后&#xff0c;b等于true&#xff0c;i等于123&#xff1b;…

2022-2028年中国综艺节目市场深度调研及投资前景预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国综艺节目行业市场行业相关概述、中国综艺节目行业市场行业运行环境、分析了中国综艺节目行…

cocos2d-js 自定义事件监听派发

熟悉js的dom事件或者flash事件的&#xff0c;基本都能立马明白cc.eventManager的用法。 cc.eventManager有两种注册监听器的方式&#xff0c;一种是原生事件&#xff0c;例如 cc.eventManager.addListener({ event: cc.EventListener.KEYBOARD, onKeyReleased: function(keyCod…

URL编码转义,冒号和/不转,否则导致http链接失效

URL含有中文需要转义 参考 https://blog.csdn.net/benbenxiongyuan/article/details/10608095 自己写一个 1 public boolean checkURLFileIsExist(String stringURL){2 boolean isExist false;3 String sEncodeURL;4 5 try{6 // URL内中文…

C面向对象之透明指针的运用

不透明指针(opaque pointer)可以用来在C中实现封装。 什么是不透明指针(opaque pointer) 从字面意思来看&#xff0c;“不透明”意味着看不到内部&#xff0c;因此“不透明指针”即看不到内部定义的指针。这样说有些抽象&#xff0c;我们来看个例子&#xff1a; #include &l…

支付宝 php rsa算法,:PHP支付宝接口RSA验证

这两天一直困扰的PHP RSA签名验证问题终于解决了&#xff0c;由于之前RSA接触的不多&#xff0c;再加上官方至今还未有PHP的SDK可供参考&#xff0c;因此走了一些弯路&#xff0c;写在这里和大家分享。虽然支付宝官方还未提供相关SDK&#xff0c;PHP确实可以实现RSA方式的签名&…

int与string转换

参考&#xff1a; http://greatverve.cnblogs.com/archive/2012/10/24/cpp-int-string.html 转载于:https://www.cnblogs.com/predator-wang/p/4789775.html

更改Jenkins升级站点

更新地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 【图示】&#xff1a;