美文网首页
MySQL学习笔记

MySQL学习笔记

作者: 漫漫Maris123 | 来源:发表于2018-03-21 13:27 被阅读0次

一、 MySQL 介绍及安装

1. 相关定义和特点

数据(Database,简称DB):描述事物的基本符号。在现实生活中。任何可以用来描述事物属性的数字、文字、图像、声音等等,都可以看做数据。

数据库(Database Management System,简称DBMS):存放数据的仓库,数据库中的数据是按照一定的格式存放的。

MySQL:是现流行的开源、免费的关系型数据库。

MySQL特点:1.开源、免费;2.小巧;3.支持跨平台使用;4.功能强大,使用方便。

2. 安装

下载:MySQL官网下载安装包。安装和卸载用同一安装包

安装注意事项:端口 3306,编码 utf8

安装后需配置环境:环境变量—path路径—添加MySQL的bin目录

二、数据库基本操作

1. 登录数据库

CMD:   mysql -uroot -p回车输入密码;mysql -uroot -p123456 直接接密码会警告。

Navicat:  连接MySQL

2. 数据库模式定义语言DDL(Data Definition Language)

创建create

创建数据库:create database[if not exists] 数据库名;        

                      #默认字符集 utf8,排序规则 general_ci(模糊大小写)

创建数据表:  create table[if not exists] 表名(字段名1  列类型[属性]  [索引][注释]...)[表类型][表字符集][注释];

修改alter

修改表名:alter table 旧表名 rename as 新表名;

添加字段:alter table 表名 add 字段名 列类型[属性];

修改字段:alter table 表名 modify 字段名 列类型[属性];  alter table 表名 change 旧字段名 新字段名 列类型[属性];

删除字段:alter table 表名 drop 字段名

删除drop

删除数据库:drop database [if not exist] 数据库名;

删除数据表:drop table [if not exist]  表名;

查看和使用

查看数据库:show databases;

CMD切换数据表: use 数据库名;

查看数据表:show tables;

查看数据表结构:desc 表名;

3、数据操纵语言DML(Data Manipulation Language)

添加数据:insert into 表名 [( 字段1, 字段2, 字段3, ... ) ]  values (  '值1', '值2', '值3', ...)

      eg. 表间复制: insert into 新表名(字段) select 字段 from 旧表名;

修改数据:update 表名 set column_name=value [,column_name2=value2,... ]WHERE condition];

删除数据:delete from 表名 [where condition];     #针对table和view

                  truncate [table] 表名   #只针对table;更快;重设auto_increment计数器;对事务无影响

速度上说,drop> truncate > delete

4、数据查询语言标准语法DQL(Data QueryLanguage)

SELECT   [ALL| DISTINCT]

  {  *|  table.*| [ table.field1[ as  alias1][, table.field2[as  alias2]][,…]] }      #*=all

  FROM  table_name  [as  table_alias  ]                    #as取别名,对数据无影响

  [left|out|inner  join  table_name2]      

           #联合查询select 字段1,字段2,...from 表1 inner|rig*|lef* join 表2 on 表1.字段x=表2.字段y;

[WHERE  …]                  #like: %匹配一或多个字符,_匹配单个字符;A in (a1,a2,a3)                [GROUP BY …]           #分组统计

[HAVING …]                #分组后筛选,与group by一起使用

[ ORDER BY…]          #order by 字段1 desc[,字段2 asc]。 默认是asc

[LIMIT  {   [offset,] row_count    |   row_countOFFSET offset   }] ;    

                                     #limit[m,]n 或 limit n offset m     返回m+1条到n条记录,m默认为0

[]   括号代表可选的;{}   括号代表必须的;#MySQL语句中的注释符,也可以用/*该处为注释*/

四、视图

1、含义:一个虚拟表,是从数据库中一个或者多个表中导出来的表。

2、作用:简单性、安全性、逻辑数据独立性

3、语法

创建视图   create view 视图名 as select 字段1 [,字段2....] from 表名;

create view 视图名(新字段名,...) as select 原字段名,... from 表名;   #视图自定义列名

查看视图

select * from 视图名;     #查看视图详细信息

desc  视图名;                #查看视图表结构

show table status like 视图名;  #查看视图表状态

show create view 视图名;        #查看视图创建信息 

修改视图:alter view 视图名 as  select 字段1 [,字段2....] from 表名;

更新视图数据: 

更新视图数据会同步更新原表。不建议视图更新数据,最好回原表更新。因为视图仅用于查看

删除视图:drop 视图名1 [,视图名2,...] [if exists]           #需要有drop权限

四、事务

1、定义:用户定义的一个数据库操作序列。这些操作要么全做,要不全部做,例如银行转账。

2、ACID原则:

原子性(Atomic)  最小单元,保证多个操作作为一个处理过程同生共死;

一致性(consist)  如有步骤失败,整个过程回滚(rollback);所有步骤成功,整个过程提交(commit);

隔离性(Isolated)  事务之间相互独立,互不影响;

持久性(Durable)   事务成功提交后,会被永久存储下来,状态不再改变。

3、MySQL事务实现步骤

五、触发器

1、定义:在某种操作执行的同时触发另一种操作

2、触发器创建语法四要素

监视地点(table);

监视事件(insert/update/delete);

触发时间(after/before);

触发事件(insert/update/delete)

3、触发器语法

create trigger <触发器名称>  

{ before| after}  

{ insert| update| delete}  

on 表名  

for each row

begin

<触发器SQL语句>             #update 表名2 set count=count+1,modify_date-now();

end;  

# 触发器删除:    drop Trigger 触发器名称

#查看触发器和视图信息: 在information_schema

六、日期函数和日期格式化

1、日期函数

当前日期和时间   now()   

当前日期       Curdate()

当前日期的未来5年  date_add(date,interval expir unit)     

                                #例 date_add(Curdate(),interval 5 year)

当月最后一天     last_day(curdate())

当月第一天         date_add(Curdate(),interval -day(curdate)+day)     

2、日期格式化

Date_Format(date,format)

Y完整年    y取后两位年   M英语月份    m数字型月   

D英语日   d数字型日   H 24进制时   h 12进制时    i分钟     s秒

#例     Date_Format('2017-11-11','%Y-%m')            Date_Format('2017-11-11','%Y/%m')

七、数据库备份和还原

1、数据库备份(三选一)

a、Navicat数据库右键 “转储”;  

b、从MySQL/data文件夹中拷贝相关数据库;

c、CMD命令行:mysqldump -h 主机名  -u 用户名  -p [option] 数据库名 [表1,....] >预存路径

                          #例mysqldump - u root -p 数据库名 >路径;        

                          #查找mysqldump帮助信息(关于option)      mysqldump -?

2、数据库还原

a、Source语法: source  /路径/数据库(表)名.sql       #要先创建或选择数据库

b、CMD命令行:mysql -u root -p 数据库(表)名    <路径/数据库(表)名.sql

c、Navicat数据库右键 “运行MySQL文件”;

3、数据导出

a、cmd命令行:select * into outfile  '路径/数据表名.sql'  from 表名;         

                           #如已存在输出的文件,会报错

b、Navicat设计表-导出向导;

4、数据导入

a、load data infile '路径/数据表名.sql'   into table 表名;        #要先有表结构

b、Navicat设计表-导入向导;

                   

相关文章

网友评论

      本文标题:MySQL学习笔记

      本文链接:https://www.haomeiwen.com/subject/esybqftx.html