为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
与MySQL的零距离接触_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • INSERT [INTO] tbl_name SET col_name={exprDEFAULT},...//可以使用子查询 INSERT [INTO] tbl_name [(col_name,...)] SELECT ...//将查询结果写入数据表 Eg: INSERT INTO table_name [(column_name)] SELECT column_name2 FROM table_name2 GROUP BY column_name3; CREATE TABLE IF NOT EXISTS tdb_goods_cates( cate_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, cate_name VARCHAR(40) NOT NULL ); SELECT goods_cate FROM tdb_goods GROUP BY goods_cate; //列出所有品牌cate DESC tdb_goods_cates; //显示出tdb_goods_cates表中的项目名称,与SHOW COLUMNS FROM tdb_goods_cates;作用相同 INSERT tdb_goods_cates(cate_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;//在表tdb_goods_cates中插入tdb_goods中的cate
    查看全部
  • 由[NOT] IN/EXISTS引发的子查询 使用[NOT]IN的子查询: 语法结构:operand comparison_operator[NOT]IN(subquery) =ANY 等价于 IN !=ALL或<>ANY等价于NOT IN 使用[NOT]EXIST引发的子查询 (不常用)
    查看全部
  • 使用比较运算符的子查询: (1)SELECT AVG( price ) FROM goods; (2)SELECT ROUND( AVG(price),2 ); // 它是个聚合函数——AVG求平均值进行四舍五入,保留 2 位小数 (3)SELECT id,name,price FROM goods WHERE price >= (SELECT ROUND(AVG(price),2) FROM goods); // 子查询方式 (4)在子查询时的关键字ANY / SOME / ALL select goods_name,goods_price from tdb_goods where goods_price >= ANY (select goods_price from tdb_goods where goods_cate='超级本'); 注意: 1. 子查询只能返回一行记录,不然会报错。 2. 子查询还可以包含子查询。 关键字 ANY SOME ALL >、>= 最小值 最小值 最大值 <、<= 最大值 最大值 最小值 = 任意值 任意值 <>、!= 任意值
    查看全部
  • 子查询是指出现在【其他SQL语句内】的SELECT子句 eg: SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); 其中,SELECT * FROM t1 ...称为Outer Query[外查询](或者Outer Statement) SELECT column1 FROM t2 称为Sub Query[子查询] 子查询指嵌套在【查询内部】,且必须始终出现在【圆括号内】。 子查询可以包含多个关键字或者条件,如DISTINCT,GROUP BY,ORDER BY,LIMIT,函数等 子查询的外层查询可以是:【SELECT,INSERT,UPDATE,SET或DO】 子查询可以返回值:标量、一行、一列或者子查询
    查看全部
  • 我遇到的问题是不管怎么删除数据表,插入数据,插入中文时,显示的都是问号, 已找到解决办法: 第一步:SHOW CREATE DATABASE XXXX;(我的是SHOW CREATE DATABASE test;) 查看你创建的 数据库是否是 /*!40100 DEFAULT CHARACTER SET utf8*/ 如果不是,删除这个数据库,再建过就OK! 如果是,就第二步! 第二步: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/ 总结:当数据库和数据表的编码不一样时,可能插入中文会出现乱码!或这问号, 原因都可以通过第一,二,三步来逐一排除!
    查看全部
    1 采集 收起 来源:数据准备

    2018-03-22

  • 记录操作:增,改,删,查 INSERT://增加记录,有三种方法。 INSERT [INTO] tbl_name [(col_name,...)] {VALUES VALUE} ({exprDEFAULT},...),(...),... INSERT [INTO] tbl_name SET col_name={exprDEFAULT},... INSERT [INTO] tbl_name [(col_name,...)] SELECT... UPDATE://更新数据 单表更新 UPDATE [LOW_PRIORITY][IGNORE] table_reference SET col_name1={expr1DEFAULT},[col_name2={expr2DEFAULT}]...[WHERE where_condition] 多表更新 DELETE : //删除数据 单表删除 DELETE FROM tbl_name [WHERE where_condition} 多表删除 SELECT: //查询 SELECT select_expr [,select expr2...] 只查找某一个函数或表达式 [ FROM table_references 查询表名 [WHERE where_conditon] 查询条件 [GROUP BY {col_nameposition} [ASCDESC],...] 按某个字段进行分组,相同的只显示第一个 [HAVING where_conditon] 分组时,给出显示条件 [ORDER BY {col_nameexprposition} [ASCDESC],...] 排序 [LIMIT {[offset,]row_countrow_count OFFSET offset}] 限制返回数量 ]
    查看全部
    0 采集 收起 来源:小结

    2016-08-23

  • 限制查询结果返回数量 [LIMIT{[offset,]row_countrow_count OFFSET offset}] eg: SELECT * FROM users LIMIT 2; // 从第一条开始(第一个为0),返回两条 SELECT * FROM users LIMIT 2,3 ;//从第三条开始(第一个为0),返回三条 第三种insert,数据从一个表插入到另一个表: INSERT table_name(column_name) SELECT ... eg: INSERT test SELECT username FROM users WHERE age >=30; // 字段不匹配提示 INSERT test(username) SELECT username FROM users WHERE age >=30;
    查看全部
  • @MySQL——order by语句对查询结果排序 1、对查询结果进行排序:[ORDER BY [col_name expr position } [ASCDESC],...]elect * from user order by id desc; 2、可以同时按多条字段进行排序,规则是先按前面的字段排,在基础上再按后面字段排。 3、如:SELECT * FROM users ORDER BY age,id DESC; 先按照age排序,如果age有重复的,重复的字段里按id排序。
    查看全部
  • 分组条件: 利用GROUP BY 分组 添加分组条件 [HAVING where_condition] 要么为一个聚合函数,要么出现在SELECT 条件中。 [HAVING when where_condition] SELECT sex FROM users GROUP BY 1 HAVING age > 35; //有错 SELECT sex, age FROM users GROUP BY 1 HAVING age > 35; SELECT sex FROM users GROUP BY 1 HAVING count(id) >= 2; (这条指令,指按照sex分组,分成了两组sex=0和sex=NULL,条件id数大于2的留下显示,显然sex=0个数有8>2故留下,而sex=NULL个数为1,不满足条件,故不显示。如果条件改成count(id)>=1,则会显示sex为0和NULL两个分组。) 聚合函数永远只有一个返回结果 count是记录个数的,
    查看全部
  • GROUP BY语句对查询结果分组 查询结果分组,(多个分组用“,”隔开); [group by{col_name/posittion}[ASC/DESC]....] SELECT*FROM users GROUP BY sex; SELECT*FROM users GROUP BY 1;(这里的一表示查询的第一个字段,这里查询所有,第一个字段就是id,就就是会按照字段进行分组)
    查看全部
  • WHERE条件: 条件表达式 对记录进行过滤, 如果没有指定WHERE子句,则显示所有记录。 在WHERE表达式中,可以使用MySQL支持的函数或运算符。
    查看全部
  • 查找记录 SELECT select_expr [,select expr2...] 只查找某一个函数或表达式 [ FROM table_references 查询表名 [WHERE where_conditon] 查询条件 [GROUP BY {col_nameposition} [ASCDESC],...] 按某个字段进行分组,相同的只显示第一个 [HAVING where_conditon] 分组时,给出显示条件 [ORDER BY {col_nameexprposition} [ASCDESC],...] 排序 [LIMIT {[offset,]row_countrow_count OFFSET offset}] 限制返回数量 ] 查询表达式 每一个表达式表示想要的一列,必须至少有一个 多个列之间以英文逗号分隔 * 表示所有列 tbl_name.*可以表示命名表的所有列 查询表达式可以使用[As]alias_name为其赋予别名 别名可用于GROUP BY,ORDRE BY或HAVING子句 说明: 1、查询表达式的顺序会影响结果顺序 每个表达式表示想要的一列,必须有至少一个 多个列直接以英文逗号分隔 星号*表示所有列 2、使用tbl_name.col_name来表示列记录,这多表查询时可以区别开同名的列 3、使用[AS] alias_name为其赋予别名,别名可以用于GROUP BY、ORDER BY或HAVING子句 eg:SELECT id AS userId,username AS uname FROM users;
    查看全部
  • 删除记录:<br><br> DELETE FROM table_name [WHERE where_condition] 不指定条件,则该表全部记录被删除<br><br> 当删除某一条记录再添加一条新记录的时候,序号为原有最大序号+1<br> 例:DELETE FROM users ;<br> DELETE FROM users WHERE id=1;
    查看全部
  • @MySQL——表单更新记录UPDATE UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={exp1DEFAULT}[,col_name2=...][WHERE where_condition]; 例子: 不指定位置:UPDATE users set age = age + 5 - id,sex = 0; //使表里所有记录的age加5并且减去当前id值 指定位置: UPDATE users set age = age+ + 10 WHERE id % 2=0; //取id为偶数的位置
    查看全部
  • @MySQL——插入记录SET-SELECT 第一种: insert [column_name]values(...)[,(...),(....)];--比较常用,可以一次性插入多条记录,并且可以输入表达式甚至是函数,但是无法进行子查询。 第二种: insert tb_name set column_name={exprdefault};--可以进行子查询,但是只能插入一条记录。 第三种: insert table_name [(colname...)] select.....--这种方法就是把查询到的结果插入到指定数据表中。
    查看全部

举报

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

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