Linux和mysql相关命令

1) linux相关的命令: 
    1.1: 系统管理命令 : 
        1.1.1:  ps命令 :  ps命令用来列出系统中当前运行的那些进程
            固定语法:  
                ps -ef     用于查看当前系统中运行的所有的进程

            查询的结果:  只拷贝了一部分
               所属用户   进程的PID                                 进程的名称
                root      47304      2  0 09:19 ?        00:00:00 [kworker/u256:2]
                root      54963      2  0 09:23 ?        00:00:00 [kworker/0:1]
                root      65230      2  0 09:30 ?        00:00:00 [kworker/0:2]
                root      76628      2  0 09:36 ?        00:00:00 [kworker/0:0]
                root      79273    757  0 09:38 ?        00:00:00 sleep 60
                root      79657   1681  0 09:38 ?        00:00:00 bash -c export LANG="en_US
                root      79699  79657  0 09:38 ?        00:00:00 sleep 1
                root      79700   1686  0 09:38 pts/0    00:00:00 ps -ef

                进程PID 是唯一的, 可以通过 pid找到唯一的一个进程

        1.1.2:  kill命令 :  kill命令用于终止执行中的程序
            固定语法:  -9 表示 终结 强制
                kill -9 进程PID

            如何找到对应程序的进程ID呢?
        1.1.3: | 管道命令 :  作用是将一个命令的输出结果作为另一个命令的输入
            格式: 
                命令1 | 命令2 | 命令3 ....

            需求:  在所有进程中查询mysql的进程
                ps -ef | grep  mysql
    1.2 用户相关的命令 : 
        1.2.1: 如何创建用户
            格式:
                useradd 新增用户名
            案例需求: 请新增一个 zhangsan 用户
                useradd zhangsan
            注意: 
                当我们新增一个用户, 会在 /home目录下, 新建一个以这个用户名为文件夹, 
                    这个文件夹其实就是这个用户的家目录

        1.2.2: 如何为用户设置密码
            格式:
                passwd 用户名
            案例需求: 为zhangsan用户设置一个密码为 1234
                passwd zhangsan
        1.2.3: 如何切换登录用户 : su 
            格式:
                su 用户名
            案例需求: 从root切换用户到 zhangsan用户上面
                su zhangsan

            请问, 刚刚从root用户切换到zhangsan用户的时候, 为什么没有输入密码呢? 
                root用户是整个linux操作系统最高级别的用户, 此时这个用户不受任何权限限制的


        1.2.4: 如何删除用户: 
            格式:
                userdel -r 用户名

            案例需求: 删除 zhangsan 用户
                userdel -r  zhangsan
            在删除的时候, 可能会报出如下的错误:
                [root@node1 zhangsan]# userdel -r  zhangsan
                    userdel: user zhangsan is currently used by process 24738
                错误的原因: 
                    由于刚刚已经登录过了这个zhangsan用户了, 
                        导致系统内部有一个zhangsan用户进程, 在删除的时候, 就会报如上错误
                解决方案:
                    将这个进程杀死掉, 然后再次删除, 就没有问题了
                        kill -9  24738
                    注意: 
                        24738 是我这里看到进行 pid 编号
                [root@node1 zhangsan]# kill -9 24738
                [root@node1 zhangsan]# 已杀死

                此时需要我们重新登录一下即可: 此时在finashell中多次回车即可重新登录
                    或者关闭窗口, 重新连接一下

            请问我在登录到zhangsan用户上的时候,删除zhangsan用户, 请问是否可以呢?
                注意, 我们在删除用户的时候, 要登录到root用户下, 然后去删除其他的用户 

    1.3 :  文件权限管理命令: 
        请问, 一般一个文件的权限都有哪些? 
                读    写    执行
   英文表示法     r    w      x
   数字表示法     4    2      1

           以上这些权限可以运行在不同的用户中分别设置:

              权限(10位)      所属用户   所属用户组                       文件名称
           -rw-r--r--.     1   root       root      1539   5月   8 15:35 bb.cfg
        drwxr-xr-x.     2   root       root        77   5月   8 15:55 ccc

        关于10位权限的说明:  四大部分
            第一部分(第一位): 表示文件类型  
                    -表示没有(代表就是文件)  d 表示文件夹  l 软连接(快捷方式)
            第二部分(2~4)  U : 表示当前登录用户所属的权限

            第三部分(5~7)  G : 表示当前登录用户所属的用户组的权限
            第四部分(8~10) O : 表示的是其他用户所属的权限

        举例说明: -rw-r--r--  此权限为  什么
            这是一个文件, 这个文件的权限为 当前这个用户拥有可读可写的权限,
                 当前登录的用户组和其他所有的用户只有可读的权限

        如何设置权限呢?   chmod 
            方式一: chmod 666 a.txt  : 表示 当前这个 a.txt 所有的用户都有可读可写权限
            方式二:chmod u+x a.txt  :  
                    u+x 表示为 当前登录用户添加一个 x的权限
                    g-x 表示: 当前登录用户所属组 减少一个 执行权限
            方式三:chmod u=rwx,g=rw,o=x a.txt :为每个部分针对性的设置权限

        注意: 对于root来讲 无所谓 , 改啥跟我一毛钱关系都莫有

    1.4 网络和服务管理命令: 
        1.4.1:  hostname命令: 查看当前电脑主机名

        1.4.2: ifconfig 命令 : 查看当前虚拟机的ip地址

        1.4.3: service 命令 : 用来对系统服务做管理操作
            格式:
                service 服务名称 [start|stop|restart|status]

            service network status #查看网络服务状态 
            service network stop #停止网络服务
            service network start #启动网络服务
            service network restart #֘重启网络服务

    1.5: 其他命令:
        1.5.1:  ln命令 :  作用 创建软连接,类似于创建快捷方式
            请问: windows快捷方式有什么好处 : 
                通过快捷方式,可以直达目标地址...

            使用格式: 
                ln [参数][源文件或目录][目标文件或目录]

            案例需求: 
                首先创建 此目录结构 /aaa/bbb/ccc/ddd 
                    mkdir -p /aaa/bbb/ccc/ddd 
                然后这个ddd这个目录下, 创建 a.txt  b.txt c.txt
                    touch a.txt  b.txt  c.txt

                要求, 为 ddd目录构建一个快捷方式, 通过快捷直达此目录下,查看文件
                    注意:快捷方式放置在 /root这个目录下
                        ln -s /aaa/bbb/ccc/ddd  /root/ddd

        1.5.2: clear命令 : 清屏命令

    1.6 :  vi文件编辑命令 : 作用 对文本进行编辑操作
        使用格式:
            vi a.txt #直接打开文件
            vi a.txt +10 #直接打开文件,并定位到第10行

        vi命令三种模式: 
            1.命令行模式
               - 打开文件首先进入命令模式, 是使用vi的入口
               - 通过 命令 对文件进行常规的编辑操作, 例如 定位 翻页 复制 粘贴 删除 
               - 在其他图形编辑器下, 通过 快捷键 或者 鼠标 实现的操作, 都在 命令模式 下实现
            2. 末行模式(底行模式) -- 执行 保存 退出等操作
               - 要退出 vi 返回到控制台, 需要在末行模式下输入命令
               - 末行模式 是 vi 的出口
            3. 编辑模式 -- 正常的编辑文字

        描述三种模式转换: 

            1) 要想进入底行模式或者是编辑模式, 必须从命令行模式进入
            2) 编辑模式和底行模式不允许直接互相跳
                例如:
                    编辑模式 (esc)--> 命令行 (:)--> 底行
                    底行 (esc)-->命令行 (i) -->编辑模式

        命令行模式常用命令(快捷键):
            dd : 删除光标所在行
            ndd :  n表示一个任意数字   从光标位置向下连续删除 n 行
            yy : 复制光标所在行
            nyy: n表示一个任意数字  从光标位置向下连续复制 n 行
            p : 粘贴
            gg | G :  G 直接跳到文件底部   gg  直接跳转到文件的顶部

        底行模式常用命令:
            :q! : 不保存强制退出
            :wq : 保存并退出
            :set nu  : 显示行号

