mysql快速入门

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 介绍mysql

SQL对数据库进行操作:

1.创建数据库

语法:create  database  数据库名称  character  set  字符集  collate  字符集校对规则

2.查看数据库

查看服务器的所有数据库:show database

查看某个数的定义信息:show create database 数据库名称

3.修改数据库

语法:alter database 数据库的名称 character set 字符集 collate 校对规则

4.删除数据库

语法:drop database 数据库名称

5.其他数据库

切换数据库:use 数据库名称

查看当前数据库:select database()

SQL对数据库表进行操作:

1.创建表

语法:create  table  表名称(字段名称 字段类型(长度)  约束,字段名称  字段类型(长度)  约束 )

类型:int  float  double  char  varchar

char和varchar的区别:char代表的是固定长度的字符串或字符      varchar代表的是可变长度的字符串

datatime和timestamp的区别:datatime是一个有日期又有时间的类型,如果没有向这个字段存值,数据库用null存入到数据中

timestamp是一个有日期又有时间的类型,如果没有向这个字段存值,数据库使用当前的系统时间

约束的作用:保证数据的完整性

单表约束分类:

1.主键约束:primary key     auto_increment--自增

2.唯一约束:unique

3.非空约束:not null

2.查看表:

查看某个数据下的所有表:show tables

查看某个表的结构信息:desc 表名

3.删除表:

语法:drop table 表名

4.修改表:

1.添加列:alter table 表名 add 列名 类型(长度) 约束

2.修改类型,长度和约束:alter table 表名 modify 列名 类型(长度) 约束

3.删除列:alter table 表名 drop 列名

4.修改列名称:alter table 表名 change 旧列名 新列名 类型(长度) 约束

5.修改表名:rename table 表名 to 新的表名

6修改表的字符集:alter table 表名 character set 字符集

SQL对数据库表的记录进行操作:

1.添加表的记录:

语法:insert into 表名 (列名1,列名2,列名3) values(值1,值2,值3)---向表中插入某些列

         insert into 表名 values(值1,值2,值3)---向表中插入所有列

添加中文记录:

注意事项:

1.值的类型与数据库中表列的类型一致。

2.值的顺序与数据库中表列的顺序一致。

3.值得最大长度不能超过列设置的最大长度。

2.修改表的记录:

语法:update  表名  set  列名=值;列名=值 【where 条件】

注意事项:

1.值的类型与值的类型要一致

2.字符串类型和日期类型要添加引号

3.删除表的记录:

语法:delete 表名 【where 条件】   rollback有恢复的意思

注意事项:

1.删除记录,指的是删除表中的一行记录

2.删除如果没有条件,默认是删除表中的所有记录

4.查看表的记录:

1.基本查询

语法:select [distinct]*from 表名 [条件]

2.条件查询

使用where句子

   like--模糊查询     select * from exam where name like 'a_';

   in--范围查询   select * from exam where englist in (56,32,35);

3.排序查询

在条件的后边加order by 字段名称 asc/desc;

select * from exam order by chinese;----默认升序

4.聚合函数查询

聚合函数使用--sun()  count()  max()  min()

5.分组查询

语法:使用group by  字段名称

where的子句后面不能跟聚合函数

总结:select...from...where...group by...having...order by  

重置MYSQL密码的步骤:

1.停止MYSQL服务

2.在cmd下启动MYSQL服务,输入--mysql --skip-grant-tables

3.重新开启cmd的命令行,输入--mysql -u root -p,然后不用输入密码

4.修改root的密码,先use mysql。在update user set password =password('新密码') where user='root'; 然后关掉所有cmd

5.结束mysqld的进程,先进入任务管理器,然后点详细信息,右键mysqld结束进程

6.重新启动mysql服务

数据库的还原:create database 表名

多表约束:

1.创建一个部门表:

create table dept(

 did int PRIMARY KEY auto_increment,

 dname varchar(20)

);

插入:

insert into dept values(null,'shichangbu');

insert into dept values(null,'renshibu');

insert into dept values(null,'jiaoyanbu');

2.创建一个员工表:

create table employee(

 eid int PRIMARY KEY auto_increment,

   ename varchar(20),

 salary double,

   birthday date,

   sex varchar(20),

   dno int

);

插入:

