Mysql的基础

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

mysql的学习

1. CREATE table content (
2.  id int PRIMARY KEY auto_increment,
3.  title VARCHAR(255)
4. );

1.1sql的基本操作

1.1.1 删除数据库

drop database mydatabase;

1.1.2 创建数据库

create database 数据库名字 【库选项】

1.1.3 cmd登录数据库

mysql -uroot -p + 输入密码

1.1.4显示数据库信息

显示全部:show datbases ,显示部分: show database like ‘匹配模式’ _:匹配当前位置单个字符,%:匹配指定位置多个字符。

获取以my开头的数据库,‘mdatabase’ ,获取以database为结尾的数据库 show databse like ’%databse'

1.1.5查看数据库创语句

show create database 数据库名字

1.1.6选择数据库

use 数据库名字 use mydatabase;

1.1.7 修改数据库

修改数据库字符集(库选项),字符集和校对集

修改数据库字符集 alter database mydatabase charset gbk;

1.1.8 删除数据库

drop database 数据库名字

1.1.9查询创建好的表的数据

1.2数据表

1.2.1创建数据表

create table class (

-- 字段名 字段类型

name varchar(10) --10个字符(不能超过)

)

1、挂在某个数据库的写法

create table mydatabase2.class(

name varchar(10)

)。

2、第二种写法,在创建的时候先进入某个数据库

use mydatabase;

charset 字符集

collate 校对集

1.2.2复制已有表结构

从已经存在的表复制一份(只复制结构,如果表中有数据则不复制)

基本语法: create table 新表名 like 表名;只要使用数据库表名,就可以在任何数据库下进行方位。

例如:在test中创建一个类似于teacher一样的数据库。

create table teacher like mydatabase2.teacher;

1.2.3查看数据匹配数据表

show tables like 't%';

1.2.4显示表结构

describe class;

desc teacher;

show columns from student;

1.2.5查看表创建语句

show create table student;

;和\g所在的效果都是一样的,\G则在左侧显示。

1.2.6修改表属性

alter table student charset gbk;

1.2.7 删除表结构

基础语法:drop table class;

1.2.8 修改表数据

update 表名 set 字段名 = 修改值 where 判断条件

一定要注意update后面加的是表名

实际例子:

update account set money = 2000 where id = 1;

1.3数据基础操作

1.3.1插入数据操作

本质含义,将数据存储到指定的数据表字段当中

-- 插入数据到数据表

基本语法:

Insert into 表名[(字段名)] value(对应字段列表)

insert into my_teacher (name,age) values('jack',30)

1.3.2 从数据表中查看数据

select * from my_core;

1.4 创建主键

主键创建的两种方法

1.4.1 如何在表创建的后续创建主键

alter table 表名 add primary key(字段);

1.4.2 查看数据库表中的主键的方法

方法一:

desc 表名 --查看表结构

主键是不允许为空的。

方法二:查看表的创建语句

show create table 表名

1.4.3 删除主键

alter -- 改变 drop -- 中止

1.4.4 创建复合主键的意义

实例

我装入一个0000001和课程course001的成绩数据,但如果我再想把这科目的成绩就不行了,

1.4.5 主键分类

1.4.6 自动增长
1.4.6.1 自动增长的含义

1.4.6.2 自动增长的原理

1.4.6.3自动增长的使用

1.4.6.4 自动增长的修改

alter table my_auto auto_increment = 10;在不输入数据后在输入就会出现10了。

1.4.6.5 删除自增长

就是在字段属性后不再保留auto_increment,使用alter table 表名 modify id int 可以修改字段属性。

alter table my_auto modify id int;

如果是没有而想要填上的写法:

alter table my_auto modify in int primary key auto_increment;

1.4.6.6 初始设置

1.4.6.7实例

自增长重点在于不能给值,其insert into插入的id为null;

1.4.6.8 如果表已经创建成功了,想要后期添加的方法

1、表不存在PRIMARY KEY字段,新增一个AUTO_INCREMENT字段

