MYSQL基础知识整理

目录

1、客户端命令

2、服务器端命令

3、常用数据类型

3.1、数值型

3.2、字符型

3.3、日期时间型

3.4、布尔型

4、mysql的执行方式

5、用户管理

1、客户端命令

客户端命令不需要以分号结尾 ,如果想获取客户端命令的帮助信息则:

mysql> help

mysql常用客户端命令如下:

mysql> quit或\q   #表示退出mysql
mysql> go或\g    #表示无论语句的结束符是什么都把语句送到服务器端执行,是在当被修改默认结束符后又不知道的情况下使用
例如:
mysql> select database()\g    #显示当前所在的数据库
mysql> use或\u 数据库名称     #表示设定默认数据库 
例如:
mysql> \u test    #表示使用test这个数据库
mysql> ego或\G   #表示sql命令取回的数据纵向显示 
例如:
mysql> select * from mysql.user\G    #表示读取mysql库中user表中的所有数据,如果不用\G,那数据可读性不高
mysql> system或\! #表示在不退出mysql客户端程序下执行shell命令,这个有点类似在vim中执行shell命令
mysql>  status或\s     #表示获取当前mysql的状态信息  
mysql>  delimiter或\d   #表示更换语句结束符,也就是可把默认的分号结束符号更换成其他的符号

2、服务器端命令

服务器端命令必须有语句结束符,默认是分号,获取服务器端命令帮助用以下命令:

mysql> help 命令

常用服务器端命令:

mysql> select version();    #表示显示mysql数据库的版本号
mysql> show databases;    #显示mysql中有哪些数据库
mysql> show databases like ‘t%‘;    #显示以字母“t”开头的数据库
mysql> show variables;   #显示服务器参数变量,一样可以使用‘‘like’’这样的子句来做模糊查找
mysql> show variables like ‘datadir%‘;
mysql> show status;    #显示服务器状态变量
mysql> help create table  #获取创建表支持的数据类型
mysql> show character set;   #显示mysql所支持的字符集
mysql> show collation;  #显示排序规则
mysql> show processlist; #显示服务器当前所有mysql线程列表
mysql> show indexes from 表名;  #显示表中的索引信息
mysql> show table status\G  #查看当前默认数据库中表状态,有“\G”结尾的不要加分号
mysql> show table status [from | in] 数据库\G   #查看指定数据库中的表状态

3、常用数据类型

要想获取创建表的帮助,可查看到支持的数据类型,执行下边语句:

mysql> help create table;

3.1、数值型:数值型又分为精确数值型和近似数值型

精确数值型中的整型如下:

a)、tinyint:占用1bype(字节),即8位,表示数值范围,有符号(-128,127)无符号(0,255)。为什么有符号的范围是(-128,127)呢?因为表示有符号数值时最高位用来表示符号位,最高位是0表示正数,最高位是1表示负数,此最高位不表示数值大小,只表示符号。那有符号的数值中最小值为“10000000”,最大值为“01111111”,在计算机中是用补码来表示二进制数的大小,这里有一个原则,正数的补码就是其本身,负数的补码是各位取反后再加1,所以最小值“10000000”的补码为“011111111”,换算成十进制为127,再加上1就是128,因是负数,所以最小值就是“-128”,而正数的补码是其本身,所以换算成二进制就是127,所以有符号的范围是(-128,127)。

b)、smallint: 占用2bytes, 表示范围-(2^15-1+1),2^15-1或0,65535,计算方法如上。

c)、mediumint: 占用3bytes,表示范围"-(2^23-1+1),2^23-1"或"0,2^24-1"

d)、int:  占用4bytes, 表示范围 "-(2^31-1+1),2^31-1"或"0,2^32-1"

e)、bigint:  占用8bytes,  表示范围"-(2^63-1+1),2^63-1"或"0,2^64-1"

数值类型后一般会接上一些修饰符,在精确数值型中会有以下修饰符:

not null:表示定义的字段的值不能为空值

default ‘默认值‘:表示定义的字段中的默认值

unsigned:表示定义字段的数值是无符号的

auto_increment:表示值自动增长

近似数值型中的浮点型:

a)、fload:单精度数值,占用4bytes

b)、double:多精度数值,占用8bytes

数值类型后一般会接上一些修饰符,浮点型字符后的修饰符一般为:

not null,default ‘默认值‘,unsigned,zerofill,auto_increment

3.2、字符型

a)、不区分大小写的字符类型:

char(n):固定长度的字符类型,n表示数值

varchar(n):可变长的字符类型

b)、区分字符大小写的字符类型:

