首页 >> 大全

MySQL笔记汇总篇

2023-08-26 大全 41 作者:考证青年

MYSQL简介

MySQL是一个开源的关系型数据库管理系统。

MYSQL的目录结构

1、bin目录:用于存储一些可执行文件,如mysql.exe等。

2、目录:用于存储包含的一些头文件,如mysql.h等。

3、lib目录:用于存储一些库文件。

4、share目录:用于存储错误信息、字符集文件等。

5、data目录:用于放置一些日志文件以及数据库。

6、my.ini文件:数据库的配置文件。

命令行启动mysql

net start →启动服务

net stop →停止服务

MySql的登录:

参数

描述

-u

用户名

-p

密码

-V

输出版本信息并且退出

-h

主机地址

MySql的退出:exit

quit

\q

MySql的常用命令

1、命令用于修改用户密码

命令格式: -u用户名 -p旧密码 新密码

2、show 命令用于显示所有数据库

命令格式:show ;

3、use命令使用数据库

命令格式:use ;

4、命令用于显示当前连接(选择)的信息

显示当前连接的数据库: ();

显示当前服务器版本: ();

显示当前日期时间: now();

显示当前用户: user();

创建数据库:在系统磁盘上划分一块区域用于数据的存储和管理。

[if not ] ; //创建数据库

[] set[=] ;//指定默认字符集

修改数据库

alter ; //修改数据库

[] set[=] ;//指定默认字符集

删除数据库

drop [if not ] ; //删除数据库

MYSQL的数据结构

数据类型:指数据列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。

整型: 1字节

2字节

3字节

int4字节

8字节

浮点数类型: float[(m,d)] 4字节

[(m,d)] 8字节

定点数类型: [(m,d)]

m是精度(=整数位数+小数位数),d是标度(小数点后的位数)

浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值

日期时间型: 类型 字节数 表示形式

year 1 yyyy

time 3 hh:mm:ss

date 4 yyyy-mm-dd

8 yyyy-mm-dd hh:mm:ss

4 yyyy-mm-dd hh:mm:ss

字符型: 类型 存储需求

char(m) 定长型,m个字节

(m) 变长型,l+1个字节

0~255

text 0~65535

0~2的24次方-1

0~2的32次方-1

enum(‘’,’’,…)取决于枚举值的个数(最多65,535个值)选单个值

例:性别 enum(‘男’,’女’)

set(‘’,’’,…)取决于set成员的数目(最多64个成员)选多个值

数据库表结构的操作

创建数据库表

table

列名1 数据类型[列级别约束条件][默认值],

列名2 数据类型[列级别约束条件][默认值],

……

[表级别约束条件]

);

复制数据库表

table 表1 as * from 表2;

查看数据库表

show [from ];

查看数据表基本结构

1.show from ;

2. ;/desc ;

查看表详细结构语句,可以用来显示数据表的创建语句

show table ;

①添加列

alter table

add

[约束条件][first|after已存在列名];

②修改列名

alter table

;

③修改列的数据类型

alter table ;

alter table ;

④修改列的排列位置

alter table

first|after ;

⑤删除列

alter table drop ;

⑥修改表名

alter table [to] ;

删除数据库表

使用drop table可以一次删除一个或多个没有被其他表关联的数据表。

drop table [if ] 表1,表2,…表n;

表分区:就是把一张表的数据分成多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,但所有的数据还在一个表中。

show ; //判定数据库版本是否支持表分区

显示以下信息表示支持

创建表分区

在创建表的时候使用: by 类型 (字段)

range分区:

根据指定某列的范围值进行分区。

使用 less than操作符定义分区。

