• 初识mysql


    数据库

    """
    1.什么是数据库:
    	就是管理数据的系统,本质上是一种安装的管理系统,该系统用来管理的那些数据其实就是管理文件。
    
    2.存储数据的位置:
    	可以在内存或者硬盘中进行存储
    
    3.什么是系统:
    	运行在硬件基础上,用来管理其他软件的软件,比如操作系统就是一个非常大的系统
    """
    
    
    # 数据库的组成
    
    '''
    库:存放多张表(其实就是一个文件夹,比如教学管理库,里面有学生表,课程表,教师表)
    
    
    表:包含有多条相同结构的记录(比如学生表,包含id = 1,2,3,4,5,6....等等多条记录.)
    
    
    记录:包含有多个key-value键值对的一条二进制数据(例如:id为1的记录:(‘name’ = ‘Bob’, 'age' = 18, 'gender' = '男'))
    
    
    字段:由key-value组成的本质上是二进制的信息(例如:name = 'Bob' 是一个字段, age = 18也是一个字段)
    '''
    

    数据库的分类

    '''
    1)关系与非关系
    	
        关系:数据库表与表之间有联系 -Mysql,Sqlserver,Oracle
        
        非关系:没有表的概念,是用key-value存储的 -Redis、mongodb(介于关系与非关系之间)
        
        
    2)内存与硬盘
    
    	硬盘:数据可以永久存储  -mysql、mongodb
        
        内存:数据的存取效率极高  -redis、memcache
        
        
    3)sql与nosql
    	
        sql:数据库操作通过sql语句。(其实就是关系型数据库)
        
        nosql(not only sql),泛指非关系型的数据库,数据库的操作就是key-value形式(value就是一条记录)
        
        stu --- {'name': 'Bob', 'age': 18}
        stus --- [{'name': 'Bob', 'age': 18}, {'name': 'Alice', 'age': 27}]
        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 -h ip地址  -P 端口号  -u 账号   -p
    回车后敲密码
    
    
    4)退出数据库
    exit
    quit
    
    

    用户信息查看

    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;
    

    数据库习题

    '''
    
    
    1.详细解释下列mysql执行语句的每个参数与参数值的含义
    
    
    
    mysql -hlocalhost -P3306 -uroot -proot
    
    这句话的意思是远程连接指定的服务器:
    	首先第一个参数mysql就是固定写法	
    	
    	第二个语句-hlocalhost拆开来看就是,-h后面跟的是数据库
    	的ip地址,
    	
    	第三个语句-P3306拆开来看就是,-P后面跟的是数据库的端口
    	号	
    	
    	第四个语句-uroot拆开来看就是,-u后面跟的是数据库的账号
    	
    	第五个语句-proot拆开来看就是,-p后面跟的是数据库的密码
    	
    所以上面远程连接指定数据库的命令就是:
    
    	mysql -h+ip地址 -P+端口号 -u+账号 -p+密码
    	
    	
    	
    	
    	
    2.创建以下数据库:
    
    db1---采用默认编码:
    	create database db1;
    
    db2---采用gbk编码:
    	create database db2 charset='gbk';
    
    db3---采用utf8编码:
    	create database db3 charset='utf8';
    
    将bd2数据库编码修改为utf8编码格式:
    	alter database db2 charset="utf8";
    删除db3数据库:
    	drop database db3;
    	
    	
    	
    	
    3.创建表操作:
    	-- 在db1数据库内,为其添加一个t1表,表有两个字段(id int, name char)	
    	
    	create table t1(id int, name char);	
    		
    
    
    	-- 在db2数据库内,为其添加一个t2表,表有三个字段(name char, age int, phone int)
    	
    	create table t2(name char, age int, phone int);
    	
    	
    
    	-- 思考完成:在db2数据库内,为db1添加表tt1,字段可以自由定义
    	
    	create table db1.tt1(name char, age int, sex char);
    	
    
    	-- 修改db1库t1表的name字段char类型长度为20,db2库t2表的age字段int类型长度为3
    	
    	alter table db1.t1 change name name char(20);
    	
    	alter table db2.t2 change name name int(3);
    	
    
    
    	-- 删除思考题(数据库db1)中的tt1表
    	
        drop table db1.tt1;
    	
    
    
    	-- 使用三种查询表的方式
    	
        show tables;(查看所有的表)
        
        show create table t1;(查看指定表的详细信息)
        
        desc t1;(以表格的形式展示t1的详细信息)
      
    
    4.记录操作
    
    	-- 一次插入三条数据,为t1插入三条数据
    	
    	insert into table t1(name, age, sex) values('michael', 18, 'male');
    	
    	
    	-- 一次插入一条数据,分二次为t1表插入两条数据
    	
    	insert into table t1(name) values('jackson');
    	
    	insert into table t1(age) values(18);
    	
    	
    
    	-- 分别查询显示t1,t2表下的所有数据
    	
    	select * from t1;
    	
    	select * from t2;
    	
    
    
    	-- t1表下根据id条件更改name名字
    	
    	update t1 set name='michael' where id = 1;
    	
    
    	-- t2表下根据name删除一条数据
    	
    	delete from t2 where name='nick';
        
    	
    '''
    

    如果在mysql命令行里面退不出来了,可以通过输入(‘c)退出界面

    mysql密码忘记了,登录不上,请见 重设密码

  • 相关阅读:
    Hadoop集群(三) Hbase搭建
    Hadoop集群(二) HDFS搭建
    Hadoop集群(一) Zookeeper搭建
    Redis Cluster 添加/删除 完整折腾步骤
    Redis Cluster在线迁移
    Hadoop分布式HA的安装部署
    Describe the difference between repeater, bridge and router.
    what is the “handover” and "soft handover" in mobile communication system?
    The main roles of LTE eNodeB.
    The architecture of LTE network.
  • 原文地址:https://www.cnblogs.com/michealjy/p/11560171.html
Copyright © 2020-2023  润新知