insert into employee values(null,'zhangsan',8000,'2001-04-27','nan',3);

insert into employee values(null,'lisi',5000,'2001-04-11','nv',3);

insert into employee values(null,'wangwu',9000,'2001-04-22','nan',3);

insert into employee values(null,'zhaoliu',6666,'2001-04-12','nv',3);

insert into employee values(null,'sunqi',3333,'2001-04-20','nv',3);

删除其中的某一个部门:delete from dept where did=2---删除renshibu

外键是dno,要指向主键

添加外键约束--alter table employee add foreign key (dno) references dept(did);

表与表的关系:

1.一对多的关系--需要创建外键

一对多的例子:一个部门下可以有多个员工的

2.多对多的关系--需要创建第三张表

多对多的例子:一个学生可以选择多门课程,一门课程可以被多个学生选择

3.一对一的关系

一对一的例子:一个公司可以有一个注册地址,一个注册地址只能对一个公司

多表查询:

一.连接查询

1.交叉连接--查询两个表的笛卡儿积

语法:select *from 表1 cross join 表二;

2.内连接--inner join

显示内连接语法:select * from  表1  inner join  表二 on  关联条件

隐式内连接语法:select * from  表1,表二  where 关联条件

3.外连接--outer join

1.左外连接语法:select * from  表1 left outer join 表2 on 关联条件

2.右外连接语法:select * from  表1 right outer join 表2 on 关联条件

二.子查询

1.带in的子查询

题目:查询学生生日在91年后的班级信息。

select * from classes where cid in (seelct cno from student where birthday>'1991-01-01');

2.带exists的子查询

题目:查询学生生日在91年后的班级信息。

select * from classes where exists (seelct cno from student where birthday>'1991-01-01');

3.带any的子查询

4.带all的子查询

MYSQL中的事务管理:---拿转账来做例子

开启事务:start  transaction

提交事务:commit

回滚事务:rollback

事务的特性:

1.原子性--事务的不可分割

2.一致性--事务执行的前后,数据完整性保持一致

3.隔离性--事务执行不应该受到其他事务的干扰

设置事务的隔离级别--read  uncommitted,read  committed,repeatable  read,serializable(最安全,效率最低)

4.持久性--事务一但提交,数据就持久化到数据库中

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 关系型数据库 MySQL
【mysql】MySQL 分区快速入门
【mysql】MySQL 分区快速入门
146 0
|
SQL 安全 关系型数据库
云数据库 RDS SQL Server 快速入门(二)
云数据库 RDS SQL Server 快速入门(二)
141 0
|
SQL 存储 关系型数据库
Mysql快速入门 1
Mysql快速入门
75 0
|
5月前
|
关系型数据库 MySQL 数据库
Web 框架 Flask 快速入门(三)数据库-MySQL
数据库 1、数据库的安装与配置 这节用到flask的两个扩展,使用pip安装扩展就行
179 0
|
5月前
|
Web App开发 JavaScript 关系型数据库
百度搜索:蓝易云【NodeJS 了解和快速入门 - 实现 http 服务 & 操作 mysql教程。】
通过使用上述示例代码,您可以快速入门并实现Node.js的HTTP服务和操作MySQL数据库。您可以根据需要进一步扩展和定制这些代码以满足您的具体要求。
62 0
uiu
|
SQL 存储 分布式计算
Hive 快速入门与平台搭建 | 结合Mysql(一)
Hive 快速入门与平台搭建 | 结合Mysql(一)
uiu
509 0
Hive 快速入门与平台搭建 | 结合Mysql(一)
|
关系型数据库 数据库 PostgreSQL
云数据库RDS PostgreSQL 快速入门(二)
云数据库RDS PostgreSQL 快速入门(二)
156 1
|
关系型数据库 MySQL 网络安全
云数据库 RDS MySQL 快速入门(二)
云数据库 RDS MySQL 快速入门(二)
149 0
|
关系型数据库 MySQL
Mysql快速入门 2
Mysql快速入门
35 0
|
NoSQL 关系型数据库 MySQL
PHP快速入门13-MySQL数据库与Redis操作
PHP快速入门与实战,本篇文章介绍的内容,MySQL数据库与Redis操作,后续更多内容将收录在专栏PHP快速入门与实战。
123 0