MySQL从入门到放弃一 简单用法

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL从入门到放弃一 简单用法

## 一,安装运行

官网下载:嫌慢找镜像。

图形化界面:


```xml

doc:services.msc

```


控制面板-服务工具-服务

命令行:

启动mysql服务


```xml

net start mysql56

```


停止mysql服务:


```xml

net stop mysql56

```


打开数据库:

方法一:电脑左下角找到  mysql命令行(不推荐,如果出错、网络原因什么的,它会自动关闭窗口,找不到具体原因)

方法二:将mysql\bin 配置在Path环境变量中,DOC命令下输入:mysql -h localhost -u root -p  


## 二,存储引擎

就是如何存储数据、如何更新数据、如何查询数据、

如何为存储的数据建立索引等一系列技术的实现方法。

查看mysql支持的存储引擎:


```xml

show engines;

```


常用的两种:

MyISAM:拥有较快的插入、查询速度,但**不支持事务。**

InnoDB:**支持ACID事务**,支持行级锁,支持外键;MySQL 5.5版本后的默认存储引擎

## 三,MySQL数据类型

大致分为3类:数值、日期/时间和字符串(字符)类型。

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200731114958691.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTY5NjQz,size_16,color_FFFFFF,t_70)


## 四,数据的完整性

数据完整性是指存储在数据库中的数据,应该保持一致性和完整性。

关系模型允许定义3类数据约束,他们是实体完整性、参照完整性以及用户定义的完整性。

前两种完整性约束由关系数据库系统自动支持。

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200731115015503.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTY5NjQz,size_16,color_FFFFFF,t_70)


唯一性约束:

unique意味者任何两条数据的同一字段不能有相同值,可保证实体完整性。

外键约束:

外键约束定义了表之间的一致性关系,用于强制参照完整性。

在插入数据时,必须先向主表插入,再向从表插入。删除数据时,刚好相反。

## 五,SQL语句

按照功能用途,可以划分为4种:DDL、DML、DQL和DCL。

**数据定义语言(Data Definition Language):**

DDL用于数据库、表、视图等的建立、删除。DDL包括CREATE、ALTER、DROP等。



**数据操纵语言(Data Manipulation Language):**

DML用于添加、删除和修改数据表中的记录。DML包括INSERT、DELETE和UPDATE。


**数据控制语言(Date Control Language):**

DCL包括数据库对象的权限管理和事务管理。DCL包括COMMIT、ROLLBACK、GRANT等。


**数据查询语句(Data Query Language):**

查询是数据库的基本功能。DQL中使用SELECT查询数据表中的记录。



**1)数据定义语言**

1,创建数据库:


```sql

create database table_name

```


需要定义的信息主要包括:表名、字段名、字段类型。


```sql

create[temporary]table [if not exits] table_name[(create_definition,...)][table_options][select_statement]

```


temporary:表示创建临时表,在当前会话结束后将自动消失。

if not exits:在建表前,先判断表是否存在,只有该表不存在时才创建

create_definition:建表语句的关键部分,用于定义表中各列的属性。

table_options:表的配置选项,例如:表的默认存储引擎、字符集。

select_statement:通过select语句建表。

2,删除数据库:


```sql

drop database table_name

```


3,删除contacts表


```sql

drop table table_name;

```


4,删除表


```sql

drop table table_name;

```


5,添加字段sex,类型为varchar(1)


```sql

alter table table_name add sex varchar(1);

```


6,修改字段sex的类型为tinyint


```sql

alter table table_name modify sex tinyint;

```


7,删除字段sex


```sql

alter table table_name drop column sex;

```


8,查看当前在哪个数据库下工作:


```sql

select database()

```


9,显示表的结构


```sql

desc table_name;

```


10,查看表生成的DDL(反译建表语句)


```sql

show create table table_name ;

```


**2)数据操纵语言(创建、修改和删除)**

1,插入单条数据:


```sql

insert into table_name(field1,field2,....) values(value1,value2,...);

```


2,插入多条数据


```sql

insert into table_name(field1,field2,....) values(valueA1,valueA2,...), (valueB1,valueB2,...);

```


3,修改数据


```sql

update table_name set field1=newValue1,field2=newValue2[where clause];

```


如果不带where,将更新所有。

4,删除数据


```sql

delete from table_name where id =1;

```


5,数据默认


```sql


sex tinyint default 1


```

6,数据转义




```sql

' Tom\'s cat'

"  Lily's cat  "

```



**3)数据查询语句**

1,查询表中列的注释信息


```sql

select * from information_schema.columns

where table_schema = 'db' #表所在数据库

and table_name = 'tablename' ; #你要查的表

```