例: table (//表定义

int,

(20)

by range()(//定义分区类型和字段

p1 less than (),//分区的定义

p2 less than (),

p3 less than

);

MYSQL约束

约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的完整性、唯一性。

约束类型非空约束主键约束 唯一约束 默认约束 外键约束

关键字 not null key key

非空约束:指字段的值不能为空。对于使用了非空约束的字段如果用户在添加数据时,没有指定值,数据库系统会报错。

语法规则:列名 数据类型 not null;

null:字段值可以为空。

not null:字段值禁止为空。

主键约束:要求主键列的数据唯一,并且不允许为空,主键能够唯一的标识表中的一条记录。

1、单字段主键

①在定义列的同时指定主键

列名 数据类型 key;

②在列定义的后面指定主键

[ ] key (列名);

2、多字段联合主键(或者叫复合主键)

主键有多个字段(列)联合组成。

key(字段1,字段2,…字段n);

修改表时添加主键约束

① alter table key;

② alter table add key (列名);

③ alter table add key (列名);

删除主键:alter table drop key;

唯一约束:要求该列唯一,允许为空,唯一约束可以确保列或者几列不出现重复指。

修改表时添加唯一约束

① alter table ;

② alter table add (列名);

③ alter table add (列名);

删除唯一约束

① alter table drop index ;

② alter table drop key ;

默认约束:指定某列的默认值。

语法规则:列名 数据类型 默认值;

修改表时添加唯一约束

① alter table 默认值;

② alter table alter set 默认值;

删除默认约束

① alter table ;

② alter table alter drop ;

外键约束

外键:用来在两个表的数据之间建立链接,它可以使一列或者多列。

外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。

语法格式: [ ] key(列名)

(主键);

修改表时添加外键约束

alter table add key(列名) (主键);

删除外键约束

alter table drop key ;

外键约束的参照操作

:从父表删除或更新且自动删除或更新子表中匹配的行

实现级联删除

[ ] key(列名)

(主键) on ;

图形化管理工具

MySql 是一款专门为用户提供了用于创建、修改、执行和优化SQL的可视化工具,通过它开发人员可以很轻松的管理数据库数据。

是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效的管理数据库。

数据库表记录的操作

① 为表的所有列插入数据

into 表名(数据列) (数据);

② 插入多条记录

into 表名(数据列) (数据1),(数据2),…,(数据n);

③ 将查询结果插入到表中

into 表名(数据列) (数据列) from 表名 where 条件;

设置表的属性自动增加

语法格式:列名 数据类型

注:约束的字段可以是任何整数类型。

建表时可用” =n”选项来指定一个自增的初始值。

为已有的表添加自增列

alter table 表名 列名 数据类型 ;

修改自增列的起始值

alter table 表名 = x;(修改后列起始值从x开始)

去掉自增列

alter table 列名 数据类型;

单表数据记录的更新

语法格式: 表名 set 列名1=数据值1,…,列名n=数据值n where(条件);

单表记录的删除

① from 表名[where ];

② table 表名;

将直接删除原来的表,并重新创建一个表。

查询结果不重复

列名 from 表名;

使用关键字指示MySQL消除重复的记录值。

查询空值

* from 表名 where 列名 is null;

可以查询某列内容为空的记录。

分组查询

[group by 列名][ ];

group by通常和聚合函数一起使用。

限定显示记录所需满足的条件,只有满足条件的分组才会被显示。

对查询结果排序

order by 列名 [asc|desc];

用limit限制查询结果的数量

limit关键字可以返回指定位置的记录

语法格式:limit [位置偏移量,]行数;

说明:第一条记录的位置偏移量为0,第二条为1,… 以此类推。

运算符与函数

算术运算符用于各类数值运算

+ - * / %

加法 减法 乘法 除法 取余(取模)

比较运算符

>、=、D:test.sql

备份数据库表:

例: --no- -uroot -p > xxx.sql

备份多个数据库:

例: --no- -uroot -p -- mysql > xxx.sql

备份全部数据库:

例: --no- -uroot -p --all- > xxx.sql

数据的恢复

使用mysql命令恢复,语法格式:

mysql –u user –p [] < .sql

如果已经登录没有到期了服务器,还可以使用命令导入SQL文件,语法:

导出:就是将mysql数据库中的数据导出到外部存储文件中。

导入:就是将外部存储文件中的数据导入到mysql数据库中。

数据表的导出

使用…into 导出文本文件,语法格式: from table where into ‘’ []

[]为可选参数选项,比如:

① 参数 by ‘value’:设置字段之间的分割字符,可以为单个或多个字符,默认情况下为制表符’\t’。

② 参数lines by ‘value’:设置每行数据结尾的字符,可以为单个或多个字符,默认情况下为制表符’\n’。

文件导入导出路径:

my.ini→ -file-priv="e" //指定mysql导入导出路径

-file-priv=null //限制mysql导入导出

-file-priv=’’ //mysql导入导出不做任何限制

例:mysql> * from . into '…/class.txt'

-> by ','

-> lines by '\r\n';

使用命令导出文本文件

创建一个包含创建表的 table语句的.sql文件和一个包含其数据的.txt文件。

语法格式: –T path –u root –p [] []

[]为可选参数选项,比如:

1、----by=value:设置字段之间的分隔字符,可以为单个或多个字符,默认情况下为制表符’\t’。

2、--lines--by=value:设置每行数据结尾的字符,可以为单个或多个字符,默认情况下为制表符’\n’。

使用mysql命令导出文本文件

语法格式:mysql –u root –p --=”语句” > .txt

(导出文件第一行多出字段名)

数据表的导入

使用load data 方式导入文本文件,语法格式: load data ‘.txt’ into table [] [ lines]

[]为可选参数选项,比如:

① 参数 by ‘value’:设置字段之间的分割字符,可以 为单个或多个字符,默认情况下为制表符’\t’。

② 参数lines by ‘value’:设置每行数据结尾的字符,可以为单个或多个字符,默认情况下为制表符’\n’。

使用命令导入文本文件

语法格式: –u root –p .txt []

[]为可选参数选项,比如:

1、----by=value:设置字段之间的分隔字符,可以为单个或多个字符,默认情况下为制表符’\t’。

2、--lines--by=value:设置每行数据结尾的字符,可以为单个或多个字符,默认情况下为制表符’\n’。

补充:

USE数据库名:

选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。

SHOW :

列出 MySQL 数据库管理系统的数据库列表。

SHOW :

显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。

SHOW FROM数据表:

显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

SHOW INDEX FROM数据表:

显示数据表的详细索引信息,包括 KEY(主键)。

SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern'] \G: 

命令将Mysql数据管理系的性能及统计信息

# 加上 \G查询结果按列打

UNION 操作符用于连接两个以上的 语句的结果组合到一个结果集合中。

UNION [ALL | DISTINCT]

:可选,删除结果集中重复的数据。

ALL:可选,返回所有结果集,包含重复数据。

没有使用百分号%, LIKE 子句与等号=的效果是一样的。

当提供的查询条件字段为 NULL 时,MySQL提供了三大运算符:

事务

在MySQL 中只有使用了 数据库引擎的数据库或表才支持事务。

索引分单列索引和组合索引

单列索引,即一个索引只包含单个列,一个表可以有多个单列索引。

组合索引,即一个索引包含多个列。

创建索引

CREATE INDEX indexName ON table_name (column_name)

修改表结构(添加索引)

ALTER table tableName ADD INDEX indexName(columnName)

临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。

如果使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时表,那么只有在关闭客户端程序时才会销毁临时表,当然也可以手动销毁。

INTO 会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据

查看MySQL的安装目录和数据存放目录

@@; #安装目录

@@; #数据存放目录

show like '%%'; #查看-file-priv值

?MySQL导出文件时,遇到报错“The MySQL is with the ---file-priv so it this ”

!找到my.ini配置文件,搜索,修改-file-priv路径(注意斜杠和反斜杠),重启MySQL服务。

使用 ... INTO 语句导出数据

通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式:

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/runoob.txt'

    -> FIELDS TERMINATED BY ',' [optionally] ENCLOSED BY '"'

    -> LINES TERMINATED BY '\r\n';

MySQL 中 where in 语句的子查询限制

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了