MySQL入门

MySQL入门





一. MySQL简介

1. MySQL概述

  MySQL是数据库管理系统(Database Management System,DBMS),其优点为体积小、运行速度快、总体成本低。


2. MySQL特点

(1)可移值性强
  使用C和C++语言开发。


(2)运行速度快
  使用了极快的“B树”磁盘表(MyISAM)和索引压缩;
  使用优化的“单扫描多连接”;
  SQL函数使用高度优化的类库实现。


(3)支持多平台
  支持超过20种系统开发平台,在不同平台上容易进行移植。


(4)支持各种开发语言
  为它们提供API函数,包括C、C++、Java、Perl、PHP、Python、Ruby等语言。


(5)提供多种存储器引擎
  适用于不同的应用场合。


(6)功能强大
  能够有效应用于任何数据库应用系统。


(7)安全度高
  灵活和安全的权限和密码系统,允许基于主机的验证;
  连接到服务器时,所有的密码传输均采用加密形式;
  网络化,可以在Internet上的任何地方访问。


(8)价格低廉
  MySQL采用GPL许可。


3. MySQL工作原理

  通常一个完整的数据库系统由数据库(DB)、数据库管理系统(DBMS)、数据库应用程序、用户和硬件组成。


4. DBMS主要功能

(1) 数据定义
  DBMS提供了数据定义语言(Data Definition Language,DDL)。通过DDL可以方便地定义数据库中的各种对象。


(2) 数据操纵
  DBMS提供了数据操纵语言(Data Manipulation Language,DML)。通过DML可以实现数据库中数据的基本操作,例如向数据表中插入一行数据、修改数据表的数据、删除数据表中的行、查询数据表中的数据等。


(3) 安全控制和并发控制
  DBMS提供了数据控制语言(Data Control Language,DCL)。通过DCL可以控制什么情况下谁可以执行什么样的数据操作。


(4) 数据库备份与恢复
  DBMS提供了备份数据库和恢复数据库的功能。


二. MySQL安装

详见博客:https://blog.csdn.net/m0_59188912/article/details/147044376


三. MySQL使用

1. 安装Navicat

Navicat 12绿色版本详见:https://download.csdn.net/download/m0_59188912/90576384


2. 创建语法create

(1) 创建数据库语法

create  database  数据库名;


(2) 创建数据表语法(前提:use 数据库名)

create  table  表名(字段名1  数据类型, 字段名2  数据类型,...... );


(3) 创建带有约束的数据表

① 主键约束

create  table  表名(字段名1  数据类型  primary key);

或者

create  table  表名(字段名1  数据类型,[constraint  <约束名>]  primary key(字段名));

联合主键:

create  table  表名(字段名1  数据类型,字段名2  数据类型,[constraint  <约束名>]  primary key(字段名1, 字段名2));

注:有时会在主键约束后添加auto_increment自动编码


② 唯一约束

create  table  表名(字段名1  数据类型   unique);

或者

create  table  表名(字段名1  数据类型,[constraint  <唯一约束名>]  unique(字段名));


③ 非空约束

create  table  表名(字段名1  数据类型  not null);


④ 默认值约束

create  table  表名(字段名1  数据类型  default  默认值);

注意:字符类型的默认值必须用' '(单引号)括起来


⑤ 外键约束

create  table  表名(字段名1  数据类型,   [constraint  <外键约束名>]  foreign  key(字段名)  references  外键主表名(主键字段名));


(4) 复制现有表

create  table  表名  like   被复制表名;(该语句仅复制表名结构等,不复制内容)
create  table  表名  as  (select  *  from  被复制表名);(该语句可复制表结构和内容)


3. 修改语法alter

(1) 修改数据表结构
① 数据表重命名

alter  table  <旧表名>  rename  <新表名> ;


② 修改字段名

alter  table  <表名>  change  <原字段名>  <新字段名>  <数据类型> ;


③ 修改字段数据类型

alter  table  <表名>  modify  <字段名>  <新数据类型> ;


④ 添加新字段

alter  table  <表名>  add  <新字段名>  <数据类型>  [约束条件]  [first  |  after  <已存在字段名>] ;