binary(n):固定长度的字符类型,n表示数值

varbinary(n):可变长的字符类型

c)、表示众多字符的字符类型:

text,blob这两种是表示众多字符型,text不区分大小写,blob区分大小写。这两种类型字符还有相应的变体

text:tinytext,text,mediumtext,longtext  存储的内容大小依次增大

blob:tinyblob,blob,mediumblob,longblob   存储的内容大小依次增大

这种类型的实际数据不是存放在表中的,而是存放在数据库外围的,表中只是存放了指向相应对象的指针。

常用修饰符:

修饰符:not null,default  ‘默认值 ‘

3.3、日期时间型

data:占用3bytes,范围:1000-01-01 to 9999-12-31,类型可用于一个日期值而不需要时间部分,如:‘YYYY-MM-DD’

time:占用3bytes,范围:-838:59:59 to 838:59:59,中间有好多表示的时间范围是浪费的,此类型用于一个时间,如:‘HH-MM-SS‘

datetime:占用8bytes,范围:1000-01-01 00:00:01 to 9999-12-31 23:59:59,是date与time的结合,表示‘YYYY-MM-DD HH-MM-SS’

year(2):占用1byte,范围:00 to 99,表示2位的年

year(4):占用1byte,范围:1901 to 2155,表示4位的年

timestamp:占用4bytes,格林威治时间,与datetime类似都是保存日期日间,格式为‘YYYY-MM-DD HH:MM:SS’,但表示的范围与datetime不同,数值在“1970-01-01 00:00:01-2038-01-18 22:14:07”之间

常用修饰符:null,not null,default ‘默认值‘

3.4、布尔型

tinyint(1):其实是一种整形,表示只显示一位,对于二进制来讲,一位不是“0”就是“1”

3.5、内置类型(字符型)

set:集合,比如:set(a,b),那可存放的数据为‘a‘或‘b‘或‘ab‘或‘ba‘

enum:枚举,比如:enum(a,b),那可存放的数据为‘a‘或‘b‘

4、mysql的执行方式

4.1、交互式方式:

-u‘用户‘ = --user=‘用户‘

-h‘主机名‘ = --host=‘主机名‘

-p‘密码‘ = --password=‘密码‘

-D‘数据库名称‘ = --database=‘数据库名称‘ ,表示接入Mysql后以哪个数据库作为默认数据库

-e‘sql语句‘ = --execute=‘sql语句‘ ,表示连接数据库直接执行sql语句,取回值后直接返回到shell

例子:

[[email protected] ~]# mysql --user=‘root‘ --host=‘localhost‘ --password=‘111111‘ #表示以root用户接入本地的Mysql服务,如果省略掉--user=‘‘ 和--host=‘‘ 选项,那就默认以root用户登陆本地的mysql,即命令可以简化为“mysql -p”
[[email protected] ~]# mysql --user=‘root‘ --host=‘localhost‘ --password=‘111111‘ -D mysql  #登陆后以mysql库作为默认数据库,省略了连接数据库后用“mysql> use mysql”来切换数据库的操作
mysql> select database();
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.01 sec)
 
[[email protected] ~]# mysql --user=‘root‘ --host=‘localhost‘ --password=‘111111‘ -e ‘select user,host,password from mysql.user;‘  
+-----------+-----------+-------------------------------------------+
| user      | host      | password                                  |
+-----------+-----------+-------------------------------------------+
| root      | localhost | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| root      | jason     |                                           |
| root      | 127.0.0.1 |                                           |
|           | localhost |                                           |
|           | jason     |                                           |
| cactiuser | localhost | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
+-----------+-----------+-------------------------------------------+
#"-e"选项表示连接数据库后直接执行sql语句,取回值后不停留在"mysql> ",而是返回到shell

4.2、批处理模式:

[[email protected] ~]# vim mysql.sql
select user,host,password from mysql.user;
a)、[[email protected] ~]# mysql -p111111 < mysql.sql
b)、mysql> source /root/mysql.sql

这两种方式都可以进行sql的批处理操作,注意一点就是mysql.sql这个脚本文件的权限问题,在“mysql> ”中进行sql脚本的批处理操作时mysql用户很有可能需要对sql的脚本文件要有可读的权限。

5、用户管理

5.1、创建、删除用户

创建用户:

语法:mysql> create user ‘用户名‘@‘主机名‘ identified by ‘密码‘;

用户名与主机可以使用通配符:

‘%‘表示匹配任意长度的任意字符;如(172.16.%.%)

‘_‘表示匹配任意单个字符

