原生 mysql 的基本使用

发布于:2022-11-03 ⋅ 阅读:(289) ⋅ 点赞:(0)

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

主流的数据库有:sqlserver,mysql,Oracle、SQLite、Access、MS SQL Server等,本文主要讲述的是mysql

数据库管理是干什么用的?

  • a. 将数据保存到文件或内存
  • b. 接收特定的命令,然后对文件进行相应的操作

PS:如果有了以上管理系统,无须自己再去创建文件和文件夹,而是直接传递 命令 给上述软件,让其来进行文件操作        ,他们统称为数据库管理系统(DBMS,Database Management System)

安装及启动登陆mysql操作

1、安装步骤:

  • a. 安装MySQL服务端
  • b. 安装MySQL客户端
  • c. 【客户端】连接【服务端】

d. 【客户端】发送语句给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等)

2、windows版本安装及启动:

  1)下载mysql服务端:http://dev.mysql.com/downloads/mysql/

  2)解压zip

  3)到对应目录执行cmd命令(最好以管理员运行cmd) cd mysql-5.7.18-winx64\bin

  4)初始化数据库 mysqld --initialize-insecure

  5)启动数据库net start mysql(自己设定的msyql名称),关闭服务器net stop mysql

  6)连接测试:mysql -u root -p

        7)输入密码:出现mysql命令行

3、linux(ubuntu)安装

        1)安装mysql服务端:sudo apt-get install mysql-server

        2)安装mysql客户端: sudo apt-get install mysql-client

        3)安装 libmysqlclient(这个在使用开发工具连接数据库使用会用到): 

                sudo apt-get install libmysqlclient-dev

        4)启动mysql服务端(如果安装时有图形输入用户名密码,这里需要用自己的用户名密码登录,没有可以执行这个):mysql -u root -p (mysql)

        5)进入mysql命令修改密码:

        mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456(你自己的密码)";

        2)退出,重新用自己的密码登录

Mysql 常见指令以及用户权限问题

1 all privileges           除grant外的所有权限
 2 select                  仅查权限
 3 select,insert           查和插入权限
 4 ...
 5 usage                   无访问权限
 6 alter                   使用alter table
 7 alter routine           使用alter procedure和drop procedure
 8 create                  使用create table
 9 create routine          使用create procedure
10 create temporary tables 使用create temporary tables
11 create user             使用create user、drop user、rename user和revoke  all privileges
12 create view             使用create view
13 delete                  使用delete
14 drop                    使用drop table
15 execute                 使用call和存储过程
16 file                    使用select into outfile 和 load data infile
17 grant option            使用grant 和 revoke
18 index                   使用index
19 insert                  使用insert
20 lock tables             使用lock table
21 process                 使用show full processlist
22 select                  使用select
23 show databases          使用show databases
24 show view               使用show view
25 update                  使用update
26 reload                  使用flush
27 shutdown                使用mysqladmin shutdown(关闭MySQL)
28 super                   使用change master、kill、logs、purge、master和set global。还允许mysqladmin调试登陆
29 replication client      服务器位置的访问
30 replication slave       由复制从属使用

 对于用户和IP的权限

1 用户名@IP地址 用户只能在改IP下才能访问
2 用户名@192.168.1.% 用户只能在改IP段下才能访问(通配符%表示任意)
3 用户名@% 用户可以再任意IP下访问(默认IP地址为%)

1)查看权限:show grants for '用户'@'IP地址' 

2)授权:grant 权限 on 数据库.表 to '用户'@'IP地址'

3)取消授权:revoke 权限 on 数据库.表 from '用户'@'IP地址'

4)实例:

1 grant all privileges on db1.tb1 TO '用户名'@'IP'
2 grant select on db1.* TO '用户名'@'IP'
3 grant select,insert on *.* TO '用户名'@'IP'
4 revoke select on db1.tb1 from '用户名'@'IP'

 Mysql数据类型

MySQL 的数据类型有大概可以分为 5 种,分别是整数类型、浮点数类型和定点数类型、日期和时间类型、字符串类型、二进制类型等。其中整数类型和浮点数类型可以统称为数值数据类型。

1. 整数类型

整数类型包括 tinyint、smallint、mediumint、int、bigint,不同类型的整数存储所需的字节数不相同,

根据占用字节数可以求出每一种数据类型的取值范围。

例如,TINYINT 需要 1 个字节(8bit)来存储,

 字节:二进制的算法,每8个位(bit)组成一个字节(Byte),在内存地址表现为00000000~11111111之间的位置,也就是说1字节的数据是8位进1,用0,1表示就是10000000=2^7,同理1千KB就是10000000000=2的10次方,1024=2^10,所以1KB=1024Byte。

那么 TINYINT 无符号数的最 大值为 28-1,即 255;TINYINT 有符号数的最大值为 27-1,即 127。其他类型的整数的取值范围计算方法相同,如下表所示。

 2.浮点数类型和定点数类型

浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE);定点类型只有一种,就是 DECIMAL

浮点类型和定点类型都可以用(M, D)来表示,其中M称为精度,表示总共的位数;D称为标度,表示小数的位数。

浮点数类型的取值范围为 M(1~255)和 D(1~30,且不能大于 M-2),分别表示显示宽度和小数位数。M 和 D 在 FLOAT 和DOUBLE 中是可选的,FLOAT 和 DOUBLE 类型将被保存为硬件所支持的最大精度。DECIMAL 的默认 D 值为 0、M 值为 10。

float 和 double 在不指定精度时,默认会按照实际的精度(由计算机硬件和操作系统决定),decimal 如果不指定精度,默认为(10,0)。


浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的范围;缺点是会引起精度问题。

3.字符串类型

字符串类型有 charvarchartinytexttextmediumtextlongtextenumset 等。

Varchar和Char区别,Varchar是变长,char是定长,一般使用Varchar,解决大部分问题

4.日期和时间类型

        表示日期的数据类型:yeartimedatedatetimetimestamp。当只记录年信息的时候,可以只使用year 类型

5.二进制类型

MySQL 中的二进制字符串有 bitbitaryvarbinarytinyblobblobmediumblob 和longblob
下表中列出了 MySQL 中的二进制数据类型,括号中的M表示可以为其指定长度。

 6.MySQL转义字符的使用

在 MySQL 或执行mysql语句时,除了常见的字符之外,我们还会遇到一些特殊的字符,如换行符、回车符等。这些符号无法用字符来表示,因此需要使用某些特殊的字符来表示特殊的含义,这些字符就是转义字符。

转义字符一般以反斜杠符号\开头,用来说明后面的字符不是字符本身的含义,而是表示其它的含义。且转义字符区分大小写,例如:'\b' 解释为退格,但 '\B' 解释为 'B'。

 例如:

mysql> SELECT 'dog', '"dog"','""dog""','dog''cat',  '\'dog';
+-------------+---------------+-----------------+--------------+--------------+
| dog |  "dog" | ""dog"" | dog'cat | 'C语言中文网 |
+-------------+---------------+-----------------+--------------+--------------+
mysql> SELECT "dog", "'dog'", "''dog''", "dog""cat", "\"dog";
+--------------+---------------+-----------------+--------------+--------------+
| dog  | 'dog' | ''dog'' | dog"cat | "dog |
+--------------+---------------+-----------------+--------------+--------------+


网站公告

今日签到

点亮在社区的每一天
去签到