⑤ 修改字段的排列位置

alter  table  <表名>  modify  <字段名>  <数据类型>   [first  |  after  <已存在字段名>] ;


⑥ 删除数据表中的字段

alter  table  <表名>  drop  <字段名> ;


(2) 修改数据表约束
① 添加主键约束

alter  table  <表名>  add  constraint  约束名  primary key(字段名) ;
alter  table  <表名>  modify  字段名 数据类型  primary key auto_increment ;

如果已设置主键未添加自动编号的:

alter  table  <表名>  modify  字段名 数据类型  auto_increment ;


② 添加唯一约束

alter  table  <表名>  add  constraint  约束名  unique(字段名) ;


③ 添加非空约束

alter  table  <表名>  modify  字段名  数据类型  not null ;


④ 添加默认值约束

alter  table <表名>  alter  字段名  set  default ‘默认值’;


⑤ 添加外键约束

alter  table  <表名>  add  constraint  约束名  foreign key(字段名)  references <主表名>(主表主键字段名) ;


⑥ 删除主键约束

alter  table  <表名>  drop  primary key ;


⑦ 删除外键约束

alter  table  <表名>  drop  foreign key  <外键约束名>;


⑧ 删除默认值约束

alter  table  <表名>  alter  <删除默认值约束的字段名>  drop  default ;


⑨ 删除自动增长

alter  table  <表名>  modify  字段名 数据类型 ;


4. 删除语法drop

(1) 删除数据库

drop  database  数据库名 ;


(2) 删除数据表

drop  table  表名 ;


(3) 删除唯一约束

drop  index  <唯一约束名>  on  <表名> ;

注意:唯一约束创建后,系统会默认将其保存到索引中。因此,删除唯一约束就是删除索引,通过show index from <表名>查看索引名。


5. 数据库编码

(1) 查看数据库编码格式

show  variables  like  'character_set_database' ;


(2) 查看数据表的编码格式

show  create  table  <表名> ;


(3) 创建数据库时指定数据库的字符集

create  database  <数据库名>  character  set  utf8 ;


(4) 创建数据表时指定数据表的编码格式

create  table  表名 (字段名,数据类型,......) default  charset = utf8 ;


(5) 修改数据库的编码格式

alter  database  <数据库名>  character  set  utf8 ;


(6) 修改数据表格编码格式

alter  table  <表名>  character  set  utf8;


(7) 修改字段编码格式

alter  table  <表名>  change  <字段名>  <字段名>  <数据类型>  character  set  utf8;


四. MySQL使用进阶

  前面的一些数据库语法是按创建,修改,删除这三个功能结构梳理的,比较适合临时忘记MySQL语句时进行查阅。

  下面将进行以创建并使用和维护数据库这一工作流程进行数据库语法整理:


1. 创建数据库语法:

(1) 创建数据库

create database 库名;


(2) 删除数据库

drop database 库名;


(3) 显示所有数据库

show databases;


(4) 使用数据库

use 库名;


2. 在数据库中创建表语法:

(1) 基础语法:

create table 表名(字段名1 数据类型1 ,字段名2 字段类型2 ,......);


(2) 创建带有约束的数据表

① 主键约束

create  table  表名(字段名1  数据类型  primary key);

或者

create  table  表名(字段名1  数据类型,[constraint  <约束名>]  primary key(字段名));

联合主键:

create  table  表名(字段名1  数据类型,字段名2  数据类型,[constraint  <约束名>]  primary key(字段名1, 字段名2));

注:有时会在主键约束后添加auto_increment自动编码


② 唯一约束

create  table  表名(字段名1  数据类型   unique);

或者

create  table  表名(字段名1  数据类型,[constraint  <唯一约束名>]  unique(字段名));


③ 非空约束

create  table  表名(字段名1  数据类型  not null);


④ 默认值约束

create  table  表名(字段名1  数据类型  default  默认值);

注意:字符类型的默认值必须用' '(单引号)括起来


⑤ 外键约束

create  table  表名(字段名1  数据类型,   [constraint  <外键约束名>]  foreign  key(字段名)  references  外键主表名(主键字段名));


(3) 显示所有数据表

show tables;


(4) 查询表结构

