当前位置:   article > 正文

学习笔记——mysql数据库(一)_sudo apt install mysql

sudo apt install mysql

数据库知识

介绍

mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。

分类

关系数据库管理系统 RDBMS(Relational Database Management System ),主要分为关系型数据库和非关系型数据库。该系统是建立在关系模型基础上的数据库,借助集合代数等数学概念和方法来处理数据库中的数据。
关系型数据库的主要产品:
  1.  oracle:在以前的大型项目中使用、银行、电信等项目。
  2.  mysql :web时代使用最广泛的关系型数据库。
  3.  mysql server:在微软的项目中使用。
  4.  sqlite:轻量级数据库,主要应用在移动平台。
对象描述举例作用
student  school  class一个文件存放多行内容/多条数据
数据库aaaa_stu一个文件夹组织文件/表
数据库管理系统mysql一个软件管理数据库
数据库服务器pc一台计算机运行数据库管理软件
关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用
非关系型:mongodb,redis

MySQL数据库安装

安装
sudo apt-get install mysql-server

存在问题和解决方案

在输入“sudo apt-get install mysql-server”回车后,出现无法获得锁、无法锁定管理目录的错误。

使用rm命令进行解锁“sudo rm /var/lib/dpkg” 解锁之后即可安装。

启动服务

sudo service mysql start

查看进程中是否存在mysql服务

 ps ajx|grep mysql

停止服务

sudo service mysql stop

重启服务

sudo service mysql restart

客户端和服务器安装

  1. sudo apt-get install mysql-client
  2. sudo apt-get install mysql-service

进入数据库

mysql -u root -p

设置密码

mysqladmin -uroot -p password "mysql111"

 按ctrl+d或者quit或者exit退出   建议输入“exit;”退出

SQL语言命令

SQL语言分类

  1.  数据检索 select 语句。
  2.  数据操作 dml 语句,对数据进行增加、修改、删除 : insert ,delete,update
  3.  数据定义 ddl 语句,进行数据库、表的管理等 create, drop, alter, truncate
  4.  事务操作 tcl 语句,事务处理语言,对事务进行处理 commit, rollback, savepoint
  5.  数据控制 dcl 语句,进行授权与权限回收 grant revoke
备注:
  • SQL是一门特殊的语言,专门用来操作关系数据库。
  • 不区分大小写()。
  • 学习数据库核心是学习SQL语句。来对数据进行增删改查操作。

常用命令

查看版本

select version();

显示当前时间

select now();

查看所有数据库

show databases;

切换使用的数据库

use 数据库名;

查看当前使用的数据库

select database();

创建数据库(不支持重复创建)

create database 数据库名;

查看数据下的表

  1. show tables; # 查看当前表
  2. show tables from 数据库名; # 查看数据库下的表

查看表的信息

desc 表名;

删除数据库

drop database 数据库名;

数据有效性

一个数据库就是一个完整的业务单元,可以包含多张表,相关的数据被存储在表中。为了更加准确存储表中的数据,保证数据的正确有效性,在创建表的时候,为表添加一些强制的验证,包括数据字段的类型,约束条件等。
数据类型的使用原则是:够用,尽量使用取值范围小的,可以节省存储空间。
常用的数据类型如下:
整数: int ,bit
小数:decimal
字符串:varchar ,char
日期时间: date,time,datetime
枚举类型(enum)

整型

小整数:

数值范围:有符号:-128 - 127       (负2的7次  to  2的8次减1)

                  无符号:0 - 255            (0  to  2的8次减1)

PS: MySQL中无布尔值,使用 tinyint(1) 构造。

tinyint[(m)][unsigned][zerofill]

整数:

数值范围:有符号:-2147483648 - 2147483647   (负2的31次  to  2的31次减1)

                  无符号:0 - 4294967295                      (0  to  2的32次减1)

int[(m)][unsigned][zerofill]

大整数:

数值范围:有符号:-9223372036854775808 - 9223372036854775807  (负2的63次  to  2的63次减1)

                  无符号:0 - 18446744073709551615                                     (0  to  2的64次减1)

bigint[(m)][unsigned][zerofill]
  1. # int类型后面的存储是显示宽度,而不是存储宽度
  2. mysql> create table t1(id int(1) unsigned);
  3. # 插入7777777记录也是可以的
  4. mysql> insert into t1 values(7777777);
  5. # zerofill 用0填充
  6. mysql> create table t2(id int(5) unsigned zerofill);

浮点型

单精度浮点型:(非准确),M是全长,D是小数点后个数。M最大值为255,D最大值为30。

有符号: -3.402823466E+38 to -1.175494351E-38

               1.175494351E-38 to 3.402823466E+38

无符号: 1.175494351E-38 to 3.402823466E+38

精确度: 随着小数的增多,精度变得不准确。

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

双精度浮点型:(非准确),M是全长,D是小数点后个数。M最大值为255,D最大值为30。

有符号: -1.7976931348623157E+308 to -2.2250738585072014E-308

                2.2250738585072014E-308 to 1.7976931348623157E+308

无符号: 2.2250738585072014E-308 to 1.7976931348623157E+308

精确度: 随着小数的增多,精度比float要高,但也会变得不准确。

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

准确的小数值:M是整数部分总个数(负号不算),D是小数点后个数。 M最大值为65,D最大值为30。

精确度: 随着小数的增多,精度始终准确。

对于精确数值计算时需要用此类型 ,decaimal能够存储精确值的原因在于其内部按照字符串存储。

decimal[(m[,d])] [unsigned] [zerofill]

验证三种类型的精度(分别对三张表插入相应的记录)以及查询结果:

日期类型

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/990730
推荐阅读
相关标签
  

闽ICP备14008679号