为了账号安全,请及时绑定邮箱和手机立即绑定

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
学习人数
综合评分9.67
950人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 创建一个数据表,用CREATE TABLE table_name(

    column_name(注:这是列名的意思) data_type(注:数据类型),

    ....

    注;列名的得出是通过项目的分析得出来的,不能凭空想象

    查看全部
  • SELECT DATABASE();

    用来显示当前打开的数据库

    查看全部
  • 用USE打开创建好的数据库


    查看全部
  • 外键约束的参照操作

    查看全部
  • 插入的记录可以是约束好的默认值,也可以是数学表达式,可以是函数。

    INSERT address VALUES(DEFAULT,IF(1,'男','女'),DEFAULT,10+2*3);


    查看全部
  • MySQL 子查询简介

    2019-08-12

    子查询(Subquery)是指出现在其他SQL语句内的SELECT子句

    例如:

    SELECT * FEOM t1 WHERE col1 = (SELECT col2 FROM t2);

    其中SELECT * FROM t1 成为Outer Query/Outer Statement

    SELECT col2 FROM t2,成为SubQuery

    子查询指嵌套在查询内部,切必须始终出现在圆括号内

    子查询可以包含多个关键字或条件

            如DISTINCT, GROUP BY, ORDER BY, LIMIT ,函数等。

    子查询的外层查询可以是SELECT, INSERT,UPDATE,SET或DO。


    查看全部
  • 对数据库的操作分为:

    写操作:增删改

    读操作:查

    查看准备数据 

    (1)SELECT * FROM tdb_goods\G; // 网格形式输出查询结果

    (2)由于存储时使用的编码方式为utf-8格式;客户端默认的为GBK格式,所以

    需要使用 SET NAMES GBK; 设置读取信息的编码格式。(存储数据的属性没有不变化)

    解决乱码的问题:

    1.show variables like "%char%";

    类似set character_set_results=utf8;,能改的都改为uft8

    2.在要创建的表后加ENGINE=InnoDB DEFAULT CHARSET=utf8;

    解决乱码的问题:


    ----------------------------------------------------------------------------------------------------------------------------------------


    1.MySQL中默认字符集的设置有四级:服务器级,数据库级,表级。最终是字段级的字符集设置。注意前三种均为默认设置,并不代表你的字段最终会使用这个字符集设置。可以通过how create table table;或show full fields from tableName;来检查当前表中字段的字符集设置。

    2.表创建后,再修改字段的字符集设置不影响已经插入的数据.

    所以才会出在查看字段时出现中文乱码.此时就只能用:set NAMES‘utf8/gbk(用字段插入是所用的相应代码,且这个命令行并不影响服务器端数据)来查看中文内容 

    当数据库和数据表的编码不一样时,可能插入中文会出现乱码!排插步骤如下:(以utf8为例)

    第一步:SHOW CREATE DATABASE XXXX;(我的是SHOW CREATE DATABASE test;)

    查看你创建的数据库是否是:DEFAULT CHARACTER SET utf8

    第二步:show create table xxxx

    查看你创建的数据表是否是DEFAULT CHARSET=UTF8

    第三步:

    打开my.ini

    在[client]节点下添加

           default-character-set=utf8

        在[mysqld]节点下添加

           character-set-server=utf8

          collation-server=utf8_general_ci保存,重启mysql!

    再 mysql>show variables like 'char%';查看是否是下面一样:

    |character_set_client|utf8 

    |character_set_connection|utf8 

    |character_set_database|utf8 

    |character_set_filesystem|binary

    |character_set_results|utf8 

    |character_set_server|utf8 

    |character_set_system|utf8 

    |character_sets_dir|/opt/mysql-cluster/share/mysql/charsets/

    按以上步骤执行后,重新创建数据库imooc和表tdb_goods,就可以插入中文了!


    查看全部
    1 采集 收起 来源:数据准备

    2019-12-22

  • 4-11limit语句限制查询数量:

    1、限制查询结果返回的数量:

    SELECT * FROM users LIMIT 2;返回前两条数据

    SELECT * FROM users LIMIT 2,2;是指从下标2(下标从0开始算)(即是第三条记录开始)开始,返回两条记录

    insert [into] 表名 set 字段={...},...

    insert 目的表(字段名) select 字段名 from 原表名 where 另一字段 >=30;   把select后查出表中满足条件的字段数据插入到目的表中

    limit 0,2     ---0代表第一行,2代表显示几行


    查看全部
  • having语句设置分组条件:

    可以只对某一部分进行分组

    SELECT sex,age FROM users GROUP BY 1 HAVING age >35;

    having语句规定having后面的要么是一个聚合函数,要么该字段需要在select后面的字段中出现,否则会报错

    聚合函数则max、min等

    having 语句分组,用在group by后面追加条件,判断式中的字段是必须出现在前面select中的 或者是可以包含没有出现在前面查询中的字段的一个聚合函数count(),max()等等

    1、其实老师的意思是,我们在分组的时候,sex值相同的会放在一组,所以这里只有两个不一样的组,值=0的组和组=null的组。
    2、我们在使用hvaing count(id)>=2的时候(2代表的是 id(即不同的条数)条数sex出现相同的次数),就是我们根据id来做条件,千万不要吧>=2和sex的具体值来比较。因为它是出现相同的次数。
    3、因为sex值为0的条数大于等于2条(老师数据表中1/2/3/4/5/6/7/8条的sex都是0)。而null只有一条。所以这里的查询后的结果是0分组。

    查看全部
  • 查询结果分组 GROUP BY 

     [GROUP BY {col_name|position} [ASC|DESC],...] 

    ASC:升序,默认 

    DESC:降序 

    position:SELECT语句中列的序号 

    mysql中GROUP BY语句对查询结果分组:

    SELECT sex FROM users GROUP BY sex;   #按照sex字段进行分组查询

    SELECT sex FROM users GROUP BY 1; #按照目标分组字段sex在select语句中出现的顺序的进行分组查询


    查看全部
  • 主键在创建的时候会自动创建索引,外键在创建的时候也会自动创建索引。所以当参照列不是主键的时候不会自动创建索引,需要手动创建

    查看全部
  • 1、查询表达式:

    SELECT username,id FROM users;

    SELECT id AS userid FROM users;

    select查询语句中字段的顺序将会影响查询结果的字段顺序;

    select查询语句中字段的别名将会影响查询结果的字段名称;

    SELECT

    查询表达式

    每一个表达式表示想要的一列,必须有至少一个

    多个列之间以英文都要分割

    星号(*)表示所有列。tbl_name.*可以表示命名表的所有列

    查询表达式可以使用[AS]alias_name为其赋予别名


    查看全部
  • 外键约束的要求

    查看全部
  • 更新记录(单表更新)

    UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr|DEFAULT}[,col_name2={expr|DEFAULT}]...[WHERE where_condition]

    UPDATE users set age+=5;   #所有的记录年龄都改成原来的年龄加5

    UPDATE users set age=age-id ,sex=0;  #同时更新age和sex字段

     UPDATE users set age=age+10 where id%2=0;  #带条件的更新



    查看全部
  • INSERT 

    插入记录

    INSERT [INTO] tbl_name SET col_name = {expr|DEFAULT},...

    说明:与第一种方式的区别在于,此方法可以使用子查询(SubQuery)

    将A表语句插入到B表中

    INSERT B SELECT 语句名 FROM A [WHERE 条件]


    查看全部

举报

0/150
提交
取消
课程须知
要想学习本课程,你只需要知道数据库是个什么东东就足够了,是不是很easy?!
老师告诉你能学到什么?
1、MySQL安装与配置 2、数据类型 3、流程控制与运算符 4、DDL、DCL、DQL、DML 5、常用函数 6、表类型(存储引擎) 7、图形化工具

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!