2,只查询列名和注释:


```sql

select column_name, column_comment from information_schema.columns where table_schema ='db' and table_name = 'tablename' ;

```


3,查看表的注释


```sql

select table_name,table_comment from information_schema.tables where table_schema = 'db' and table_name ='tablename'

```


4,select语句中使用where子句语句


```sql

select column_name from table_name where column_name 运算符 value;

```


5,and、or运算符语句


```sql

select column_name from table_name where condition1 and condition2 or condition3


and:表示左右两边的条件同时成立。

or:表示左右两边只要有一个条件成立。

```


6,运算符in的使用

在where语句中过滤某个字段的多个值。


```sql

select column_name from table_name where column_name in(value1,value2);

```


7,like模糊查询


```sql

select column_name from table_name where column_name like "%value%"

```


百分号“%”表示0个或多个字符,下划线 “_”表示单个字符

8,函数(mysql内置函数)



now()

```sql

insert into user(id,name,create_time) values(1,"zhangsan",now());

```


date_format()格式转换


```sql

select name,date_format(now(),'%Y/%m/%d') from user;

```


聚合函数(对一组值计算,返回单个值),count、sum、avg、min、max

ifnull()用于处理空值

ifnull(v1,v2),如果v1的值不为null,则返回v1,否则返回v2。

case when

类似编程语句的if else或者switch。


```sql

select id ,password,case sex when 1 then "男" when 2 then "女" else "未知" end as sex from c;

```


as sex 为取的别名

9,查询结果排序


```sql

order by

select column_name1,column_name2

from table_name1,table_name2

order by column_name,column_name[ASC|DESC]

```


ASC表示升序排列,DESC表示按降序排列。

默认为升序排列。


limit


```sql

select column_name1,column_name2

from table_name1,table_name2

limit[offset] row_count;

```


offset指定要返回的第一行的偏移量,第一行的偏移量是0,而不是1。

row_count指定要返回的最大行数。

limit的分页公式:

limit(page-1)row_count,row_count;


10,group by


```sql

select column_name,aggregate_function(column_name)

from table_name

group by column_name

```


aggregate_function表示聚合函数。

group by 可以对一列或多列进行分组。


11,having

在SQL中增加having子句原因是,where关键字无法与聚合函数一起使用。

having子句可以对分组后的各组数据进行筛选。


```sql

select column_name,agregate_function(column_name)

from table_name

where column_name operator value

group by column_name

having aggregate_function(column_name) operator value

```












相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
存储 监控 关系型数据库
轻松入门Mysql:MySQL性能优化与监控,解锁进销存系统的潜力(23)
轻松入门Mysql:MySQL性能优化与监控,解锁进销存系统的潜力(23)
|
6天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
132 0
|
6天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
6天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:MySQL 备份与恢复,保护数据安全,提高工作效率(20)
轻松入门MySQL:MySQL 备份与恢复,保护数据安全,提高工作效率(20)
|
6天前
|
安全 关系型数据库 MySQL
轻松入门MySQL:MySQL8权限管理详解,角色和用户操作实例(18)
轻松入门MySQL:MySQL8权限管理详解,角色和用户操作实例(18)
106 0
|
6天前
|
SQL 存储 关系型数据库
轻松入门MySQL:深入理解MySQL日志,二进制日志、中继日志、回滚日志和重做日志(19)
轻松入门MySQL:深入理解MySQL日志,二进制日志、中继日志、回滚日志和重做日志(19)
|
6天前
|
存储 关系型数据库 MySQL
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
64 0
|
5天前
|
存储 关系型数据库 MySQL
MySQL各字符集、排序规则的由来、用法,区别和联系
MySQL支持多种字符集和排序规则,这些在数据库设计和数据处理中起着重要作用。下面是它们的由来、用法、区别和联系: 1. **字符集(Character Set)**: - **由来**:字符集定义了数据库中可以存储的字符集合,以及这些字符在数据库中的存储方式。 - **用法**:在创建数据库或表时,可以指定所需的字符集。常见的字符集包括UTF-8、UTF-16、Latin1等。 - **区别和联系**:不同的字符集支持不同的字符范围和存储方式,选择合适的字符集可以确保数据的正确存储和处理。例如,UTF-8支持全球范围内的大多数字符,而Latin1只支持西欧语言字符集。
|
6天前
|
自然语言处理 关系型数据库 MySQL
一文明白MySQL索引的用法及好处
一文明白MySQL索引的用法及好处
21 0
|
6天前
|
关系型数据库 MySQL
MySQL union和union all的用法详解和区别
MySQL union和union all的用法详解和区别
11 0