前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零开始学后端(1)——MySql基础学习

从零开始学后端(1)——MySql基础学习

作者头像
老马的编程之旅
发布2022-06-22 12:51:27
8870
发布2022-06-22 12:51:27
举报
文章被收录于专栏:深入理解Android

启动MySQL服务

打开数据库连接之前:一定要保证MySQL服务已经开启了。那么如何启动MySQL服务?除了可以在安装的时候勾选随着开机自启动,还可以在运行 窗口(windows)为例子,输入以下内容:

net start 命令名字:开启一个服务,如:net start MySQL net stop 命令名字:关闭一个服务器,如:net stop MySQL

连接MySQL数据库:

方式1:进入MySQL命令行, 在命令行中输入密码; 方式2:在运行窗口中: 格式:mysql -u账户 -p密码 -h数据库服务器安装的主机的ip(如果是本机可以使用localhost) -P数据库端口 mysql -uroot -padmin -h127.0.0.1 -P3306 上面假设我的账号是root 密码是admin 若连接的数据库服务器在本机上,并且端口是3306。 则可以简写: mysql -uroot -padmin

Navicat for MySQL

Navicat for MySQL[1] 其实就是MySQL 的可视化工具,是一款强大的 MySQL 数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具,但对于新用户仍然易于学习。Navicat for MySQL 基于Windows平台,为 MySQL 量身订作,提供类似于 MySQL 的用管理界面工具。此解决方案的出现,将解放 PHP、J2EE 等程序员以及数据库设计者、管理者的大脑,降低开发成本,为用户带来更高的开发效率。

数据库操作和存储引擎

数据库对象:存储,管理和使用数据的不同结构形式,如:表、视图、存储过程、函数、触发器、事件、索引等。

数据库:存储数据库对象的容器。

数据库分两种: 1):系统数据库(系统自带的数据库):不能修改 information_schema:存储数据库对象信息,如:用户表信息,列信息,权限,字符,分区等信息。 performance_schema:存储数据库服务器性能参数信息。 mysql:存储数据库用户权限信息。 test:任何用户都可以使用的测试数据库。

2):用户数据库(用户自定义的数据库):一般的,一个项目一个用户数据库。

常用的操作命令:

查看数据库服务器存在哪些数据库: SHOW DATABASES; 使用指定的数据库: USE database_name; 查看指定的数据库中有哪些数据表: SHOW TABLES; 创建指定名称的数据库: CREATE DATABASE database_name; 删除数据库: DROP DATABASE database_name;

注意:;是必须的,不然不会正确显示

MySQL的存储引擎

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供不同的功能和能力。 通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。

MyISAM:拥有较高的插入,查询速度,但不支持事务,不支持外键。 InnoDB:支持事务,支持外键,支持行级锁定,性能较低。

InnoDB 存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但对比MyISAM,处理效率差,且会占用更多的磁盘空间以保留数据和索引。

MySQL常用列类型

最常用的整数类型: MySQL列类型 Java数据类型 INT/INTEGER: int/Integer BIGINT: long/Long

MySQL 以一个可选的显示宽度指示器的形式对 SQL 标准进行扩展,这样当从数据库检索一个值时,可以把这个值加长到指定的长度。 例如,指定一个字段的类型为 INT(6),就可以保证所包含数字少于 6 个的值从数据库中检索出来时能够自动地用空格填充。 需要注意的是,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围。一般不用指定位宽。 age int(2),并不是代表age最多存储99,而是指查询age值得时候使用两个0来占位.

FLOAT[(s,p)] : DOUBLE[(s,p)] : 小数类型,可存放实型和整型 ,精度(p)和范围(s) money double(5,2): 整数和小数一共占5位.其中小数占2位,最大值:999.99,最小-999.99. 都不够精确。 定点数据类型: DECIMAL,高精度类型,金额货币优先选择。

MySQL列类型 Java数据类型 FLOAT float/Float DOUBLE double/Double DECIMAL BigDecimal

char(size) 定长字符,0 - 255字节,size指N个字符数,若插入字符数超过设定长度,会被截取并警告。 varchar(size) 变长字符,0 - 255字节,从MySQL5开始支持65535个字节,若插入字符数超过设定长度,会被截取并警告。 一般存储大量的字符串,比如文章的纯文本,可以选用TEXT系列类型。 注意:在MySQL中,字符使用单引号引起来。 相当于Java中字符串(String,StringBuilder/StringBuffer);

日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。 注意:在MySQL中,日期时间值使用单引号引起来。 相当于Java中Date,Calender。

BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB: 存放图形、声音和影像,二进制对象,0-4GB。 但是,在开发中,我们一般存储二进制文件保存路径的路径存储在数据库中。 BIT:我们一般存储0或1,存储是Java中的boolean/Boolean类型的值。

表的操作

1.先进入某一个数据库.(使用USE database_name;命令) 2.输入建表的命令: CREATE TABLE 表名( 列名1 列的类型 [约束], 列名2 列的类型 [约束], …. 列名N 列的类型 约束 ); 注意:最后一行没有逗号

若在建表中使用到了数据库的关键字. 比如新建一张订单表:(order),但是order是数据库中的关键字(排序使用). 表名:t_order,若费用使用order这个单词.此时使用反引号()括起来,order`. 一般,起表名为:t_名字。

例子:创建一张表

代码语言:javascript
复制
创建一张学生信息表,记录学生的id,name,age.

CREATE  TABLE   `t_student`
(
         `id `         bigint,
         `name `  varchar(20),
         ` age `     int
);

查看表结构: DESC table_name; 查看表的详细定义(显示表的定义SQL语句): SHOW CREATE TABLE table_name; 删除表: DROP TABLE table_name;

表的约束(针对于某一列):

1.非空约束:NOT NULL,不允许某列的内容为空。 2.设置列的默认值:DEFAULT。 3.唯一约束:UNIQUE,在该表中,该列的内容必须唯一。 4.主键约束:PRIMARY KEY, 非空且唯一。 5.主键自增长:AUTO_INCREMENT,从1开始,步长为1。 6.外键约束:FOREIGN KEY,A表中的外键列. A表中的外键列的值必须参照于B表中的某一列(B表主键)。

主键设计,唯一标识某一行数据的: 1:单字段主键,单列作为主键,建议使用。 复合主键,使用多列充当主键,不建议。 2:主键分为两种: 1).自然主键:使用有业务含义的列作为主键(不推荐使用),比如身份证号码; 2).代理主键:使用没有业务含义的列作为主键(推荐使用);

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 启动MySQL服务
  • 连接MySQL数据库:
  • Navicat for MySQL
  • 数据库操作和存储引擎
  • 数据库:存储数据库对象的容器。
  • 常用的操作命令:
  • MySQL的存储引擎
  • MySQL常用列类型
  • 表的操作
  • 表的约束(针对于某一列):
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档