zoukankan      html  css  js  c++  java
  • 初识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密码忘记了,登录不上,请见 重设密码

  • 相关阅读:
    c#操作ElasticSearch5详解
    消息推送服务
    Elasticsearch5.0.1 + Kibana5.0.1 + IK 5.0.1
    C#使用ES
    C# 开发人员的函数式编程
    Swagger文档转Word
    Spring Security OAuth2 Demo -- good
    is not eligible for getting processed by all BeanPostProcessors
    成功都一样,失败各不同;失败的项目也许值得你警醒
    java.exe进程来源排查录
  • 原文地址:https://www.cnblogs.com/michealjy/p/11560171.html
Copyright © 2011-2022 走看看