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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
学习人数
综合评分9.67
950人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 打开数据库:USE 数据库名。

    显示表:SHOW TABLES; 

    显示当前表或者数据库:SELECT TABLES/DATABASES();

    创建表:CREATE TABLE tb();


    查看全部
    0 采集 收起 来源:操作数据库

    2019-03-06

  • 使用比较运算符的子查询=、>、<、>=、<=、<>、!=、<=>

    语法结构 operand comparison_operator subquery

    如:SELECT AVG(goods_price) FROM tb1_goods;  ——查找到的是平均价格。

    SELECT ROUND(AVG(goos_price),2) FROM tb1_goods;  ——这个是对查找到的平均数保留两位小数。

    假如平均值为:5636.36 , 那么接下来查找大于平均值的列:

    SELECT goods_id,goods_name,goods_price FROM tb1_goods WHERE goods_price>=5636.36;

    因为5636.36是说那个一条的结果,那么将两个语句合并后为:(子查询)

    SELECT goods_id,goods_name,goods_price FROM tb1_goods WHERE goods_price>=(SELECT ROUND(AVG(goods_price),2) FROM tb1_goods);

    如果要查找其他结果,如:SELECT goods_price FROM tb1_goods WHERE goods_cate='超级本'; ——查找超级本的价格

    SELECT * FROM tb1_goods WHERE goods_cate='超级本'; —— 查找超极本的所有列

    SELECT good_id,goods_name,goods_price FROM tb1_goods WHERE goods_price>(SELECT goods_price FROM tb1_name WHERE goods_cate = '超极本'); ——返回值为错误,原因是>后面的查找结果不是唯一的,而且并没有指定>的是具体那个数或者范围,那么:

    此时就需要用到:operand comparison_operator ANY (subquery)
    operand comparison_operator SOME (subquery) 
    operand comparison_operator ALL (subquery)

    其中,ANY, SOME, ALL的使用原则就是:这三个是在大于号后边写的

                       ANY      SOME      ALL

    > 和 >=       min        min       max

    < 和 <=       max       max       min

         =           任意值     任意值

    <> 和 !=                                 任意值


    查看全部
  • 子查询(Subquery)是指出现在其他SQL语句内的SELECT子句。

    例如:

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

    其中SELECT * FROM t1,称为Outer Query/Outer Statement 

    SELECT col2 FROM t2,称为SubQuery

    subquery:指的是我们所有知道SQL命令的统称

    (1)子查询指嵌套在查询内部,且必须始终出现在圆括号内。

    (2)子查询可以包含多个关键字或条件,如DISTINCT, GROUP BY, ORDER BY,LIMIT,函数等。

    (3)子查询的外层查询可以是:SELECT,INSERT,UPDATE,SET或DO

    (4)子查询可以返回标量、一行、一列或子查询。


    查看全部
  • 限制查询结果返回数量 

    [LIMIT{[offset,]row_countrow_count OFFSET offset}] 

    例:

    SELECT * FROM users LIMIT 2; // 从第一条开始(第一个为0),返回两条 

    SELECT * FROM users LIMIT 2,3 ;//从第三条开始(第一个为0),返回三条 

    第一个2表示从2+1条开始    3表示返回三条


    第三种insert,数据从一个表插入到另一个表: 

    INSERT table_name(column_name) SELECT ... 

    例:

    INSERT test SELECT username FROM users WHERE age >=30; // 字段不匹配提示 

    INSERT test(username) SELECT username FROM users WHERE age >=30;


    查看全部
  • having进行条件指定讲究有点多啊,如果是having部分的条件是聚合函数,比如最大值,最小值,平均值,等等,则可以写不在select中的字段,写在聚合函数里面即可,但是如果没有聚合函数则必须是存在于select中的某个字段

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

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

    ASC:升序,默认 

    DESC:降序 

    position:SELECT语句中列的序号 

    例:

    SELECT sex FROM users GROUP BY sex;

    对users中的sex按sex进行分组 

    例:

    SELECT * FROM users GROUP BY 1;

    (这里的1表示查询的第一个字段,这里查询所有字段信息,第一个字段就是id,所以会按照id字段进行分组) 

    1表示SELECT语句中第一个出现的字段,即位置。 

    建议BY后写列名称,不写位置,因为位置还要人为数。  

    注意:如果存在相同的值(例如上面的age可能有多个相同的值),只会保留一个。但使用ORDER BY 就不会省略。


    查看全部
  • 查询表达式 

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

    多个列之间以英文逗号分隔 

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

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

    别名可用于GROUP BY,ORDRE BY或HAVING子句  

    SELECT 字段出现顺序影响结果集出现顺序,字段别名也影响结果集字段别名。

    一、查找记录 

    1、语法: 

    SELECT select_expr [,select expr2...] 只查找某一个函数或表达式 

    {

    FROM table_references 查询表名 

    [WHERE where_conditon] 查询条件 

    [GROUP BY {col_name|position} [ASC|DESC],...] 按某个字段进行分组,相同的只显示第一个 

    [HAVING where_conditon] 分组时,给出显示条件 

    [ORDER BY {col_name|expr|position} [ASC|DESC],...] 排序 

    [LIMIT {[offset,]row_count|row_count OFFSET offset}] 限制返回数量

    }

    2、查询表达式的顺序会影响结果顺序 

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

    多个列直接以英文逗号分隔 

    星号*表示所有列 


    3、使用tbl_name.col_name来表示列记录,这多表查询时可以区别开同名的列 

    4、使用[AS] alias_name为其赋予别名,别名可以用于GROUP BY、ORDER BY或HAVING子句,例如SELECT id AS userId,username AS uname FROM users; 这样查询出来的结果会用别名表示


    查看全部
  • 1、删除记录DELETE:分为单表删除和多表删除 

    2、单表删除:DELETE FROM tbl_name [WHERE where_conditon];  

    3、若不添加WHERE则删除【全部记录】 

    删除后再插入,插入的id号从最大的往上加,而不是填补删除的


    查看全部
  • 单表更新: 

    UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={exp1|DEFAULT}[,col_name2=...][WHERE where_condition] 【一般来说要用WHERE指定位置,不然所有数据都会被更新】 

    例: 

    不指定位置:UPDATE users set age = age + 5,sex = 0; 使表里所有记录的age加5 

    指定位置: UPDATE users set age = age+ + 10 WHERE id % 2=0; 取id为偶数的位置 

    update更新数据 

    update <表名> 

    set <列名>=<表达式>,[,<列名>=<表达式>]... 

    [where <条件>];


    查看全部
  • 前面说的insert [column_name]values(...)[,(...),(....)];的方法比较常用,可以一次性插入多条记录,并且可以输入表达式甚至是函数

    但是无法进行子查询 

    insert tb_name set column_name={expr|default}的方法是可以进行子查询,但是只能插入一条记录 

     第三种insert方法 insert table_name [(colname...)] select..... 

    这种方法就是把查询到的结果插入到指定数据表中


    查看全部
  • 1、INSERT 插入记录 

    语法1:INSERT [INTO] 表名 [(列名1,列名2,...)] VALUES(列值1,列值2,...),(...),...; 

    对于自动编号的字段,插入“NULL”或“DEFAULT”系统将自动依次递增编号; 

    对于有默认约束的字段,可以插入“DEFAULT”表示使用默认值; 

    列值可传入数值、表达式或函数,如密码可以用md5()函数进行加密(如md5('123')); 

    可同时插入多条记录,多条记录括号间用逗号“,”隔开 

    语法2:INSERT [INTO] 表名 SET 列名1=列值1, 列名2=列值2,...; 

    这种方法一次只能插入一条记录;列值中有自动编号、默认值或Boolean类型均可以不赋值(使用子查询) 

    语法3:INSERT [INTO] 表名(列名1,...) SELECT 列名1,... FROM 表名 [GROUP BY/HAVING/ORDER BY/LIMIT...]; 

    一般用于将其他表的数据插入到指定表,注意对应 

    2、单表更新 UPDATE 

    UPDATE 表名 SET 列名1=列值1 [,列名2=列值2, ...] [WHERE 条件];(如条件为 列名=列值 修改某一字段的值) 

    省略条件则更新所有记录该列的值 

    3、单表删除 DELETE 

    DELETE FROM 表名 [WHERE 条件]; 

    省略条件则默认删除该表所有记录(仅删除所有记录,不删除数据表);

    插入自动编号的字段时,号数为已有的最大号数+1,即使中间有空号数也是如此(如12356,插入记录后为123567)


    查看全部
  • 删除主键约束:

    ALTER TABLE 表名 DROP PRIMARY KEY(主键唯一,所以不用添加主键名称)

    删除唯一约束:

    ALTER TABLE 表名 DROP {INDEX|KEY} 列名

    那么查看唯一约束: SHOW INDEX FROM tb1_name(\G  是以网格形式呈现);

    删除外键约束:

    ALTER TABLE tb1_name DROP FOREIGN KEY 外键约束的名字

    那么查看外键约束名字: SHOW CREATE TABLE 表名;

     

    查看全部
  • 在已经建好的表中添加约束: 

    1, 主键约束: alter table 表名 add primary key (列名); 

    2,外键约束: alter table 表名 add foreign key (外键列) references 参照表 (参照列); 

    3, 唯一约束: alter table 表名 add unique key (列名) ; 

    4, 添加默认约束: alter table 表名alter 列名 set default 默认值; 

    5, 删除默认约束: alter table 表名 alter 列名 drop default;


    查看全部
  • 创建数据库:

    CREATE DATABASE t1;

    显示创建的数据库类型:

    SHOW CREATE DATABASE t1;

    创建某一类型的数据库:

    CREATE DATABASE IF NOT EXISTS t2 CHARACTER SET gbk;

    更改数据库类型:

    DATABASE t2 CHARACTER SET =utf8;

    显示现有数据库:

    SHOW DATABASES;

    删除t1:DROP DATABASE t1;

               DROP DATABASE IF EXISTS t1;

    显示告警:SHOW WARNINGS;

    查看全部
    0 采集 收起 来源:操作数据库

    2019-03-06

    1. 关键字、函数名称大写;表、数据库、字段小写。sql语句需以;结尾

    2. select version();

      select now();

      select user();

            *以上大写。

    查看全部

举报

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

微信扫码,参与3人拼团

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

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