目录
python day33
一 数据库概述
什么是数据
描述事物的符号记录称之为数据
什么是数据库(DataBase,简称DB)
数据库即存放数据的仓库,它是在计算机存储设备上的数据仓库,并且数据是按一定的格式存放
数据库中的数据按一定的数据模型组织,描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可被其他用户共享
数据库管理系统(DataBase Management System 简称DBMS)
数据库管理系统更好地组织和存储了数据,并可以高效获取和维护数据
常用的:MySQL,Oracle,SQLite,SQLServer等
二 数据库内部成员关系
记录:1 Simple 88888(多个字段的信息组成一条记录,即文件中的一行内容)
表:student,school,class(即文件)
数据库:oldboy_stu(即文件夹)
数据库管理系统:如mysql(是一个软件)
数据库服务器:一台计算机(对内存要求较高)
小结:
数据库服务器:运行数据库管理软件
数据库管理软件:管理数据库
数据库:即文件夹,用来组织文件/表
表:即文件,用来存放多行内容/多条记录
三 MySql介绍
什么是mysql
MySQL是一个关系型数据库管理系统
它是一个基于socket编写的C/S架构软件
数据库软件分类
关系型数据库(需要有表结构)
MySql
Oracle
SQLite
SQLServer
非关系型数据库(是key:value形式存储,没有表结构)
Mongodb
Redis
四 下载安装
从官网下载MySQl Community Server
https://www.mysql.com/downloads/mysql
添加环境变量
在cmd窗口初始化
mysql --initialize-insecure
启动MySQL服务器
mysqld
启动MySQL客户端并连接MySQL服务
mysql -uroot -p
制作MySQL的windows服务,在终端执行命令
'绝对路径'--install
启动MySQL服务
net start mysql
关闭MySQL服务
net stop mysql
五 MySQL软件基本管理
登录设置密码
初始状态下,管理员root,密码为空,默认只允许从本机登录localhost 设置密码 [root@egon ~]# mysqladmin -uroot password "123" 设置初始密码 由于原密码为空,因此-p可以不用 [root@egon ~]# mysqladmin -uroot -p"123" password "456" 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码 命令格式: [root@egon ~]# mysql -h172.31.0.2 -uroot -p456 [root@egon ~]# mysql -uroot -p [root@egon ~]# mysql 以root用户登录本机,密码为空
忘记密码
[root@egon ~]# vim /etc/my.cnf #mysql主配置文件 [mysqld] skip-grant-table [root@egon ~]# systemctl restart mariadb [root@egon ~]# mysql MariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost"; MariaDB [(none)]> flush privileges; MariaDB [(none)]> \q [root@egon ~]# #打开/etc/my.cnf去掉skip-grant-table,然后重启 [root@egon ~]# systemctl restart mariadb [root@egon ~]# mysql -u root -p123 #以新密码登录 方法二:启动时,跳过授权库
SQl语句
#1. 操作文件夹 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 删除: drop database db1; #2. 操作文件 先切换到文件夹下:use db1 增:create table t1(id int,name char); 查:show tables 改:alter table t1 modify name char(3); alter table t1 change name name1 char(2); 删:drop table t1; #3. 操作文件中的内容/记录 增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); 查:select * from t1; 改:update t1 set name='sb' where id=2; 删:delete from t1 where id=1; 清空表: delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。 truncate table t1;数据量大,删除速度比上一条快,且直接从零开始, auto_increment 表示:自增 primary key 表示:约束(不能重复且不能为空);加速查找