20220815 第一组 于芮 mysql数据库第一天(第三十一天)
小白成长记——第三十一天
今天我们告别了java基础,开始了新的旅程——mysql数据库,之前有接触过一点mysql数据库,所以有一点点的基础,对于今天新学的内容,没有那么多陌生,很容易理解,都是以前在学校的时候学过的,所以今天学习的时候就属于“温故而知新”,来看一下今天的学习笔记吧!
mysql数据库
数据库:按照数据结构,存储管理数据的仓库,长期存储在计算机内的有组织的,可共享的,统一管理大量数据的数据集合
程序猿的工作:对数据进行管理,包括运算,流转,存储,展示等,主句库最重要的功能就是存储数据,长期保存数据
mysql:是一个关系型数据库管理系统,使用了SQL语言。
社区版:体积小,速度快,成本低,开源
商业版:
数据库:按照数据结构,存储管理数据的仓库,长期存储在计算机内的有组织的,可共享的,统一管理大量数据的数据集合
程序猿的工作:对数据进行管理,包括运算,流转,存储,展示等,主句库最重要的功能就是存储数据,长期保存数据
mysql:是一个关系型数据库管理系统,使用了SQL语言。
社区版:体积小,速度快,成本低,开源
商业版:
基本操作(cmd)
mysql保存数据的模式:
1.创建一个数据库
2.在数据库下保存多张表
3.在每张表下保存多条数据
登陆:LMySQL -h ip地址 -p 端口号 -u root
mysql保存数据的模式:
1.创建一个数据库
2.在数据库下保存多张表
3.在每张表下保存多条数据
登陆:LMySQL -h ip地址 -p 端口号 -u root
mysql是一个数据库管理系统,管理多个数据库
create database数据库名
create schema 数据库名
create database数据库名
create schema 数据库名
查看所有数据库:show databases
使用数据库:use 数据库名
表(存储数据的对象)
行:一行及一条数据,有多少条数据,就有多少行
列:一列即为一个字段,有多少字段,就有多少列
行:一行及一条数据,有多少条数据,就有多少行
列:一列即为一个字段,有多少字段,就有多少列
SQL语句(一种特殊的编程语言)
是一种数据库查询和程序设计语言,用于存储数据以及查询,更新和管理关系型数据库管理
DCL:数据控制语言(定义访问权限和安全级别)
DDL:数据定义语言(定义数据库对象,例如库,表,字段)
DML:数据操作语言(用来定义数据的增删改记录)
DQL:数据查询语言(用来查询记录)
TCL:事务控制语言(用来管理事务)
是一种数据库查询和程序设计语言,用于存储数据以及查询,更新和管理关系型数据库管理
DCL:数据控制语言(定义访问权限和安全级别)
DDL:数据定义语言(定义数据库对象,例如库,表,字段)
DML:数据操作语言(用来定义数据的增删改记录)
DQL:数据查询语言(用来查询记录)
TCL:事务控制语言(用来管理事务)
DCL(数据控制语言)
创建用户
创建一个用户,只能在指定的IP地址上登陆mysql
create user 同户名IP地址 identified by '密码'
创建用户
创建一个用户,只能在指定的IP地址上登陆mysql
create user 同户名IP地址 identified by '密码'
修改密码
——5.7(使用password进行对密码加密)
set password for 用户名@‘%’=password(新密码)
——8,0直接赋值
set password for 用户名@‘%’=新密码
——5.7(使用password进行对密码加密)
set password for 用户名@‘%’=password(新密码)
——8,0直接赋值
set password for 用户名@‘%’=新密码
给用户授权
给指定用户在数据库上赋予指定权限
1.create:创建数据库
2.select:查询数据
3.delete:删除数据
4.update:修改数据
5.insert: 插入数据
语法
grant `权限`on 数据库名.* to 用户名@IP地址
着重符,不是单引号`
给指定用户在数据库上赋予指定权限
1.create:创建数据库
2.select:查询数据
3.delete:删除数据
4.update:修改数据
5.insert: 插入数据
语法
grant `权限`on 数据库名.* to 用户名@IP地址
着重符,不是单引号`
撤销授权
语法:revoke `权限` on 数据库名.*from 用户名@IP地址
语法:revoke `权限` on 数据库名.*from 用户名@IP地址
查看指定用户的权限
语法:show grants for 用户名@IP地址
语法:show grants for 用户名@IP地址
删除用户
语法:drop user 用户名@IP地址
语法:drop user 用户名@IP地址
DDL(定义或改变标的结构)
创建表
create table 表名(
字段名 类型(长度) 约束条件)
创建表
create table 表名(
字段名 类型(长度) 约束条件)
数据类型
整型
tinyint(一个字节) 范围(-128-127)
smallint(两个字节)
mediumint(三个字节)
int(四个字节)
bigint(八个字节)
默认使用的是有符号的,可以使用unsigned 关键字,定义成无符号类型
如果长度需要配合zerofill
例:int(4) unsigned zerofill
上述的int的长度是4,如果设置了了zerofill,数据是1,最终存到表格中的数据格式为0001
浮点型
float(m,d)4字节,m是总长度,d是小数位
double(m,d)8字节,m是总长度,d是小数位
decimal(m,d)存储为字符串的浮点数
字符串类型
char(n)固定长度,最多255个字符
varchar(n)可变长度 最大65535个字符
tinytext可变长度 最多255字节
text 可变长度 最大65535字节
mediumtext 可变长度 最大16MB
longtext 可变长度 最大4GB
整型
tinyint(一个字节) 范围(-128-127)
smallint(两个字节)
mediumint(三个字节)
int(四个字节)
bigint(八个字节)
默认使用的是有符号的,可以使用unsigned 关键字,定义成无符号类型
如果长度需要配合zerofill
例:int(4) unsigned zerofill
上述的int的长度是4,如果设置了了zerofill,数据是1,最终存到表格中的数据格式为0001
浮点型
float(m,d)4字节,m是总长度,d是小数位
double(m,d)8字节,m是总长度,d是小数位
decimal(m,d)存储为字符串的浮点数
字符串类型
char(n)固定长度,最多255个字符
varchar(n)可变长度 最大65535个字符
tinytext可变长度 最多255字节
text 可变长度 最大65535字节
mediumtext 可变长度 最大16MB
longtext 可变长度 最大4GB
char和varchar的区别
1.char是定长的类型,当输入的字符超出指定的范围,char会截取超出的字符,当存储char,mysql会自动删除输入字符串末尾的空格
2.char适合存储很短的,一般是固定长度的字符串,对于端的列,char比varchar在存储空间上效率更高
3.varchar类型用来存储可变长度,长度最大为n个字符的可变长度的字符串数据
4.char类型每次修改的数据长度都相同,效率更高,varchar每次修改的数据长度如果不同,效率更低
1.char是定长的类型,当输入的字符超出指定的范围,char会截取超出的字符,当存储char,mysql会自动删除输入字符串末尾的空格
2.char适合存储很短的,一般是固定长度的字符串,对于端的列,char比varchar在存储空间上效率更高
3.varchar类型用来存储可变长度,长度最大为n个字符的可变长度的字符串数据
4.char类型每次修改的数据长度都相同,效率更高,varchar每次修改的数据长度如果不同,效率更低
varchar和text类型的区别
1.text不能设置默认值,varchar可以设置默认值
2.text类型,由于单表的最大行宽限制,支持溢出存储,只会存放768字节在数据页中,剩余的数据存储在溢出段中
3.一般使用varchar,
1.text不能设置默认值,varchar可以设置默认值
2.text类型,由于单表的最大行宽限制,支持溢出存储,只会存放768字节在数据页中,剩余的数据存储在溢出段中
3.一般使用varchar,
日期
data 3字节 格式:2022-08-15
time 3字节 格式:10:54:30
datatime 8字节 格式:2022-08-15 10:54:30
timestamp 4字节 时间戳,毫秒数
year 一字节 年份
data 3字节 格式:2022-08-15
time 3字节 格式:10:54:30
datatime 8字节 格式:2022-08-15 10:54:30
timestamp 4字节 时间戳,毫秒数
year 一字节 年份
建表约束
如何规范表中的数据以及表之间的关系
NOT NULL 非空约束
UNIQUE 唯一约束,取值不允许重复
PRIMART KEY 主键约束 自带非空,唯一,索引
DEFAULT 默认值
FOREIGN KEY 外键约束,表和表之间的约束
如何规范表中的数据以及表之间的关系
NOT NULL 非空约束
UNIQUE 唯一约束,取值不允许重复
PRIMART KEY 主键约束 自带非空,唯一,索引
DEFAULT 默认值
FOREIGN KEY 外键约束,表和表之间的约束
在创建表的时候,建议使用着重符
对表的修改操作
查看当前库的所有表:show tables
查看表结构:desc 表名
修改表的五个操作:alter table 表名
1.添加列
alter table 表名 add (列名 类型)
2.修改列的数据类型
alter table 表名 notify 列名 类型
3.修改列的名称(列和名称一起改)
alter table 表名 change 列名 列修改后的名字 类型
4.删除列
alter table 表名 drop 列名
5.修改表名
alter table 表名 rename 新表名
6.删除表
drop table if exists 表名
查看当前库的所有表:show tables
查看表结构:desc 表名
修改表的五个操作:alter table 表名
1.添加列
alter table 表名 add (列名 类型)
2.修改列的数据类型
alter table 表名 notify 列名 类型
3.修改列的名称(列和名称一起改)
alter table 表名 change 列名 列修改后的名字 类型
4.删除列
alter table 表名 drop 列名
5.修改表名
alter table 表名 rename 新表名
6.删除表
drop table if exists 表名
DML(数据操作语言)
该语言对表记录进行操作(增伤改)
1.插入数据
insert into 表名 (列)values (对应的值)
说明:
1.在数据库中所有的字符串的类型,都需要用引号
2.如果部分字段插入,必须列名和值要匹配,如果插入全字段,列名可以省略
批量插入
insert into 表名(列)values(对应的值),(对应的值)
2.修改数据
(1)修改某列全部的值
update 表名 set 列名 =修改的列名
(2)修改特定行的数据
update 表名 set 列名 =修改的列名 where 主键;
where是关键字,使用where关键字实现筛选,可以使用各种复杂的条件运算
3.删除数据
(1)全部删除
delete from 表名 ;
(2)部分删除
delete from 表名 where 主键;
(3)截断(清空表)
truncate 表名
通过delete删除的数据,主键如果是自动递增,会断档
该语言对表记录进行操作(增伤改)
1.插入数据
insert into 表名 (列)values (对应的值)
说明:
1.在数据库中所有的字符串的类型,都需要用引号
2.如果部分字段插入,必须列名和值要匹配,如果插入全字段,列名可以省略
批量插入
insert into 表名(列)values(对应的值),(对应的值)
2.修改数据
(1)修改某列全部的值
update 表名 set 列名 =修改的列名
(2)修改特定行的数据
update 表名 set 列名 =修改的列名 where 主键;
where是关键字,使用where关键字实现筛选,可以使用各种复杂的条件运算
3.删除数据
(1)全部删除
delete from 表名 ;
(2)部分删除
delete from 表名 where 主键;
(3)截断(清空表)
truncate 表名
通过delete删除的数据,主键如果是自动递增,会断档
这就是今天学习的主要内容了,内容不是很多,但是接触数据库的第一天,当然要打好基础,又是努力学习的一天!!