CREATE TABLE table_a (

user_id bigint(20) NOT NULL DEFAULT '0' COMMENT '商户后台管理员ID,对应sys_user表的user_id', agent_name varchar(100) NOT NULL DEFAULT '' COMMENT '代理商名称', contact_mobile varchar(15) NOT NULL DEFAULT '' COMMENT '联系人手机号', contact_address varchar(100) NOT NULL DEFAULT '' COMMENT '联系人地址'

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='代理商信息';

alter table table_a add column agent_id bigint(20) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '代理商id' first;

-- 新增AUTO_INCREMENT字段,字段名为agent_id(一般命名为id,这里只是演示一下别样的命名)

-- AUTO_INCREMENT必须是整数类型数据列

-- first表示新增的字段放在第一位

-- 自增字段必须是唯一的,所以设置为PRIMARY KEY

2、表已经存在PRIMARY KEY字段,新增一个AUTO_INCREMENT字段

实例

CREATE TABLE table_a (

user_id bigint(20) NOT NULL DEFAULT '0' COMMENT '商户后台管理员ID,对应sys_user表的user_id', agent_name varchar(100) NOT NULL DEFAULT '' COMMENT '代理商名称', contact_mobile varchar(15) NOT NULL DEFAULT '' COMMENT '联系人手机号', contact_address varchar(100) NOT NULL DEFAULT '' COMMENT '联系人地址', PRIMARY KEY (user_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='代理商信息'

解决方法:

1.删除primary key字段

alter table table_a drop primary key

2.新增自增字段

alter table table_a add column agent_id bigint(20) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '代理商id' first;

3、表已经存在PRIMARY KEY字段,把PRIMARY KEY字段设置为AUTO_INCREMENT字段

已经存在primary key字段了.

CREATE TABLE table_a (

user_id bigint(20) NOT NULL DEFAULT '0' COMMENT '商户后台管理员ID,对应sys_user表的user_id', agent_name varchar(100) NOT NULL DEFAULT '' COMMENT '代理商名称', contact_mobile varchar(15) NOT NULL DEFAULT '' COMMENT '联系人手机号', contact_address varchar(100) NOT NULL DEFAULT '' COMMENT '联系人地址', PRIMARY KEY (user_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='代理商信息'

尝试:把table_a的字段user_id设置成自增类型:

alter table table_a modify column user_id bigint(20) NOT NUll DEFAULT 0

AUTO_INCREMENT COMMENT '商户后台管理员ID,对应sys_user表的user_id';

结果

Invalid default value for 'user_id'

失败原因:AUTO_INCREMENT字段不能有默认值。

修改

取消默认值

alter table table_a modify column user_id bigint(20) NOT NUll AUTO_INCREMENT COMMENT

综上:

如果出现已经存在primary key 时的写法为:

alter table 表名 modify column (主键选定的值)数据类型 NOT

AUTO_INCREMENT COMMENT

1.5 外键
1.5.1 外键的概念

1.5.2 增加外键的方法

1.5.3 外键中MUL的意义

MUL代表多索引。

constraint [kənˈstreɪnt] 限制

1.5.4 desc my_class 中的详情

1.5.5 查看外键的索引

show create table my_foreign;

1.5.6 my_student的创建

create table my_student(

stu_id int primary key auto_increment,

stu_name varchar(10),

class_id int(11)

)charset utf8;

1.6 链接oracle 以及其他数据文档的查询

DBA86 | 常用官方文档合集 一个好的链接

1.7 varchar的含义--数据类型的确定是学习的重点,我还不行

VARCHAR是一种数据类型,比CHAR更加灵活,VARCHAR可以保存可变长度的字符串,而CHAR不能。VARCHAR和CHAR同样用于表示字符数据。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。所以,对于那些难以估计确切长度的数据对象来说,使用VARCHAR数据类型更加明智。

  1. 1、使用比固定长度类型(char)占用更少存储空间(除了使用ROW_FORMAT=FIXED创建的MyISAM表).
    2、使用额外的1-2字节来存储值长度,列长度<=255使用1字节保存,其它情况使用2字节保存。例如varchar(10)会占用11字节存储空间,varchar(500)会占用502字节存储空间。
      3、节约空间,所以性能会有帮助。在更新的时候会产生额外的工作。
1.8 给字段添加备注

create table student (

name varchar(10) comment '名字',

scale varchar(10) comment '分数'

);

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 关系型数据库 MySQL
mysql数据基础(1)
mysql数据基础(1)
48 1
|
存储 关系型数据库 MySQL
第02章 MySQL的数据目录【1.MySQL架构篇】【MySQL高级】
第02章 MySQL的数据目录【1.MySQL架构篇】【MySQL高级】
1083 0
|
SQL 关系型数据库 MySQL
【MySQL】 MySQL数据库基础
【MySQL】 MySQL数据库基础
|
SQL 存储 关系型数据库
131.【MySQL_基础篇】(一)
131.【MySQL_基础篇】
61 0
|
2月前
|
存储 JSON 关系型数据库
MySQL 5.x和MySQL 8.x到底有什么区别?
本文详细对比了MySQL 5.x与MySQL 8.x的主要区别,包括存储引擎改进、性能提升、SQL语法增强(如窗口函数、CTE、JSON支持)、安全性和权限管理、并发及锁机制、InnoDB引擎增强、复制与高可用性等方面的显著差异。通过具体示例展示了8.x版本在企业级应用和高并发场景下的优越表现,建议有条件时尽早升级至MySQL 8.x以充分利用其新特性。
|
SQL 存储 关系型数据库
131.【MySQL_基础篇】(三)
131.【MySQL_基础篇】
161 0
|
SQL 关系型数据库 MySQL
131.【MySQL_基础篇】(二)
131.【MySQL_基础篇】
96 0
|
SQL 关系型数据库 MySQL
131.【MySQL_基础篇】(五)
131.【MySQL_基础篇】
88 0
|
SQL 关系型数据库 MySQL
【MySQL 基础介绍】
【MySQL 基础介绍】
84 0
|
存储 关系型数据库 MySQL
1.MySQL架构篇【mysql高级】
1.MySQL架构篇【mysql高级】
112 0