MySQL学习笔记

一、 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设计表-导入向导;





                   

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容