2. mysql数据库:
    什么是数据库: 
        数据: 一切皆数据
        库 : 容器

    数据库: 用来存储数据的仓库, 其本质上就是一个文件系统, 数据按照特定的格式(表)将数据存储
        起来, 用户可以对数据库中数据进行CURD(增删改查),但是需要按照特定方式(SQL)来操作

    常见的数据库 : 数据库又分为关系型数据库和非关系型数据库
        关系型的数据库: 
            1) MYSQL    
                开源免费的数据库,中型的数据库.已经被Oracle收购了.
                    MySQL6.x版本也开始收费。
            2) Oracle    
                收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
            3) DB2    
                IBM公司的数据库产品,收费的。常应用在银行系统中.
            4) SQLServer    
                MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
            5) SQLite    
                嵌入式的小型数据库,应用在手机端。
        非关系型数据库:
            Redis    
                是一个小而美的数据库,主要用在key-value 的内存缓存,读写性能极佳
            HBase    
                HBase是列式数据库,目标是高效存储大量数据
            MongoDB        
                MongoDB是文档型数据库,非常接近关系型数据库的。

        在大数据领域中: 
            关系型数据库:主要以 mysql为主  
            非关系型数据库: redis  和 hbase

    1.2: mysql的安装与使用
        安装: 已经在虚拟机中安装好了, 不需要大家在重新安装了
        目前需要大家做一个事情, 验证一下, mysql这个服务是否已经开启了: 
            验证方式二种: 
                1) 通过 ps -ef | grep mysql  查询mysql的进程是否存在
                或者:
                2) 通过 service mysqld status 查询mysql的服务是否启动    
            
            使用第一种验证方式: 如果看到一下内容, 说明已经启动
                [root@node1 ~]# ps -ef | grep mysql
                mysql      4057      1  0 13:13 ?        00:00:15 /usr/sbin/mysqld
                root     127332   1624  0 14:27 pts/0    00:00:00 grep --color=auto mysql

            或者使用第二种验证:  如果看到一下内容, 说明已经启动 :  active (running)
                [root@node1 ~]# service mysqld status
                Redirecting to /bin/systemctl status mysqld.service
                ● mysqld.service - MySQL Server
                   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
                   Active: active (running) since 六 2020-05-09 13:13:35 CST; 1h 15min ago

            如果采用以上这两种方式的其中一种验证后, 发现没有mysql的进程或者没有启动, 如何办?
                使用以下命令来启动mysql的服务项: 
                    service mysqld  start

                如果依然无法处理, 怎么办, 请重启一下虚拟机, mysql自动启动的

        如何登录使用问题? 
            登录mysql方式: 
                方式一 :   mysql -u用户名 -p密码     推荐使用的

                方式二 :  mysql --host=ip地址  --user=用户名 --password=密码

            注意: mysql在安装完后, 会提供一个用户名 为 root  这是mysql的最高管理用户
                密码:在安装时候初始化好了 为  123456

            如果能够看到一下内容, 说明 登录成功了....
            [root@node1 ~]# mysql -uroot -p123456
            mysql: [Warning] Using a password on the command line interface can be insecure.
            Welcome to the MySQL monitor.  Commands end with ; or \g.
                ....
            mysql>
        如何退出呢? 

            方式一: 使用 exit  退出
            方式二: 使用 quit  进行正常退出

            ctrl +c  : 强制退出 操作, 如果在进行操作的过程中, 发现无法回到控制台模式下, 
                可以尝试使用这个操作, 试一下

    1.3: SQL语言基本介绍: 
        SQL: 主要是用于对关系型数据库进行CURD操作的, SQL本身是一门语言或者成为是一套编写规范
            要求所有的关系型数据库厂商都应该去遵循这套规范, 都可以使用这套规范来对各种关系型数据
            进行操作

        请问这种方式好处是什么呢?  
            操作数据库变得更加的统一, 对于程序员来讲只需要将SQL规范学会了, 就可以去操作各种类型
                关系型数据库了

        SQL出现了两个版本:
            标准版本: 可以在各个数据库中都是可以使用的
            方言版本: 每个数据库保留方言并不多, 只是占据极少的一部分


        SQL语句的分类:  4大类
            数据库的定义语言(DDL) : 主要是数据库中 库 和 表 进行相关的定义操作
                例如: 创建数据库, 创建表, 修改数据库, 修改表, 删除数据库 删除表...
                关键词: create drop alter ......
            数据库的操作语言(DML) : 主要是对数据库中表数据的操作(增 删 改)
                例如: 表中添加数据, 修改数据, 删除数据
                关键词:  insert  update  delete
            数据库的控制语言(DCL): 主要是对数据库软件进行相关的控制 
                例如: 权限的控制, 密码的修改, 新增一些用户...
                这类语言一般是用于 DBA(数据库管理员) 这个工种的人员来使用的
            数据库的查询语言(DQL): 主要是对数据库中数据的查询操作
                例如: 查询表中数据,用于做数据分析使用
                关键词: select

            主要讲解的有三类:  DDL  DML  DQL   (非常重要的)
                其中 DDL DML 相对比较简单, 基本都是固定语法
                DQL相对而言是比较严, 而且也是我们学习重中之重

        SQL语句通用语法:  
            1) SQL语句可以单行或多行书写,以英文格式下分号结尾
            2) 可使用空格和缩进来增强语句的可读性     
            3) MySQL数据库的SQL语句不区分大小写  , 个人感觉小写好认识一点
                例如:SELECT * FROM user。
                同样可以使用/**/的方式完成注释  --  # 
            4) MySQL中的我们常使用的数据类型如下
                    int(integer) : 整数类型 
                    double :  表示小数类型
                    datetime  : 表示日期 + 时间
                    timestamp : 表示时间戳(当前时间)
                    varchar(m):  表示文本 或者 字符串  m 表示长度, 可以写多长字符
    1.4 : 讲解 DDL语句: 数据库的定义语言
        作用: 对 库 和 表进行相关的定义操作

        1.4.1: 对库的相关的操作: database(数据库)
            1) 创建数据库:
                语法格式: 
                    create database 数据库名;    #直接创建数据库,如果存在则报错
                    create database if not exists 数据库名称;  #如果数据库不存在则创建
                    create database 数据库名 character set 字符集; #创建数据库时设置字符集

                浓缩为一种语法格式:  [] 表示其内部的内容可以省略不写
                    create database [if not exists] 数据库名称 [character set 字符集] ;

                    说明: 
                        if not exists : 表示判断数据库是否存在, 如果存在, 不创建, 如果不存在就会创建
                        character set 字符集 : 设置数据库的字符集的

                    何为字符集呢 ? 
                        数据存储在磁盘中 是以什么方式存储在磁盘中的?? 二进制方式存储
                        如何将文字 数字和 单词转换为 二进制呢?  需要按照某个格式(编码)来转换

                    常见的字符编码:  
                            UTF8(万国码 支持中文和数字和单词)  -- 使用最多的为UTF8 
                            GBK 支持中文
                            ISO-8859-1: 不支持中文
                具体的操作方案: 
                    需求: 创建一个数据库, 数据库名称为  bigData_day02
                        create database  bigData_day02 ;
                        提示:
                            Query OK, 1 row affected (0.12 sec)  表示创建成功

                        注意: 如果再次创建同名的数据库 会报出如下错误:
                            ERROR 1007 (HY000): 
                                Can't create database 'bigData_day02'; database exists
                    需求: 我就想在执行一次创建这个库语法, 而且还不想出现报错, 怎么办?
                        create database  if not exists bigData_day02 ;

                    需求: 创建一个数据库为  bigData_day02_test  要求这个库的编码方式为 gbk编码
                        create database  if not exists bigData_day02_test  character set gbk;
                学习一个快捷键: ctrl + l  可以随时随地清屏操作

            2) 查看所有的数据库:
                格式:   
                    show databases ;  查询所有的数据库
                需求: 查看当前mysql中一共有哪些数据库
                    show databases

                注意事项: 不要去随意的操作其他的数据库, 只需要操作自己创建库即可
            3) 删除数据库
                格式:
                    drop database 数据库名称 ;
                需求: 请 将 bigData_day02_test  删除掉
                    drop  database bigData_day02_test ;

            4) 使用数据库 : 使用数据库的目的, 当我们需要创建表的时候, 或者要操作数据时候, 必须选择一个库
                格式:
                    use 数据库名称;

                需求: 请使用 bigData_day02 这个数据库
                    mysql> use bigData_day02;
                    Database changed

                思考: 使用了数据库以后, 请问 还能不能在创建数据库了呢? 或者 删除数据库呢? 都是可以的

        1.4.2: DDL 对表的相关的操作
            1) 创建表: 
                格式: 
                    create table [if not exists] 表名(
                        字段名  类型(长度) [约束],
                        字段名  类型(长度) [约束],
                           ...
                    );

                注意: 
                    () 中定义的起始表头中各个字段的内容 及其字段类型长度约束
                    () 中最后一行不要添加 逗号
                约束:
                    对某列进行相关约束操作, 例如 不能有重复不能为空 ...

                    primary key : 主键约束
                        一个表中只有有一个主键, 
                            被主键约束所约束的字段的这一列不能为空也不能出现重复值

                需求: 创建一个学生表, 包含 编号 姓名 和年龄 ,而且编号不能有重复不能为空
                    use bigdate_day02_test01;
                    create table if not exists student(   --  请手写 不要复制....
                        id int primary key,
                        name varchar(10),
                        age int 
                    );

                执行效果:
                    mysql> create table if not exists student (
                        -> id int primary key ,
                        -> name varchar(10),
                        -> age int 
                        -> );
                    Query OK, 0 rows affected (0.32 sec)

                注意: 在创建表的时候, 一定要先确定已经使用过数据库了, 否则无法创建成功,
                    或者压根我们也不知道创建到了哪里去了...


            2) 查看表:
                2.1: 查看数据库中的所有表:
                        格式:show tables;
                2.2: 查看表结构:
                        格式:desc 表名;
                        例如:desc sort;

                操作案例:
                    mysql> show tables;
                    +--------------------------------+
                    | Tables_in_bigdate_day02_test01 |
                    +--------------------------------+
                    | student                        |
                    +--------------------------------+
                    1 row in set (0.00 sec)

                    mysql> desc student;
                    +-------+-------------+------+-----+---------+-------+
                    | Field | Type        | Null | Key | Default | Extra |
                    +-------+-------------+------+-----+---------+-------+
                    | id    | int(11)     | NO   | PRI | NULL    |       |
                    | name  | varchar(10) | YES  |     | NULL    |       |
                    | age   | int(11)     | YES  |     | NULL    |       |
                    +-------+-------------+------+-----+---------+-------+
                    3 rows in set (0.01 sec)

            3) 删除表 :
                格式:
                    drop table 表名;

                需求: 删除掉 student表
                    drop  table student;

                执行后, 查询所有表:
                mysql> show tables;
                Empty set (0.00 sec)   -- 没有任何的表


            4) 修改表的结构: 
                4.1) 格式: alter table 表名 add 新列名 类型(长度) [约束];    
                     作用:修改表添加列. 
                     例如:
                         请在 学生表中 添加一列 性别  类型为 varchar(2) 
                         alter table student add sex varchar(2);
                     注意:
                         报错显示 1064 (42000):  表示语法错误, 请检查语法内容
                         报错显示:
                             ERROR 1146 (42S02): 
                                 Table 'bigdate_day02_test01.student' doesn't exist
                             错误说明: 在这个 bigdate_day02_test01 库下面 没有这个 student 表

                4.2) 格式: alter table 表名 change 旧列名 新列名 类型(长度) 约束; 
                     作用:修改表修改列名.
                     例如:
                        请将student表中name字段 修改为 username字段
                        alter table  student change name username varchar(10);

                4.3) 格式: alter table 表名 drop 列名;    
                     作用:修改表删除列.
                     例如:
                        请删除 student 中  sex 列
                        alter table student drop sex;


                4.4) 格式: rename table 表名 to 新表名;
                     作用:修改表名
                     例如:
                       请将 student 表名修改 teacher表
                       rename table student to teacher;

3. 安装  dataGrip软件:
        参考安装文档: <<5_安装DataGrip.docx>>

        


                
          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值