MySQL学习笔记

配置文件:sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
登入命令:mysql -uroot -p
创建(删除)数据库:create(drop) database ***
转换到数据库:use databasename;
创建表:
    create table tablename(
        r1name datatype (若要不为空写 not null),
        r2name datatype (若要不为空写 not null),
        r3name datatype (若要不为空写 not null)
    );

查询表:
    DISCRIBE tablename
    或者DISC tablename

    查询表的详细信息:
        show create table tablename

    格式化输出:
        show create table tablename \G

修改数据表:
    修改表名:
        ALTER TABLE oldname RENAME TO newname;
    修改字段名:
        ALTER TABLE tablename
        change oldname newname newtype;
    修改字段数据类型:
        ALTER TABLE tablename
        MODIFY name newtype;
    添加字段:
        ALTER TABLE tablename
        ADD newname newtype;
    删除字段:
        ALTER TABLE tablename
        DROP name;
    添加主键语法:
删除表:
    删除无关联数据表:
        drop TABLE tablename1,tablename2;
    删除有关联数据表:
        先删除关联关系,再删除表
插入数据:
    所有列都插入值:
        INSERT INTO tablename
        VALUES(var1,var2,.....varn);  #若此列有默认值则可用DEFAULT来代替默认值
    为特定列插入值:
        INSERT INTO tablename(col1,col2,...colm)
        VALUES(var1,var2,.....varm);  #若此列有默认值则可用DEFAULT来代替默认值
    一次性插入多条记录:
        在VALUES后填写多组值即可:VALUES()()()
修改数据:
    修改全部数据:
        UPDATE tablename
        set rawname=newvalue
        '''
        实例:
            set score=score+10
            set sex=‘男’
        '''
    修改特定数据:
        在修改特定数据后加上 WHERE [条件语句]
        '''
        实例:
            set sex=‘男’
            WHERE QQnum=‘1234560’
        '''

删除数据:
    使用DELETE命令删除数据:
        DELETE FROM tablename
        WHERE[条件语句]
        '''
        实例:
            DELETE FROM tablename
            WHERE sex=‘女’
        '''
    使用TRUNCATE TABLE删除数据:# 不能使用WHERE语句
        TRUNVATE TABLE tablename


查询基础:
    #重点SELECT语句
    查询表的全部行和列:
        SELECT rawname1,rawname2....rawnamen
        FROM tablename
        简便写法:
            SELECT ×
            FROM tablename
    查询表的部分列:
        与查询表的全部列相同

    别名的使用:  #AS关键字可省略
        SELECT rawname1 AS ‘newname’,rawname2 AS ‘newname’....rawnamen AS ‘newname’
        FROM tablename

    DISTINCT关键字: # 去重
        SELECT DISTINCT rawname
        FROM tablename

    LIMIT关键字: #指定结果集中数据的显示范围
        SELECT rawname
        FROM tablename LIMIT begin,end #若LIMIT后只写一个数字则只显示前几个
    
普通条件查询:
    逻辑运算符: 并且: AND ,或者:OR, 非:NOT

    复合条件查询:
        SELECT rawname
        FROM tablename
        WHERE score>1000 and name=‘jack’
    
    模糊查询:
        SELECT rawname
        FROM tablename
        WHERE score BETWEEN 100 AND 200
         # 查询分数在100到200之间的信息(闭区间,前后不可颠倒)
        
        SELECT rawname
        FROM tablename
        WHERE score NOT BETWEEN 100 AND 200
        #查询分数不在此区间的信息

        通配符:(要在前加LIKE关键字)
            '''    
                _  代表任意一个字符
                %  代表任意长度的多个字符
                [] 指定范围内
                [^] 不在括号中
                
            
            '''
            WHERE rawname (NOT)LIKE '孙%'
            #查询所有(不)性孙的人  '%'代表任意长度的字符
        查询空值的运算符:
            WHERE rawname IS NULL
        查询不为空:WHERE rawname IS NOT NULL    #NOT 要在IS后面

对查询结果拍序:
    单列排序:
        SELECT rawname
        FROM tablename
        ORDER BY rawname ASC/DESC  # ASC升序 DESC降序 默认ASC

    多列排序:
        SELECT rawname
        FROM tablename
        ORDER BY rawname1 ASC/DESC,rawname2 ASC/DESC #在前面的优先级高

汇总和数据分组:
    聚合函数: sum(),avg(), min(),max(),count()....
        SELECT SUM(rawname) FROM tablename

    在结果集内分组:
        SELECT SUM(rawname)
        FROM tablename
        GROUP BY rawname

    筛选分组结果:
        SELECT SUM(rawname)
        FROM tablename
        GROUP BY rawname
        HAVING AVG(score)>4000
        #筛选统计后平均分大于四千的
        #HAVING与WHERE的区别: HAVING是对聚合函数计算后的结果进行筛选
        按平均分进行排序:
            在最后加上ORDER BY AVG(score) ASC/DESC


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值