首页 > 数据库 >2022 8-15 第四组 曹雨 MySQL数据库01

2022 8-15 第四组 曹雨 MySQL数据库01

时间:2022-08-15 19:13:54浏览次数:58  
标签:曹雨 01 varchar 字节 数据库 char MySQL 长度 第四组

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

相关文章

  • [PA2014]Kuglarz
      我们用一个数列\(\{a_n\}\)来表示这些杯子,\(a_n=1\)表示第\(n\)个杯子下藏有小球,\(a_n=0\)表示没有。那么第\([l,r]\)个杯子底下藏有球的总数的奇偶性就可以用......
  • [2001年NOIP普及组] 求先序排列
    给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。输入第一行输入一个字符串表示二叉树的中序排列,第二行输入一个字符串表示......
  • ES6 01
    1记录一个好的笔记一个非常详细的笔记:https://es6.ruanyifeng.com/#docs/intro 2简介2.1 ECMAScript和 JavaScript ECMAScript和JavaScript的关系......
  • linux 使用docker 容器部署sqlserver2019
    前提安装完docker,安装完docker-composedocker-compose.ymlversion:"2"services:sqlserver-2019:restart:always#容器名称container_name:sqlser......
  • MFC实现Txt01之手写代码实现输入
    不是很想写这个。。。主要是因为这一块内容都是照着孙鑫那本书上的内容写的,没什么特别之处,而且网上很多这些内容,随便百度一下就有,(第五章,文本编程,放个链接,这位写的还不错)(其......
  • sql2017 客户端中文
    结果发现不行,在ssms的语言选项(tool->option->international->lanuage)里面还是出不来简体中文。只好卸载了,重新下一个SSMS-Setup-CHS.exe;再安装ok了下载地址为:https://down......
  • Win10+VS2019+Qt5.15.2下编译QCAD
    Win10+VS2019+Qt5.15.2下编译QCAD目录Win10+VS2019+Qt5.15.2下编译QCAD环境配置Qt安装VisualStudio2019安装QCAD编译Clone编译QCAD编译QtScripts插件运行问题总结参考......
  • P3272 [SCOI2011]地板
    [SCOI2011]地板LuoguP3272题目描述lxhgww的小名叫“小L”,这是因为他总是很喜欢L型的东西。小L家的客厅是一个\(r\timesc\)的矩形,现在他想用L型的地板来铺......
  • [NOIP2013 提高组] 积木大赛
    试题分析:题目虽然可以用递归,但最优方法还是用贪心,每次输入进去,如果比前一个数小,那么减前一个数时就可以顺便把他减掉,如果大于则还得自己减。代码: ......
  • [2001年NOIP普及组] 求先序排列
    前序遍历的规则:(1)访问根节点   (2)前序遍历左子树(3)前序遍历右子树中序遍历的规则:(1)中序遍历左子树 (2)访问根节点  (3)中序遍历右子树后序遍历二叉树的规则: (1)后序遍历左......