笔记:匪夷所思的mysql笔记(2020.12.16)
mysql笔记
登录
注意:mysql的所有指令语句以;结尾,在不输入;的情况下回车可以继续输入指令
进入安装根目录下的bin
mysql -u root -p
或用管理员登录
mysqladmin -u root
管理员默认密码为空,可如此设置密码
mysqladmin -u root password "new_password";
关闭服务
shutdown;
退出
exit;
用户创建
mysql8.0以前的版本可以使用grant在授权的时候隐式的创建用户,8.0以后已经不支持,所以必须先创建用户,然后再授权,命令如下:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
grant all privileges on *.* to 'username'@'%';
授权写成
grant select,insert,update,delete,create,drop on *.* to 'username'@'%';
管理数据库
use后所有操作都将针对该数据库
use database;
SHOW DATABASES:
列出 MySQL 数据库管理系统的数据库列表。
SHOW TABLES:
显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
SHOW COLUMNS FROM 数据表:
显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
SHOW INDEX FROM 数据表:
显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
SHOW TABLE STATUS [FROM db_name] [LIKE ‘pattern’] \G:
该命令将输出Mysql数据库管理系统的性能及统计信息。
数据库基本操作
创建数据库
create database 数据库名
删除数据库
drop database 数据库名
选择数据库
use 数据库名
SQL数据类型
runoob
大概的:
整形: TINYINT SMALLINT MEDIUMINT INT/INTEGER BIGINT
浮点型: FLOAT DOUBLE
小数值: DECIMAL
日期和事件类型: DATE TIME YEAR DATETIME TIMESTAMP
字符串类型: CHAR VARCHAR BLOB TEXT MEDIUMBLOB MEDIUMTEXT LONGBLOB LONGTEXT
创建表与删除表
通用语句,创建前需选择数据库
CREATE TABLE table_name (column_name column_type);
举例
create table hentai(
id int auto_increment,
title char(100),
author char(50),
pages smallint,
primary key(id)
)engine = innoDB default charset = utf8;
字符串类型要给定最大长度
primary key用于设置主键,主键内容不能重复
engine设置储存引擎(?),default charset设置编码
auto_increment表示自增,在添加数据时无需添加此项数据,且此项数据一定为主键
如果不希望数据的某个值为空
title char not null,
如此传入null时就会报错
删除表
drop table 表名;
插入数据
INSERT INTO table_name ( field1, field2,...fieldN )VALUES( value1, value2,...valueN );
field为column_name
查询数据
select * from 表名;
可以是任何一个column_name(或者多个以逗号分隔),为时输出整张表
详细地:
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
你可以使用 WHERE 语句来包含任何条件。
你可以使用 LIMIT 属性来设定返回的记录数。
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
where可以类似其他程序语言的方法给定限制条件,譬如:
select * from hentaidoujin where author = "shindoueru";
一般来说单双引号在mysql中区别不大,但单引号中的双引号可以正常使用,单引号中使用单引号时外层的单引号应写成双引号
即可输出所有author是shindoueru的行
PS:mysql语法的等号比较是=
关于使用JDBC连接数据库这件事
首先导入mysql-connector的jar包(放在D盘jars下了) (project structure)
8.0版本以上的mysql已经不再必要手动加载驱动了
连接前的几个静态变量
static final String DB_URL = "jdbc:mysql://localhost:3306/数据库名?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";static final String USER = "用户名";static final String PASSWORD = "密码";
useSSL allowPublicKeyRetrieval都是密钥相关的,serverTimeZone是统一服务器时区用的
声明连接和创建表(statement)
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);Statement stmt = conn.createStatement();
使用sql语句进行操作
ResultSet rs = stmt.executeQuery("SELECT 字段名 FROM 表");
如果表中有数据rs.next()返回true,则可以有
while(rs.next()){System.out.println(rs.getString("字段名")+" 本子名称:"+rs.getInt("字段名"));}
注意rs的getString方法,getInt方法
修改数据
UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ]
[ORDER BY 子句] [LIMIT 子句]
举例:
UPDATE hentaidoujin SET author='me';
就会把hentaidoujin内的所有作者都设成我,因为没有WHERE等语句限定
UPDATE hentaidoujin SET author='me' WHERE author='he';
就会把hentaidoujin内所有作者为他的作者改成我
语法说明
语法说明如下:
<表名>:用于指定要更新的表名称。
SET 子句:用于指定表中要修改的列名及其列值。其中,每个指定的列值可以是表达式,也可以是该列对应的默认值。如果指定的是默认值,可用关键字 DEFAULT 表示列值。
WHERE 子句:可选项。用于限定表中要修改的行。若不指定,则修改表中所有的行。
ORDER BY 子句:可选项。用于限定表中的行被修改的次序。
参考
删除数据
DELETE FROM 表名 WHERE...
如果没有限定语句将删除表内所有数据
并不会drop表,以与drop区分
笔记:匪夷所思的mysql笔记(2020.12.16)相关推荐
- 老男孩mysql笔记_老男孩MySQL笔记 第二天2-2
两种修改隔离级别的方法 事务具有ACID四种特性. 但是Isolation并发可能引起如下问题: 1.脏读 允许读取到未提交的脏数据. 2.不可重复读 如果你在时间点T1读取了一些记录,在T2时再想重 ...
- 映客2020.12.16一面面经
实力还是不够啊啊啊啊啊,还是得继续学习.面完感觉知识面还是不够广,还有一些名词没听过.继续努力拿offer吧,加油加油. hashmap多线程下的安全问题?(hash冲突和扩容时优化) 你了解哪些锁? ...
- high-speed Charting Control使用介绍(新手向)(综合整合)(ChartCtrl)-2020.12.16
本文主要介绍常用的Charting Ctrl+MFC个人使用心得和部分方法技巧 1.本人使用vs2019编写MFC,具体配置方法见博客链接 https://blog.csdn.net/qq_36076 ...
- 2020.12.16 ps临摹
欢迎观看阿贝贝啊今日成果 今天临摹一张图一个草莓屋 还未完成,明日完结 原图如下 我的半成品 感谢观看阿贝贝啊的今日划水 日常
- MySQL笔记 - 用户管理
转自: https://segmentfault.com/a/1190000014856560 MySQL笔记 - 用户管理 tags: 数据库 MySQL 用户管理 学习目标 MySQL是一个多用户 ...
- 高可用mysql笔记_MySQL笔记-高可用方案
MySQL笔记-高可用方案 一.概述 MYSQL高可用方案有多种,本次针对其中部分方案进行实践.包括主从,双主,myql+keepalived, mysql+mycat+keepalived. 纸上得 ...
- PYTHON学习笔记之(一)2020.08
PYTHON学习笔记之(一)2020.08 Python基础 数据类型 常见的列表.字典,以及元组.集合. 1 列表 list 1.1 列表转换字符串 stu = ['王一', '李二', '张三'] ...
- x509mysql_涂抹mysql笔记-数据库中的权限体系
涂抹mysql笔记-数据库中的权限体系 <>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确. mysql验证用户需要检查3项值:用户名.密码和主机来源(user.passwor ...
- 【python MySQL 笔记】python和MySQL交互、操作
[python MySQL 笔记]python和MySQL交互.操作 目录 1. 数据准备 2. SQL演练 2.1 SQL语句强化练习 2.2. 将一个表拆为多个表 3. python操作MySQ ...
最新文章
- java jpanel方法,Java JPanel.putClientProperty方法代码示例
- Eclipse 工作空间(Workspace)---Eclipse教程第07课
- java有画图的库吗_Java画图
- java calendar_Java Calendar getDisplayNames()方法与示例
- JVM初学之JVM的垃圾回收机制与垃圾回收器
- hibernate在不联网或者网络异常时不能解析配置文件
- shell脚本导出oracle数据库,Shell脚本备份恢复Oracle数据库简单示例
- [PyTorch] 基于Python和PyTorch的cifar-10分类
- 《BUG创造队》第九次团队作业:Beta冲刺与验收准备
- (原创)Windows系统后安装ubuntu,无法选择启动ubuntu。
- geotools 影像切片 缩放
- linux java解压文件怎么打开,java linux 解压zip文件怎么
- 软件体系结构期末复习资料
- swf文件转mp4视频格式的失败与成功
- 字节码层面理解枚举类Enum在switch中的使用
- unity制作伪全息投影
- 2022---hgame第一周WriteUp
- 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
- (Modern Family S01E04) Part 2 PhilClaire Luke和Haley玩游戏 Haley想去音乐会父母不同意
- HBase综合测试(头歌实践教学项目)