desc 表名;


(5) 删除数据表

drop table 表名;


3. 复制现有表

create  table  表名  like   被复制表名;(该语句仅复制表名结构等,不复制内容)


create  table  表名  as  (select  *  from  被复制表名);(该语句可复制表结构和内容)


4. 修改数据表结构

(1) 数据表重命名

alter  table  <旧表名>  rename  <新表名> ;


(2) 修改字段名

alter  table  <表名>  change  <原字段名>  <新字段名>  <数据类型> ;


(3) 修改字段数据类型

alter  table  <表名>  modify  <字段名>  <新数据类型> ;


(4) 添加新字段

alter  table  <表名>  add  <新字段名>  <数据类型>  [约束条件]  [first  |  after  <已存在字段名>] ;


(5) 修改字段的排列位置

alter  table  <表名>  modify  <字段名>  <数据类型>   [first  |  after  <已存在字段名>] ;


(6) 删除数据表中的字段

alter  table  <表名>  drop  <字段名> ;


5. 修改数据表约束

(1) 添加主键约束

alter  table  <表名>  add  primary key(字段名) ;
alter  table  <表名>  modify  字段名 数据类型  primary key auto_increment ;

如果已设置主键未添加自动编号的:

alter  table  <表名>  modify  字段名 数据类型  auto_increment ;


(2) 添加唯一约束

alter  table  <表名>  add  constraint  约束名  unique(字段名) ;


(3) 添加非空约束

alter  table  <表名>  modify  字段名  数据类型  not null ;


(4) 添加默认值约束

alter  table <表名>  alter  字段名  set  default ‘默认值’;


(5) 添加外键约束

alter  table  <表名>  add  constraint  约束名  foreign key(字段名)  references <主表名>(主表主键字段名) ;


(6)删除主键约束

alter  table  <表名>  drop  primary key ;


(7)删除外键约束

alter  table  <表名>  drop  foreign key  <外键约束名>;


(8)删除默认值约束

alter  table  <表名>  alter  <删除默认值约束的字段名>  drop  default ;


(9)删除唯一约束

drop  index  <唯一约束名>  on  <表名> ;

注意:唯一约束创建后,系统会默认将其保存到索引中。因此,删除唯一约束就是删除索引,通过show index from <表名>查看索引名。


(10)删除自动增长

alter  table  <表名>  modify  字段名 数据类型 ;


备注:查询语句约束

select  *  from  information_schema.`TABLE_CONSTRAINTS`  where table_name='表名' ;


6. 数据库编码语法

(1) 查看数据库编码格式

show  variables  like  'character_set_database' ;


(2) 查看数据表的编码格式

show  create  table  <表名> ;


(3) 创建数据库时指定数据库的字符集

create  database  <数据库名>  character  set  utf8 ;


(4) 创建数据表时指定数据表的编码格式

create  table  表名 (字段名,数据类型,......) default  charset = utf8 ;


(5) 修改数据库的编码格式

alter  database  <数据库名>  character  set  utf8 ;


(6) 修改数据表格编码格式

alter  table  <表名>  character  set  utf8;


(7) 修改字段编码格式

alter  table  <表名>  change  <字段名>  <字段名>  <数据类型>  character  set  utf8;


7. 数据表内容修改语法

update 表名  set  字段名1=值1,字段2=值2... [Where  条件];


8. 删除数据记录语法

delete  from  表名 [where  条件];
truncate  table  表名;

注意:TRUNCATE语句删除后将重置自增列,表结构及其字段、约束、索引保持不变,执行速度比DELETE语句快


9. 单表查询语法

Select <字段名或表达式列表>
From <数据表名或视图名>
[ Where <检索条件表达式> ]
[ Group By <分组的字段名或表达式> ]
[ Having <筛选条件> ]
[ Order By <排序的字段名或表达式> ASC | DESC ]
[ limit 数值 ]


五. MySQL题目

MySQL题目详见当前专栏内博客


六. MySQL常见问题

MySQL常见问题详见当前专栏内博客



本篇博客为本人学习MySQL时的详细记录,如有错误之处,还望各位指正。
文章为原创,如要转载请注明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡巴枯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值