MYSQL笔记



介绍


MYSQL是一种流行的关系型数据库管理系统,广泛应用于各种业务场景。



安装


注意: 确保已安装MySQL并设置好环境变量。(控制台输入)


        MYSQL --version;
    


前言


MySQL大小写敏感吗:
1>在windows下不区分大小写
2>在Linux下默认是区分大小写的

MySQL的大小写敏感是由参数控制的


        show global variables like'%lower_case%';//这个是登录到MYSQL后才能执行的语句,等学到后面就知道了,先看下面的
        ------------我的系统输出---------------------
                            +------------------------+-------+
                            | Variable_name          | Value |
                            +------------------------+-------+
                            | lower_case_file_system | ON    |
                            | lower_case_table_names | 1     |
                            +------------------------+-------+
                            2 rows in set, 1 warning (0.01 sec)

    

system是☞系统:NO->大小写不敏感 OFF->大小写敏感

name是☞命名:0->大小写敏感 1->大小写不敏感 2->大小写不敏感

数字类型:

整数:tingint、smallint、mediumint、int、bigint

浮点:float、double、real、decimal

日期和时间:date、time、datetime、timestamp、year

字符串类型:

字符串:char、varchar

文本:tinytext、text、mediumtext、longtext

二进制(可存储音乐、图片):tinyblob、blob、mediumblob、longblob



基础


数据库层面

登录数据库

        MYSQL -h 主机名 -u 用户名 -p;
    

1>当前机器可忽略-h 主机名
2>用户名一般是root
3>输入完回车就是输入密码就行

创建数据库

        CREATE DATABASE 数据库名[其他选项];
    

1>[]只是我为了区分,别傻乎乎也打进去了
2>关键词我都是大写的,这是因为,保险起见,大写总没有错
3>其他选项可以是:character set gbk(指定数据库字符编码)

查看数据库

        SHOW DATABASES;
    

注意是DATABASES,有S

选择/使用数据库

        USE 数据库名;
    

USE语句后可以不加分号‘;’,但是我建议加,因为他们都说建议加

操作数据库

创建数据库表

        CREATE TABLE 表名称(列声明);
        ------------如下所见----------------
        CREATE TABLE Stidents(
            Id INT NOT NULL AUTO_INCREMENT,
            Num INT NOT NULL UNIQUE,
            Name VARCHAR(20) NOT NULL,
            Sex VARCHAR(4) NOT NULL,
            Birthday DATE NULL,
            Address VARCHAR(50) NULL,
            PRIMARY KEY(Id)
        );
    

1>你当然可以在一行写,这样子是为了好看,你不喜欢好看的things?
2>习惯字段第一个字母大写,当然MYSQL不区分大小写
3>我可没有说关键字不区分,所以最好关键字全大写
4>最后的primary key(xxx)是设置主键的语句,什么?你想问主键是什么东西?啊呀,都快速入门你还想学那么细,你想干嘛啊?不知道就去百度啊
5>AUTO_INCREMENT是自动递增,只能在整数列中使用

查看表

        SHOW TABLES;//查看自己创建的表-------什么报错了?你能不能把S加上?
        DESCRIBE 表名;//可查看已创建表的详细信息
    
向表中插入数据

        INSERT INTO 表名 [(列名1,列名2,列名3,...)]values(值1,值2,值3,...);
        ----------------------------以下是举例------i-----------------------------------
        INSERT INTO Students VALUES(NULL,"小武","男",21,"13367238474");
        如果只插入部分数据
        INSERT INTO Students(Name,Sex,Age) VALUES("小胡","女",21);
    
查询表中数据

        select 列名称 from 表名称 [查询条件];
        ----------------------------以下是举例-----------------------------------------
        SELECT Name,Age FROM Students;
        使用通配符也可以
        SELECT *FROM Students;
        -----------------------------按特定条件查询-------------------------------------
        SELECT 列名称 FROM 表名称 where 条件;
        ----------------------------以下是举例-----------------------------------------
        SELECT * FROM Students WHERE Sex="女";
        //一般运算符也可以 =  >= <= < > !=
        //以及更复杂的 is[not] null ,in,like,or,and
        例如查询名字带’武‘的所有人信息
        SELECT *FROM Students WHERE Name LIKE "%武%";//解释一下两个%是什么意思,就是类似占位符,前面一个代表武不一定是第一个,后面代表武不一定是最后一个
        再例如查询Id小于5,并且年龄大于20的所有人信息
         SELECT * FROM Students WHERE Id < 5 AND Age>20;
    

更新表中的数据

        update 表名称 set 列名称=新值 where 更新条件;
        ----------------------------以下是举例-----------------------------------------
         将手机号为123的姓名改为"武",年龄改为19
         UPDATE Students SET Name = "武",Age = 19 WHERE Tel = "123";
    
删除表中的数据

        delete from 表名称 where 删除条件;
        ----------------------------以下是举例------------------------------------------
        删除Id为2的行
        DELETE FROM Students WHERE Id = 2;
        删除表中所有数据
        DELETE FROM Students;
        删除表中的外键约束
        ALTER TABLE 表名 DROP FOREIGN KEY 拥有外键的字段名;
    

创建表后的修改---(关键字:alter table)

添加列

        alter table 表名 add 列名 列数据类型[after 位置];--//还是那句话'[]'这个中括号是为了给你举例是可供选择的
        ----------------------------以下是举例------------------------------------------
        在表的最后添加名为address的列
        alter table Students add address char(60);
        在名为age的列后插入名为birthday的列
        alter table Students add birthday date after age;
    
修改列

        alter table 表名 change 列名 列新名 新数据类型;
        ----------------------------以下是举例------------------------------------------
        将tel列改为telphone
        alter table Students change tel telphone char(13) default "_";
        将name列的数据类型改为char(16)
        alter table Students change name name char(16) not null;
    
删除列

        alter table 表名 drop 列名称;
        ----------------------------以下是举例------------------------------------------
        删除birthday列
        alter table Students drop birthday;
    
重命名表

        alter table 表名 rename 新表名;
        ----------------------------以下是举例------------------------------------------
        重命名 Students表为workmates
        alter table Students rename workmates;
    
删除整张表

        drop table 表名;
        ----------------------------以下是举例------------------------------------------
        删除workmates表
        drop table workmates;
    
删除整个数据库

        drop database 数据库名;
        ----------------------------以下是举例------------------------------------------
        删除same_db 数据库
        drop database samp_db;
    
更换字段的顺序

        alter table 表名 modify 字段名 varchar(10) after 字段名;
        ----------------------------以下是举例------------------------------------------
        放在第一名
        alter table 表名 modify 字段 字段属性 first;
    


高级


JOIN用于将多个表连接在一起。


        SELECT * FROM table1 JOIN table2 ON table1.id = table2.id;
    

修改root用户密码


        mysqsladmin -a root -p password 新密码<-
        >输入旧密码就行
    

MYSQL不同命令清屏的方式


        1>Powershell
        system cls;
        2>navicat使用命令列工具
        clear;
        3>Mycli和Linux
        Ctrl + L;
    


各种实例以及遇到的各种问题


insert into user_info (name, age, height, phone)
  values ('张三', 20, 183, '13367238474');