mysql> create user ‘zhaochj‘@‘%‘ identified by ‘111111‘;  #创建一个名为‘zhaochj’的用户

mysql> flush privileges; #因用户信息有改变,所以用户创建好后不要忘记刷新一下权限表,让用户信息加载到内存

删除用户:

mysql> drop user ‘用户名‘@‘主机‘;

5.2、给用户授予权限

语法:

mysql> grant all on 库名.表名 to ‘用户名‘@‘主机‘;  #表示把一个库中的一个表的所有权限授权给一个用户

mysql> grant all  on 库名.表名 to ‘用户名‘@‘主机‘ identified by ‘密码‘;  #表示创建一个用户并授予一个数据库中一个表的 所有权限,如果用户是对一个数据库上的所有表授权,那匹配所有表的通配符是“*”号

5.3、修改用户密码

两种方法:

a、mysql> set password for ‘用户名‘@‘主机名‘=password(‘密码‘);

b、]# mysqladmin -u用户名 password  ‘新密码‘  -p原密码

时间: 2024-10-23 04:55:59

MYSQL基础知识整理的相关文章

mysql 基础知识整理

什么是MySQL? MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的.MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改.MySQL的默认端口号是3306. 事务相关 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事务最经典也经常被拿出来说例子就是转账了.

Java基础知识整理(一)

概述 公司业务需要,产品既要有.NET又需要Java,没得选择,只能业余时间学习Java,整体觉得Java也.NET还是很相似的,只是语法有差别,差别也不是很大,这就将学习Java的基础知识整理下,以便于自己的学习.作为个.NET程序猿也可以学习Java ,毕竟技多不压身,学习多也要精通. 开发工具 eclipse ,开发java类似.NET 需要装JDK类似.NET Framework. Java开发工具eclipse设置 1.设置字体:window设置: 2.设置快捷键:window--ke

mysql基础知识之增删查改使用介绍

 mysql基础知识之增删查改使用介绍 本文主要介绍mysql常用的SELECT.INSERT.UPDATE.DELETE语句的使用,数据库的安装这里不做介绍,并且事先已经准备好相关数据. 本文中使用的student表中的数据如下: mysql> SELECT * FROM student; 一.SELECT语句的使用 1.单表查询 语法格式: SELECT culom1,culom2,culom3 FROM TABLE_NAME; 可以改变字段显示顺序 2.WHERE子句查询 语法格式: SE

DIV+CSS网页布局常用的一些基础知识整理

CSS命名规范一.文件命名规范 全局样式:global.css:框架布局:layout.css:字体样式:font.css:链接样式:link.css:打印样式:print.css: 二.常用类/ID命名规范页 眉:header内 容:content容 器:container页 脚:footer 版 权:copyright 导 航:menu主导航:mainMenu子导航:subMenu 标 志:logo标 语:banner标 题:title侧边栏:sidebar 图 标:Icon注 释:note

Kali Linux渗透基础知识整理(二)漏洞扫描

Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网络上传输的数据量. TCP协议 TCP是因特网中的传输层协议,使用三次握手协议建立连接.当主动方发出SYN连接请求后,等待对方回答SYN+ACK ,并最终对对方的 SYN 执行 ACK 确认.这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议. 连接建立 TC

MySQL基础知识

MySQL基础知识: 一. 知识点:        1. SQL分类:按照其功能不同,分为3中类别           DDL(Data Defintion Language):数据定义语句,用于定义不同的数据段.数据库.表.列.索引等.常用的语句关键字包括create.drop.alter等;             DML(Data Manipulation Language):数据操纵语句,用于添加.删除.更新和查询数据库记录,并检查数据的完整性.常用的语句关键字主要包括insert.de

JAVA基础知识整理

一.首先先明白get与post的基本定义和区别: 这是两种在客户端和服务器端进行请求-响应的方法. 1get:从指定的资源请求数据. 2post:向指定的资源提交要处理的数据. get基本上用于从服务器取回数据,注意:get方法可能返回缓存数据. post可以从服务器上获取数据,不过,post方法不会缓存数据,并且常用语连同请求一起发送数据. 二. Jquery $.get()方法. $.get()方法通过Http Get发起请求,从服务器上请求数据. 语法:&.get(URL,callback

perl重点基础知识整理

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

[HTTP] 高级基础知识整理

HTTP 高级基础知识 整理 HTTP 高级基础知识,包括 Cookie / Session / localStorage / sessionStorage / Cache-Control / Expires / Etag 等 Cookie cookie :wiki Cookie(复数形态Cookies),又称为"小甜饼".中文名称为"小型文本文件",指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密) -wiki coo