Mysql入门三十分钟MySQL快速入门(图解)
《Mysql入门三十分钟MySQL快速入门(图解)》要点: MYSQL必读一、MySQL安装 MYSQL必读MySQL的下载 MYSQL必读http://dev.mysql.com/downloads/mysql/ MYSQL必读MySQL版本选择 MYSQL必读 MYSQL必读MySQL功能自定义选择安装 MYSQL必读功能自定义选择 MYSQL必读 MYSQL必读路径自定义选择 MYSQL必读 MYSQL必读设置root用户暗码 MYSQL必读 MYSQL必读安装完成,点击MySQL Workbench 6.3 CE进入MySQL客户端 MYSQL必读二、SQL基础 MYSQL必读SQL语句分类 MYSQL必读1.DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象.常用的语句关键字主要包括create/drop/alter MYSQL必读2.DML(Data Manipulation Language)语句:数据把持语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性.常用的语句关键字主要包括 insert/delete/update/select等 MYSQL必读3.DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句.这些语句定义了数据库、表、字段、用户的访问权限和平安级别.主要的语句关键字包括grant/revoke等 MYSQL必读DDL语句(涉及表的定义、结构的修改) MYSQL必读一、create语句 MYSQL必读 MYSQL必读Query Ok代表语句执行成功 MYSQL必读1 row affected代表数据库一行收到影响 MYSQL必读0.01 sec代表操作执行的时间 MYSQL必读
create table student(
SID int not null auto_increment,sNo int,sName varchar(50) not null,primary key(SID)
);
MYSQL必读1.查看系统中都存在哪些数据库(show databases;) MYSQL必读2.在查看系统中已有的数据库后,可以用(use dbname)选择对应的数据库 MYSQL必读3.在选择对应的数据库后,查询该数据库下面的所有的表(show tables) MYSQL必读二、删除数据库 MYSQL必读删除数据库的语法:drop databse dbname; MYSQL必读三、创建表 MYSQL必读语法:create table tablename(column_name_1 column_type_1 constraints,column_name_2 column_type2 constrationts) MYSQL必读mysql的表名是以目录形式存储在磁盘上,表名的字符可以是任何目录名允许的字符. MYSQL必读column_name是列名 MYSQL必读column_type是列的数据类型 MYSQL必读constrationts是列的约束条件 MYSQL必读 MYSQL必读1.查看表定义:desc tablename MYSQL必读2.查看创建表的SQL语句:show create table tablename MYSQL必读四、删除表 MYSQL必读删除表的语法:drop table tablename; MYSQL必读五、修改表 MYSQL必读aleter 语法 | 说明 MYSQL必读
---|---
alter table tablename modify columnname newColumnType | 修改表字段的类型(==modify 不能更改字段名称==)
alter table tablename add newColumnname newColumnType| 增加表字段
alter table tablename drop oldCloumnname|删除表字段
alter table tablename change oldColumname newColumnname newColumntype|修改字段的名称及类型
alter table tablename rename (to) newtablename|修改表名称
MYSQL必读修改字段的排列顺序 MYSQL必读在alter的语法后面都有[firstafter columnname]可选项 MYSQL必读
alter table user add address varchar(20) first ;
alter table user add age int after name ;
MYSQL必读DML(对数据库表记录进行操作,增(insert)删(delete)改(update)查(select)) MYSQL必读1.insert语句 MYSQL必读语法: MYSQL必读插入一条:insert into tablename(columnname1,columnname2...)values(val1,val2...); MYSQL必读插入多条:insert into tablename(columnname1,val2...),(val1,val2...); MYSQL必读2.update语句 MYSQL必读语法:update tablename set columnname=value [where condition] MYSQL必读如果使用MySQL Workbench,update语句不加where条件的会执行错误,需要如下图设置取消设置: MYSQL必读 MYSQL必读-3.delete语句 MYSQL必读语法:delete from tablename where condition MYSQL必读-4.select语句 MYSQL必读语法:select * from tablename [where condition] MYSQL必读5.表连接 MYSQL必读1.内连接(仅选出两张表中互相匹配的数据) MYSQL必读
select cno,cname,sname from student inner join course on cno=sno;
select cno,sname from student,course where cno=sno;
MYSQL必读2.外连接 MYSQL必读外连接又区分: MYSQL必读1.左连接(left join):包含左边表的所有记录,右边没有的为Null MYSQL必读2.右连接(right join):包含右边表的所有记录,左边没有的为null MYSQL必读6.子查询 MYSQL必读-7.记录联合 MYSQL必读语法: MYSQL必读
select * from t1 union all select * from t2;
select * from t1 union select * from t2;
MYSQL必读union all与union的区别: MYSQL必读union all是把结果集直接合并在一起,而union是将union all后的结果进行一次distinct,去除重复后的结果 MYSQL必读DCL语句(DCL语句主要是dba用来管理系统中的对象权限) MYSQL必读grant与revoke MYSQL必读三、MySQL支持的数据类型 MYSQL必读数值类型 MYSQL必读MySQL支持类型后面的小括号指定显示宽度,例如:int(5)表示当数值宽度小于5的时候在数字前面填满宽度,如果不显示指定宽度则默认为int(11).如果插入的数据大于这个数值宽度,对实际的插入值是没有影响的,是依照int类型的实际大小进行的. MYSQL必读
create table valuetype(
age int,age1 int
)
insert into valuetype(age,age1)values(1,2);//这时候数据库就显示1
alter table valuetype modify age int zerofill;//这时候数据库就显示'0000000001'
MYSQL必读数据插入bit类型字段时,首先转换为二进制,如果位数允许,将插入成功,如果位数小于实际的位置,则插入失败. MYSQL必读日期时间类型 MYSQL必读mysql里面获取当前时间为now().mssql获取当前时间为getdate() MYSQL必读timestamp,支持的范围非常小,从1970-2038年,timestamp受时区的影响 MYSQL必读
create table timestamptest(
tp timestamp)
MYSQL必读系统会自动给tp赋予默认值current_timestamp(系统日期),但是mysql只给第一个timestamp设置默认值,如果有第二个timestamp类型,则默认值设置为0 MYSQL必读字符串类型 MYSQL必读1.char与varchar类型的区别: MYSQL必读char列最后的空格已经删除,而varchar保留空格 MYSQL必读四、MySQL中运算符 MYSQL必读算术运算符 MYSQL必读比较运算符,满足返回1,否则返回0 MYSQL必读逻辑运算符(布尔运算符) MYSQL必读位运算符 MYSQL必读运算符优先级,大多情况下使用()进行操作 MYSQL必读五、常用函数 MYSQL必读字符串函数 MYSQL必读数值函数 MYSQL必读日期和时间函数 MYSQL必读流程函数 MYSQL必读其他函数 MYSQL必读六、选择合适的数据类型 MYSQL必读char与varchar MYSQL必读在Innodb存储引擎中,建议使用varchar类型.对于Innodb数据表,内部的行存储格式没有区分固定长度和可变长度列,因此固定长度列的性能不一定比不可变长度的性能好. MYSQL必读Text与blob MYSQL必读一般在保存少量字符串的时候,我们会选择char或者varchar,而在保存较大文本的时候,通常会选择使用text或者blob.两者的区别:text只能保存字符数据,比如日志.blob能保存二进制数据,比如照片. MYSQL必读浮点数与定点数 MYSQL必读在MySQL中,decimal或者(numberic)用来表示定点数 MYSQL必读日期类型的选择 MYSQL必读date/time/datetime/timestamp MYSQL必读七、索引的设计和使用 MYSQL必读索引概述 MYSQL必读索引是数据库中用来提高性能的最常用工具.在MySQL中,MyISAM与Innodb存储引擎的表默认创建的都是Btree索引. MYSQL必读1.索引的创建 MYSQL必读
create table indexTest(
id int not null auto_increment,memberid int not null,createtime datetime not null default current_timestamp,primary key (id)
)
alter table indextest add orderserial varchar(50) not null;
create unique index IX_orderserial on indexTest(orderserial);
MYSQL必读insert into indextest (memberid,createtime,orderserial)values(112123,'2016-08-14','sz121213') MYSQL必读语法:create [uniquefulltextspatial] index index_name on tablename(columname) MYSQL必读2.设计索引的原则 MYSQL必读1.最合适的索引列是出现在where子句中列,或连接子句中指定的列,而不是出现在select关键字后面的选择列表的列 MYSQL必读2.使用唯一索引,需要考虑列中某个值得分布,如果索引列种的基数越大,则索引的效果越好.举个例子:订单号就可以设置唯一索引,因为订单号的不一样.而对于rowstatus就无须了,因为rowstatus要么是有效要么是无效.这样的筛选出的范围还是很多,没有意义 MYSQL必读3.不要过度索引.因为所有也要占用额外的磁盘空间,如果一个索引很少使用,那么会不必要的减缓表的修改速度 MYSQL必读八、视图 MYSQL必读视图(View) MYSQL必读定义:视图是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的,视图并不是在数据库中实际存在. MYSQL必读优势: MYSQL必读1.简单,用户完全不需要关心后面对应的表的结构/关联条件和筛选条件.对用户来说已经是过滤好的符合条件的结果集 MYSQL必读2.平安,使用视图的用户只能访问他们被允许查询的结果集 MYSQL必读3.数据独立,一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响. MYSQL必读语法: MYSQL必读
create or replace view index_view as
select * from indextest
MYSQL必读1.创建create [or replace] view viewName as select ... MYSQL必读2.查询 select * from 视图名称 MYSQL必读3.展示视图 show tables; MYSQL必读4.删除视图 drop view viewname MYSQL必读九、存储过程和函数 MYSQL必读一、存储过程(store procedure)和函数 MYSQL必读存储过程和函数是事先经过编译并存在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的 MYSQL必读语法: MYSQL必读
create database finance;//创建finance数据库
use finance;
create table orders(
orderId bigint not null auto_increment,memberId int not null default 0,serialNumber varchar(50) not null default '',amount decimal(18,2) not null default 0,createTime datetime not null default current_timestamp,primary key (orderid)
)//创建orders订单表
insert into orders (memberId,serialNumber,amount) values(6561121,'sz12234222',5),(233444,'ys1652233',10)//插入测试数据
delimiter &
create procedure orders_serial(in serial varchar(50))
reads sql data
begin
select * from orders
where serialNumber=serial;
end &
MYSQL必读注释:delimiter $$命令就是将语句的结束符从分号;修改成其他符号,这里指的是$$为结尾.这样在number后面的分号就不会认为结束. MYSQL必读1.调用存储过程 MYSQL必读
call orders_serial('sz12234222')
MYSQL必读2.存储过程的好处 MYSQL必读逻辑封装在数据库端,调用者不需要了解中间的处理逻辑,一旦调用逻辑发生变化,只需要修改存储过程即可,而对调用者的程序完全没有影响. MYSQL必读3.删除存储过程 MYSQL必读
drop procedure if exists orders_serial
//if exists可选
MYSQL必读4.查看存储过程差状态 MYSQL必读
show procedure status like 'orders_serial'
MYSQL必读5.查询存储过程的定义 MYSQL必读
show create procedure orders_serial
MYSQL必读二、存储过程变量的使用 MYSQL必读存储过程可以使用变量,并且在MySQL5.1版本后,不区分大小写 MYSQL必读1.变量的定义 MYSQL必读变量的作用域只能在begin...end块中,可以嵌套在块中 MYSQL必读declare currentTime date; MYSQL必读2.变量的赋值 MYSQL必读
set currentTime=now();//直接赋值
select XX into currentTime from XX;//也可以通过sql语句进行赋值
MYSQL必读3.定义条件和处理 MYSQL必读
declare handler_type handler for contidtion_value;
MYSQL必读handler_type: MYSQL必读1.continue; MYSQL必读condition_value: MYSQL必读1.sqlstate MYSQL必读eg: declare continue handler for sqlstate '2' set @x=1; MYSQL必读三、光标的使用 MYSQL必读在存储过程和函数中,可以使用光标对结果集进行循环处理,光标的使用包含光标的声明: open、fetch、close MYSQL必读定义: MYSQL必读declare cur_id cursor for select * from orders; MYSQL必读四、事件调度器 MYSQL必读事件调度器是MySQL5.1后面新增的功能,可以将数据库依照自定义时间周期触发某种操作.数据库默认操作是关闭的.需要打开 MYSQL必读
create event x
on schedule
every 5 second
do
insert into orders (memberId,'222',5)
MYSQL必读
set global event_scheduler =1//打开调度器
alter event x disable;//禁用事件调度器
drop event x;//删除事件调度器
MYSQL必读十、 触发器 MYSQL必读触发器 MYSQL必读触发器是在5.02版本后支持的,触发器是与表有关的数据库对象,在满足条件时触发,并执行触发器中定义的语句集合.可以帮忙应用在数据库端确保数据的完整性 MYSQL必读
drop trigger orderlog
delimiter $
create trigger orderlog
after insert on orders for each row
begin
insert into orderslog (content) values(new.serialNumber);
end
insert into orders (memberId,5)
MYSQL必读解释:上面描述的是创建一个触发器,当往订单表中插入数据之后,在订单日志表插入一条记录.使用old和new来引用触发器发生变化的记录内容,目前只支出行级触发,不支持语句级触发 MYSQL必读触发器执行的顺序 MYSQL必读
before insertbefore updateafter update
MYSQL必读十一、 事务控制和锁定语句 MYSQL必读MySQL存储引擎的事务说明 MYSQL必读1.Lock Table与Unlock Table MYSQL必读语法: MYSQL必读use finance; MYSQL必读如果某个进程(session1)lock定了表,那么其他的进程(session2)可以查询,但是不能进行更新操作,直到第一个进程释放了锁 MYSQL必读2.事务控制 MYSQL必读十二、总结 MYSQL必读很高兴您能阅读到这里,可能在三十分钟很难吸收这么多的知识,这篇文章也是我之前学习MySQL笔记整合的.这篇文章也是理论偏多,对于其中比较比较难理解知识点写些Demo,权当个人理解,如有不足的地方,请您指出.如果对您有所赞助,请点个赞! 编程之家PHP培训学院每天发布《Mysql入门三十分钟MySQL快速入门(图解)》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |