mysql_使用记录.md

特别事项

  • #mysql语句中关键字屏蔽用反引号,字符数据用单引号
  • 插入数据是NULL为空值
  • 日期值可以用单引号作为字符串传入,格式 YY-MM-DD HH:mm:ss
  • 日期类型可以直接用比较运算符比较
  • from db.table 库.表的形式查询,可以不用转换数据库

mysql_安装配置

mysql安装

windows系统下,准备事项: 下载mysql 5.7.19 zip文件

  1. zip解压到指定目录

  2. dos命令行切换到bin目录

    #切换到指定目录
    cd /d F:\JavaSoftware\mysql-5.7.19-winx64\mysql-5.7.19-winx64\bin
    
  3. 安装mysql 服务

    #安装mysql服务
    mysqld -install
    
  4. 初始化数据库

    #初始化数据库
    mysqld --initialize-insecure --user=mysql
    
  5. 启动mysql服务

    #启动mysql服务
    net start mysql
    #停止mysql 服务
    net stop mysql 
    
  6. dos连接mysql

    #密码单独输入登录 默认本地主机,3306端口
    mysql -u root -p
    #标准登录
    mysql -h 主机名 -P 端口 -u 用户名 -p密码
    mysql -h 127.0.0.1 -P 3306 -u root -p12345
    

mysql配置

  1. 新建my.ini文件

    解压目录下新建my.ini 文件,插入如下内容(跳过安全检测)

    [client]
    port=3306
    default-character-set=utf8
    [mysqld]
    #设置为自己的mysql 安装目录
    basedir=F:\JavaSoftware\mysql-5.7.19-winx64\mysql-5.7.19-winx64
    #设置为mysql 数据目录
    datadir=F:\JavaSoftware\mysql-5.7.19-winx64\mysql-5.7.19-winx64\data
    port=3306
    character_set_server=utf8
    #跳过安全检测,注销后需要输入密码
    skip-grant-tables
    
  2. 修改root密码

    dos命令登录mysql后修改,并刷新权限

    use mysql;
    update user set authentication_string=password('12345') where user='root' and Host='localhost';
    #刷新权限
    flush privileges;
    
  3. 退出mysql,重新登录

    #退出mysql
    exit(quit)
    mysql -u root -p
    

mysql卸载

#停止mysql 服务
net stop mysql
#卸载mysql 软件
mysqld --remove mysql
#删除mysql 服务
sc delete mysql

mysql架构

[外链图片转存失败,源站可能有防盗链机制,在这里插入图片描述
来直接上传(img-nt2CJWlc-1653316908185)(F:\files\learning_files\markdown_files\images\mysql_三层架构.png)]

数据库_相关操作


创建数据库

#创建一个使用 utf8 字符集,并带校对规则的 hsp_db03 数据库 
CREATE DATABASE [IF NOT EXISTS] hsp_db03 
CHARACTER SET utf8 #指定数据库字符集,默认utf8
COLLATE utf8_bin; 
#校对规则 utf8_bin 区分大小 默认 utf8_general_ci 不区分大小写

查看和删除数据库

#查看当前数据库服务器中的所有数据库 
SHOW DATABASES 
#查看前面创建的 hsp_db01 数据库的定义信息 
SHOW CREATE DATABASE `hsp_db01`
#删除前面创建的 hsp_db01 数据库 
DROP DATABASE [IF EXISTS] hsp_db01

备份和恢复数据库

#备份为sql语句
#dos执行, mysqldump 指令其实在 mysql 安装目录\bin
mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n > 文件名.sql
#示例
mysqldump -u root -p -B hsp_db02 hsp_db03 > d:\\bak.sql

#恢复数据库
#进入 Mysql 命令行再执行
source 文件名.sql
#示例
source d:\\bak.sql

数据类型(列类型)


数值类型

类型 大小 范围(有符号 无符号) 说明
TINYINT 1 Bytes (-128,127)
(0,255)
INT 4 Bytes (-2 147 483 648,2 147 483 647)
(0,4 294 967 295)
-21亿~21亿
0~42亿
BIGINT 8 Bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807)
(0,18 446 744 073 709 551 615)
-900京~900京
0~1800京
FLOAT 4 Bytes (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)
0,(1.175 494 351 E-38,3.402 823 466 E+38)
单精度
浮点数值
精确小数点后到8-9位
DOUBLE 8 Bytes (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
双精度
浮点数值
精确小数点后到15-16位
DECIMAL(M,D) 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 M为数字总位数,被省略默认是10,最大65
D为小数位数 ,被省略默认是0,最大30

万万为亿、万亿为兆、万兆为京、万京为垓

日期和时间类型

类型 大小(bytes) 范围 格式 说明
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 日期和时间
TIMESTAMP 4 1970-01-01 00:00:00/2038
结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07
YYYYMMDD HHMMSS 时间戳
自动记录 insert update 操作时间 需要字段创建时配置
示例
login_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

字符串和二进制类型

类型 大小 用途
char(size) 0-255 bytes 固定长度字符串,size表示字符数,最大255个字节
可提高字段的检索速度
varchar(size) 0-65535 bytes 可变长字符串,size表示字符数,最大65535个字节 ,其中1-3个字节存储长度,最大字符数根据编码而定
Text 0-65 535 bytes 文本数据
LongText 0-4 294 967 295 bytes 极大文本数据
blob 0-65 535 bytes 二进制数据
LongBlob 0-4 294 967 295 bytes 极大二进制数据

示例

CREATE TABLE IF NOT EXISTS`emp`(
    id INT UNSIGNED, 
    `name` VARCHAR(32), 
    sex CHAR(1), 
    birthday DATE,
    entry_date DATETIME, 
    job VARCHAR(32), 
    salary DOUBLE, 
    `resume` TEXT
) CHARSET utf8 COLLATE utf8_bin ENGINE INNODB;

表_相关操作


备份和恢复表

#备份表
#dos执行, mysqldump 指令其实在 mysql 安装目录\bin
mysqldump -u 用户名 -p密码 数据库 表12 表n > 文件名.sql

#恢复表,同数据库恢复

创建表

CREATE TABLE table_name(
	field1 datatype,
	field2 datatype,
	field3 datatype
)CHARACTER SET 字符集 COLLATE 校对规则 ENGINE 引擎;
#field1:列名 datatype:字段类型(列类型)
#CHARACTER SET:不指定为数据库字符集
#COLLATE:不指定为数据库校对规则
#ENGINE 存储引擎,一般为INNODB 

#示例
CREATE TABLE `user` ( 
    id INT, `name` VARCHAR(255), 
    `password` VARCHAR(255), 
    `birthday` DATE
) CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;

删除表

-- 要删除这个表 
DROP TABLE employee;

修改表

  • 添加列
ALTER TABLE table_name
ADD (COLUMN datatype [DEFAULT expr]
	[,COLUMN datatype]...);
[AFTER COLUMN];

#示例
ALTER TABLE emp 
ADD image VARCHAR(32) NOT NULL DEFAULT '' 
AFTER RESUME
  • 修改列
ALTER TABLE table_name
MODIFY (COLUMN datatype [DEFAULT expr]
	[,COLUMN datatype]...);
	
#示例
ALTER TABLE emp 
MODIFY job VARCHAR(60) NOT NULL DEFAULT ''
  • 删除列
ALTER TABLE table_name
DROP (COLUMN);

#示例
ALTER TABLE emp DROP sex
  • 查看表列
DESC table_name; -- 显示表结构,可以查看表的所有列
  • 修改列名
ALTER TABLE table_name
CHANGE 旧表名 新表名 约束;

#示例
ALTER TABLE employee
CHANGE `name` `user_name` VARCHAR(64) NOT NULL DEFAULT ''
  • 修改表名
RENAME TABLE 表名 TO 新表名

#示例
RENAME TABLE emp TO employee
  • 修改表字符集
ALTER TABLE 表名 CHARACTER SET 字符集

-- 修改表的字符集为 utf8 
ALTER TABLE employee CHARACTER SET utf8

DML语句

INSERT 语句

INSERT INTO table_name [(COLUMN[,COLUMN...])]
VALUES (VALUE[,VALUE...]);

#示例
INSERT INTO `goods` (id, goods_name, price) 
VALUES(10, '华为手机', 2000);

细节说明:

  • 字符和日期型数据应包含在单引号中。
  • 列可以插入null空值[前提是该字段允许为空]
  • insert into tab_name (列名…) values (),(),() 形式添加多条记录
INSERT INTO `goods` (id, goods_name, price) 
VALUES(50, '三星手机', 2300),
(60, '海尔手机', 1800);
  • 如果某个列没有指定 not null ,那么当添加数据时,没有给定值,则会默认给 null
  • 默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值

UPDATE 语句

UPDATE table_name
SET COLUMN_NAME1=expr1 [,COLUMN_NAME2=expr2 ...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值