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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
学习人数
综合评分9.67
950人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • //创建具有复合结构函数体的自定义函数 修改分隔符:DELEMITER 分隔符 Eg:DELIMITER // /* 将分隔符修改为 '//' */ 当函数体内需要执行的是多条语句时,要使用BEGIN...END语句 且当编写函数体内容的时候,需要使用 DELIMITER 关键字将分隔符先修改为别的,否则编写语句的时候写到 ';' 的时候会直接执行,导致函数编写失败 删除函数:DROP FUNCTION [IF EXISTS] function_name */ Eg: DELIMITER // CREATE FUNCTION ADD_USER(p_id SMALLINT,username VARCHAR(20)) RETURNS INT UNSIGNED BEGIN INSERT user(p_id,username) VALUES(p_id,username); RETURN LAST_INSERT_ID(); END
    查看全部
  • 1. 创建表: create table user( id smallint primary key not null auto_increment, name varchar(20), age smallint ); 2. show create table user; 查看创建表信息 show tables; 显示当前数据库所有的表 show columns from user; 显示列属性 或 discribe user; show indexes from user \G; 显示所有的索引,“\G” 表示按列显示 3. drop table user1; 删除表 4. 表添加一列: alter table user add age tinyint 表删除一列: alter table user drop age; 5. 添加主键约束:alter table user2 add primary key (id); 删除主键约束:alter table user2 drop primary key; 添加唯一约束: alter table user2 add unique key uni_key (name); 删除唯一约束: drop index uni_key on user2; 添加外键约束:alter table user2 add foreign key (age) references user(id); 添加默认约束:alter table user2 alter age set default 20; 删除默认约束:alter table user2 alter age drop default; 修改列属性:alter table user2 modify name varchar(30); 修改列名:alter table user2 change age age1 tinyint not null; 修改表名:alter tabler user2 rename user3 或者 rename table user3 to user2; 注:尽量不要修改列名和表名
    查看全部
    9 采集 收起 来源:小结

    2015-04-15

  • 因为老师没有写data.sql,所以自己写了一份,方便大家做笔记,本教程的所有笔记请查看:https://zhangjia.io/682.html 

    INSERT USERS(username,password,age,sex) VALUES('A','202cb962ac59075b964b07152d234b70','21','0'); INSERT USERS(username,password,age,sex) VALUES('B','c8ffe9a587b126f152ed3d89a146b445','23','0'); INSERT USERS(username,password,age,sex) VALUES('C','3def184ad8f4755ff269862ea77393dd','20','1'); INSERT USERS(username,password,age,sex) VALUES('D','ffeed84c7cb1ae7bf4ec4bd78275bb98','20','0'); INSERT USERS(username,password,age,sex) VALUES('E','a5481cd6d7517aa3fc6476dc7d9019ab','21','0'); INSERT USERS(username,password,age,sex) VALUES('F','42ae1544956fbe6e09242e6cd752444c','20','1'); INSERT USERS(username,password,age,sex) VALUES('G','9958517b2a48851d2ada1c76c88cfc56','22','0'); INSERT USERS(username,password,age,sex) VALUES('H','fe2610f1476e7027b25bd1dd132110c5','20','0'); INSERT USERS(username,password,age,sex) VALUES('I','0723dfd10075aee37a1804a728349dc3','20','1'); INSERT USERS(username,password,age,sex)

    查看全部
  • 插入记录(插入表中的行) INSERT tbl_name [字段(colume),...] VALUES(val,...); 省略字段后,values(记录内容必须按照表列顺序也就是字段顺序以逗号分隔,且插入内容一个不能少); 若不省略字段(可部分省略,省略部分记录自动为空),values(记录内容按照字段插入内容,写几个字段插入几个内容); 记录查找(多表查原理笛卡尔积): SELECT ecpr(表达式),...FROM tbl_name; ---------------------------- 插入记录:INSERT [INTO] tab_name [(col_name,...)] VALUES(val,) 若是省略插入的字段名,则不能省略要插入所以字段。INSERT tb1 VALUES('TOM',25,6782.12) 当我们仅仅是为某一些字段赋值时,就必须将字段写上。INSERT tb1(username,salary) VALUES('jOIN',3398.98) ================================ 完整插入记录:INSERT tb1 VALUES(Tom,25,7863.25); 部分插入记录:INSERT tb1(username,salary) VALUES('John',4500.69); 星号是字段的过滤:SELECT * FROM tb1; --------------------------------- 插入记录: INSERT [INTO] tbl_name [(col_name,...)] VALUES (val,...); 查找记录: SELECT expr,... FROM tbl_name; *字段的过滤,全部记录
    查看全部
  • 加密函数 1.MD5():信息摘要算法,为以后的Web页面做准备,尽量使用MD5() 举例 SELECT MD5('admin'); 2.PASSWORD():密码算法,通过PASSWORD()修改(重要用于MYSQL数据库)当前用户和其他用户的密码,修改客户端自己的密码 举例 SET PASSWORD=PASSWORD(‘dimitar’); 把密码修改成dimitar。
    查看全部
    9 采集 收起 来源:MySQL 加密函数

    2017-02-23

  • Memory的存储限制是由内存的大小来决定。 索引:普通索引、唯一索引、全文索引、btree索引、hash索引…… CSV存储引擎不支持索引。 BlackHole:黑洞引擎,写入的数据都会消失,一般用做数据复制的中继。 使用最广泛的两种存储引擎:MyISAM/InnoDB MyISAM:适用于事务的处理不多的情况。 InnoDB:适用于事务处理比较多,需要有外键支持的情况。
    查看全部
  • 1.内连接: 在MySQL中JOIN,INNER JOIN,CROSS JOIN是等价的 交集 仅显示A、B两表符合连接条件的记录。不符合连接条件的记录不显示。 例如:SELECT goods_id,goods_name,cate_name FROM tdb_goods INNER JOIN tdb_goods_cate ON tdb_goods.cate_id = tdb_goods_cate.cate_id; 2.外连接: LEFT JOIN左外连接;RIGHT JOIN右外连接 左外连接:LEFT OUTER JOIN:显示左表的全部记录及右表符合连接条件的记录。 右外连接:RIGHT OUTER JOIN:显示右表的全部记录及左表符合连接条件的记录。 如果使用LEFT JOIN,左表中存在一条记录A,在右表中没有找到相应的记录,则在返回结果用会出现一条只有记录A中的相应字段内容,其他字段都为NULL在记录(RIGHT JOIN类似). 内连接比外链接用的多一些 3.连接条件: 使用ON设定连接条件,也可以用WHERE代替 一般情况下使用 ON:设定连接条件 WHERE:进行结果集记录的过滤
    查看全部
    9 采集 收起 来源:内连接INNER JOIN

    2017-02-08

  • 初涉MySQL——操作数据库 一、数据库创建:CREATE 1、语法:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name. 2、DATABASE和SCHEMA是相同的,任选其一 3、IF NOT EXISTS:如果创建的数据库存在,则只是报出warning,不写会报错 4、CHRARCTER SET gbk:为表设置编码方式,如果不设置则用mysql默认的编码方式 二、查看数据库列表:SHOW 1、SHOW { DATABASE | SCHEMAS } [LIKE 'pattern' | WHERE expr] 2、SHOW CREATE DATABASE xx:显示xx数据库信息 三、数据库的修改:ALTER 1、修改数据库编码方式:ALTER { DATABASE | SCHEMAS } [db_name][DEFAULT] CHARACTER SET [=] charset_name 四、删除数据库:DROP 1、删除数据库:DROP { DATABASE | SCHEMAS } [IF EXISTS] db_name; mysql -uroot -proot prompt \D --修改mysql操作符为当前日期 show databases --展示所有数据库 create database if not exists t1 character set gbk; --创建数据库 show create database t1; --展示数据库t1的创建命令和编码形式 --修改数据库编码格式 alter database t2 character set =utf8; --删除数据库 drop database if exists t1; --展示警告信息 show warnings;
    查看全部
    9 采集 收起 来源:操作数据库

    2017-02-15

  • 创建日期时间自定义函数: create function f1() returns varchar(30) return date_format(now(),'%Y年%m月%d日 %H点:%i分:%s秒'); select f1(); DATE_FORMAT()函数在格式化日期格式时,应该是百分号在代表年、月、日的字母前面,字母的大小写不同,所表示格式也有所区别: select date_format(now(),'%Y-%m-%d'),其结果是: 2015-07-04 因此,各字母所表示的含义为: Y:2015 y:15 M:july m:07 D:4th d:04
    查看全部
  • 多表更新之一步到位 建表、查询、写入三合一: CREATE TABLE tdb_goods_brands ( brand_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, brand_name VARCHAR(40) NOT NULL ) SELECT brand_name FROM tdb_goods GROUP BY brand_name; 多表更新: UPDATE tdb_goods AS g INNER JOIN tdb_goods_brands AS b ON g.brand_name = b.brand_name SET g.brand_name = b.brand_id; 通过ALTER TABLE语句修改数据表结构 ALTER TABLE tdb_goods CHANGE goods_cate cate_id SMALLINT UNSIGNED NOT NULL, CHANGE brand_name brand_id SMALLINT UNSIGNED NOT NULL; PS: 外键,不一定是物理的外键,逻辑的外键也行,当然,物理外键更能保证数据的完整性和一致性。 数字类型的字段占用的空间更小,查询的效率也更高。
    查看全部
  • 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
    查看全部
  • @MySQL——存储过程简介 1、MySQL执行流程,通过存储过程,可以避免重复语法分和编译,提高执行效率 2、存储过程: (1)是SQL语句与控制语句的【预编译集合】,以【一个名称存储】作为【一个单元处理】 (2)优点: · 增强了语句的功能和灵活性:可以通过控制语句对流程进行控制和判断 · 实现较快的执行速度,只在【第一次调用时进行语法分析和编译】 ,以后直接从内存中得到结果 · 减少网络流量 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 记录操作:增,改,删,查 INSERT://增加记录,有三种方法。 INSERT [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr|DEFAULT},...),(...),... INSERT [INTO] tbl_name SET col_name={expr|DEFAULT},... INSERT [INTO] tbl_name [(col_name,...)] SELECT... UPDATE://更新数据 单表更新 UPDATE [LOW_PRIORITY][IGNORE] table_reference SET col_name1={expr1|DEFAULT},[col_name2={expr2|DEFAULT}]...[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_name|position} [ASC|DESC],...] 按某个字段进行分组,相同的只显示第一个 [HAVING where_conditon] 分组时,给出显示条件 [ORDER BY {col_name|expr|position} [ASC|DESC],...] 排序 [LIMIT {[offset,]row_count|row_count OFFSET offset}] 限制返回数量 ]
    查看全部
    9 采集 收起 来源:小结

    2016-07-21

  • 创建不带参数的存储过程: 1.创建没有参数的存储过程 CREATE PROCEDURE sp1() SELECT VERSION(); 2.调用存储过程 CALL sp_name([parameter[,...]]) - 带参数的存储过程的调用 CALL sp_name[()] - 不带参数的存储过程调用 CALL sp1; CALL sp1();
    查看全部
  • having 语句分组,用在group by后面追加条件,判断式中的字段是必须出现在前面select中的 或者是可以包含没有出现在前面查询中的字段的一个聚合函数count(),max()等等 [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是记录个数的,
    查看全部

举报

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

微信扫码,参与3人拼团

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

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