zoukankan      html  css  js  c++  java
  • 第一阶段:Python开发基础 day41 数据库基础知识

    数据库

    """
    1、什么是数据库:管理数据的系统 - 安装某种管理数据的系统 - 管理的对象本质是文件
    2、存储数据的位置:内存、硬盘
    3、什么是系统:运行在硬件基础上,管理其他软件
    """
    
    # 数据库的组成
    """
    库:存放多张表 - 文件夹
    表:包含多条相同结构的记录 - 文件
    记录:包含多个key-value键值对的一条数据 - 二进制数据
    字段:描述信息 - 信息本身 == key-value - 二进制数据
    
    stu
    id	name	age		gender
    1	Bob 	18 		男
    2	Tom 	17 		女
    ...
    
    teacher
    ...
    
    """
    

    数据库的分类

    # 1)关系与非关系
    # 	关系:数据库中表与表之间有联系 - mysql
    #	非关系:没有表概念 - redis、mongodb(介于关系与非关系)
    
    # 2)内存与硬盘
    # 	硬盘:数据可以永久存储 - mysql、mongodb
    #	内存:数据的存取效率极高 - redis、memcache
    
    # 3)sql与nosql
    #	sql:数据库操作通过sql语句
    #	nosql:数据库操作就是key-value形式(value就是一条记录)
    #			stu - {'name': 'Bob', 'age': 18}
    #			stus - [{'name': 'Bob', 'age': 18}, {'name': 'Tom', 'age': 18}]
    #			name - 'Jerry'
    

    卸载

    """
    前提)启动终端,输入 mysql,如果不是提示 不是内部或外部命令,代表已安装数据库
    
    1)直接连入
    	i 搜索:服务,检索mysql服务,有
    		停止服务,并移除服务 - 启动管理员终端:mysqld --remove
    			
    	ii 搜索:服务,检索mysql服务,无 (mysql使用命令启动)
    		停止服务,启动管理员终端
    			tasklist | findstr mysql
    			taskkill /pid 进程pid /f
    	
    2)连接超时
    	搜索:服务,检索mysql服务,移除服务即可
    	
    3)移除环境变量
    
    总结:如果能连入,先停止服务 | 如果添加了服务,就移除服务 | 取消环境变量配置
    """
    

    安装

    """
    1、解压免安装版本(5.6 - 没有初始密码)
    2、配置环境变量:数据库绝对路径下的bin
    3、配置服务:
    	启动管理员终端:mysqld --install [nmysql]
    """
    

    连接数据库

    1)游客登陆(不一定能登入,登入了也啥都不能干)
    >: mysql
    
    2)账号密码登录
    >: mysql -u root -p
    再输入密码,没有任何提示,没有密码直接回车
    
    3)连接指定服务器的mysql
    >: mysql -h ip地址 -P 端口号 -u 账号 -p
    回车后敲入密码
    eg:
    >: mysql -hlocalhost -P3306 -uroot -p
    
    4)退出数据库
    >: quit
    >: exit
    

    用户信息查看

    1)查看当前登录的用户
    mysql>: select user();
    
    2)root权限下可以查看所有用户信息
    mysql>: select * from mysql.user;
    mysql>: select * from mysql.user G
    mysql>: select user,password,host from mysql.user;
    
    3)root登录下,删除游客(操作后要重启mysql服务)
    mysql>: delete from mysql.user where user='';
    
    4)root登录下,修改密码(操作后要重启mysql服务)
    mysql>: update mysql.user set password=password('12345678') where host='localhost';
    
    5)没有登录
    >: mysqladmin -u用户名 -p旧密码 -h域名 password "新密码"
    eg>: mysqladmin -uroot -p12345678 -hlocalhost password "root"
    
    6)root登录下,创建用户
    mysql>:grant 权限们 on 数据库名.表名 to 用户名@主机名 identified by '密码';
    

    数据库的基本操作

    1)查看已有数据库
    mysql>:show databases;
    
    2)选择某个数据库
    mysql>:use 数据库名
    
    3)查看当前所在数据库
    mysql>:select database();
    
    4)创建数据库
    mysql>:create database 数据库名 [charset=编码格式];
    eg>: create database owen;
    eg>: create database zero charset=utf8;
    eg>: create database tank;
    
    5)查看创建数据库的详细内容
    mysql>:show create database 数据库名;
    eg>: show create database owen;
    
    6)删除数据库
    mysql>: drop database 数据库名;
    eg>: drop database tank;
    

    表的基本操作

    前提:先选取要操作的数据库
    
    1)查看已有表
    mysql>:show tables;
    
    2)创建表
    mysql>:create table 表名(字段们);
    eg>: create table student(name varchar(16), age int);
    eg>: create table teacher(name varchar(16), age int);
    
    3)查看创建表的sql
    mysql>:show create table 表名;
    eg>: show create table student;
    
    
    4)查看创建表的结构
    mysql>:desc 表名;
    
    5)删除表
    mysql>: drop table 表名;
    eg>: drop table teacher;
    

    记录的基本操作

    1)查看某个数据库中的某个表的所有记录,如果在对应数据库中,可以直接查找表
    mysql>: select * from [数据库名.]表名;
    注:*代表查询所有字段
    
    2)给表的所有字段插入数据
    mysql>: insert [into] [数据库名.]表名 values (值1,...,值n);
    eg:如果给有name和age两个字段的student表插入数据
    1条>:insert into student values ('Bob', 18);
    多条>:insert into student values ('张三', 18), ('李四', 20);
    指定库>:insert owen.student values ('张三', 18), ('李四', 20);
    
    3)根据条件修改指定内容
    mysql>: update [数据库名.]表名 set 字段1=新值1, 字段n=新值n where 字段=旧值;
    eg:> update student set name='王五', age='100' where name='张三';
    注:i) 可以只修改部分字段 ii) 没有条件下,所有记录都会被更新
    eg:> update student set name='呵呵';
    
    4)根据条件删除记录
    mysql>: delete from [数据库名.]表名 where 条件;
    eg:> delete from student where age<30;
    
  • 相关阅读:
    【2018.05.05 C与C++基础】C++中的自动废料收集:概念与问题引入
    【2018.04.27 C与C++基础】关于switch-case及if-else的效率问题
    【2018.04.19 ROS机器人操作系统】机器人控制:运动规划、路径规划及轨迹规划简介之一
    March 11th, 2018 Week 11th Sunday
    March 10th, 2018 Week 10th Saturday
    March 09th, 2018 Week 10th Friday
    March 08th, 2018 Week 10th Thursday
    March 07th, 2018 Week 10th Wednesday
    ubantu之Git使用
    AMS分析 -- 启动过程
  • 原文地址:https://www.cnblogs.com/foreversun92/p/11568372.html
Copyright © 2011-2022 走看看