MySQL
- MySQl是一个“关系型数据库管理系统”。
- MySQL使用了一种语言“SQL语言”
- MySQL分为社区版和商业版,体积小,速度快,成本低,开源
- 以表的形式存取数据
基本操作
MySQL操作模式,首先需要创建一个数据库,在库中保存多张表,在表中存数据
登录指令
MySQL-和127.0.0.1 -p3306 -uroot -p
MySQL是一个数据库管理系统
create database 数据库名
查看所有数据库
show databases;
使用数据库
use 数据库名
表
用来存储数据的,是有结构的数据的集合
- 行:一行就是一个数据
- 列:一列是一个字段
SQL语言
一种特殊目的的编程语言。是一种数据库查询和程序设计语言。主要是用于存取数据,以及查询更新管理关系型数据库。
SQL语言分类
DCL (Data Control Language):数据控制语言,用来定义访问权限和安全级别
创建一个用户
创建一个用户,并且该用户只能在指定的ip地址上登录mysql。
create user 用户名@ip地址 identified by ‘密码’
用户于用户之间是隔离的
修改密码
set password for 名字@'%' = password(‘新密码’)
给用户授权
create 创建数据库
select:查询
delect:删除
select :选择
grant授权:
grant ‘权限一,权限二---权限n’on 数据库名。to用户名ip地址
撤销授权:
revoke 权限 on 数据库 = from 用户名ip地址
查看权限:
show grants
删除用户
drop user 用户名@ip地址
DDL :数据定义语言,用来定义对象:库,表,字段,主要是定义或该变表的结构
创建表
create table 表名 {
字段名1(列名) 类型(长度) 约束条件(可有可无),
字段名2 (列名) 类型(长度) 约束条件(可有可无) ,
………………;
}
整型
在关系型数据库中,我们需要这项表名和列名,同时设定
MySQL数据类型 | 含义 |
---|---|
tinyint | 1异界,范围-128!127 |
smalllest | 2字节,范围(-3W多 ~3W多) |
mediumint | 3字节范围 |
int | 四字节 |
bigint | 8字节 非常大 |
如果长度需要配合zerofill 用0填充:
int(4) ubsigned zerofill
上述的int长度为4,如果设置了zerofill,如果数据是1最终存到表格的数据格式为:0001,0010……
浮点型
MySQL数据类型 | 含义 |
---|---|
float(m,d) | 4字节,单精度浮点型,m总长度,d小数位 |
double(m,d) | |
decimal(m,d) | decimal是存数为字符串的浮点数,对应Java中的BigDecimal |
定义一个float(5,3):
加入插入一个数据是123.45678,最后查询得到结果是99.999
插入12.3456789 最后查询结果是12.346
在使用浮点型的时候,要以插入数据库中的实际结果为准。
字符串
MySQL数据类型 | 含义 |
---|---|
char(n) | 固定长度,最多255个字符 |
varchar(n) | 可变长度,最多65536个字符 |
tinytext | 可变长度,最大255个字节 |
text | 可变长度,最大65535 |
mediummtext | 可变长度 16MB |
longtext | 可变长度 4G |
char,varchar的区别:
- char类型是定长类型,当定义char(10),输入“123”,他们占用的空间依然是10个字符,但是如的字符超出了指定的范围,char会截取超出的字符,而且。当存储char,MySQL会自动删除输入字符串末尾的空格
- char适合存储很短的谜一般固定长度的字符串,例如,char非常适合存储密码MD5值,因为他是一个定长的值,对于端的列,charbivarchar在存储空间上效率更高
- varchar(n)类型用来存书可变长度,长度最大为n个字符的可变长度的字符串数据。比如varchar(10),然后储存“abc”,实际就是存储了3个字符
- char类型每次修改的数据长度相同,效率跟高,varchar,每次修改的数据长度如果不同,效率更低
(2)varchar和text区别: - text不能设置默认值,varchar可以设置默认值
- text类型,由于单表的最大行宽的限制,支持溢出存储没指挥存放768字节在数据页中,剩余的数据存储在溢出段中
- 一般我们用varchaar
日期类
MySQL数据类型 | 含义 |
---|---|
date | 3字节。日期 2022-08-15 |
time | 3字节,时间 10:54:30 |
datatime | 8字节2022-08-15 10:54:30 |
timestamp | 4字节 时间戳 毫秒数 |
year | 1字节 年份 |
建表约束
因为一张表要有多个列,数据库中表可能也不只有一个,建表约束说的就是我们应该如何规范表中的数据,以及表之间的关系
MySQL数据类型
约束名称 | 描述 |
---|---|
NOT NULL | 非空约束 |
UNIQUE | 取值不能重复 |
PRINARY KEY | 主键约束,自带非空,唯一,索引 |
DEFAULT | 默认值 |
FOREIGH KEY | 外键约束,表和表之间的约束 |
在创建表的时候,建议字段名使用着重符
SQL语言没有驼峰,更没有大写,且我们在编程中会大量的使用下划线(多单词组成用下划线分开)
修改表
查看当前库里的所有表
show tables;
查看表结构:
desc 表名:
修改表5个操作:
前缀:alter table 表名………………
DML(Data Manipulation Language):定义数据的,数据操作语言
该语言来对表记录进行操作(增,删,改),不包含查询
插入数据()
- DQL():数据库查询语言
- TCL:事务控制语言
总结
今天学习了,数据库的一些基本概念和使用。感觉不是很难,但是在自己编程的时候还是会不自觉地使用Java的编码形式。而且很多东西没有提示,总感觉自己输的不对。
标签:曹雨,01,varchar,字节,数据库,char,MySQL,长度,第四组 From: https://www.cnblogs.com/figh466/p/16587731.html