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)相关推荐

  1. 老男孩mysql笔记_老男孩MySQL笔记 第二天2-2

    两种修改隔离级别的方法 事务具有ACID四种特性. 但是Isolation并发可能引起如下问题: 1.脏读 允许读取到未提交的脏数据. 2.不可重复读 如果你在时间点T1读取了一些记录,在T2时再想重 ...

  2. 映客2020.12.16一面面经

    实力还是不够啊啊啊啊啊,还是得继续学习.面完感觉知识面还是不够广,还有一些名词没听过.继续努力拿offer吧,加油加油. hashmap多线程下的安全问题?(hash冲突和扩容时优化) 你了解哪些锁? ...

  3. high-speed Charting Control使用介绍(新手向)(综合整合)(ChartCtrl)-2020.12.16

    本文主要介绍常用的Charting Ctrl+MFC个人使用心得和部分方法技巧 1.本人使用vs2019编写MFC,具体配置方法见博客链接 https://blog.csdn.net/qq_36076 ...

  4. 2020.12.16 ps临摹

    欢迎观看阿贝贝啊今日成果 今天临摹一张图一个草莓屋 还未完成,明日完结 原图如下 我的半成品 感谢观看阿贝贝啊的今日划水 日常

  5. MySQL笔记 - 用户管理

    转自: https://segmentfault.com/a/1190000014856560 MySQL笔记 - 用户管理 tags: 数据库 MySQL 用户管理 学习目标 MySQL是一个多用户 ...

  6. 高可用mysql笔记_MySQL笔记-高可用方案

    MySQL笔记-高可用方案 一.概述 MYSQL高可用方案有多种,本次针对其中部分方案进行实践.包括主从,双主,myql+keepalived, mysql+mycat+keepalived. 纸上得 ...

  7. PYTHON学习笔记之(一)2020.08

    PYTHON学习笔记之(一)2020.08 Python基础 数据类型 常见的列表.字典,以及元组.集合. 1 列表 list 1.1 列表转换字符串 stu = ['王一', '李二', '张三'] ...

  8. x509mysql_涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系 <>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确. mysql验证用户需要检查3项值:用户名.密码和主机来源(user.passwor ...

  9. 【python MySQL 笔记】python和MySQL交互、操作

    [python MySQL 笔记]python和MySQL交互.操作 目录 1. 数据准备 2.  SQL演练 2.1 SQL语句强化练习 2.2. 将一个表拆为多个表 3. python操作MySQ ...

最新文章

  1. java jpanel方法,Java JPanel.putClientProperty方法代码示例
  2. Eclipse 工作空间(Workspace)---Eclipse教程第07课
  3. java有画图的库吗_Java画图
  4. java calendar_Java Calendar getDisplayNames()方法与示例
  5. JVM初学之JVM的垃圾回收机制与垃圾回收器
  6. hibernate在不联网或者网络异常时不能解析配置文件
  7. shell脚本导出oracle数据库,Shell脚本备份恢复Oracle数据库简单示例
  8. [PyTorch] 基于Python和PyTorch的cifar-10分类
  9. 《BUG创造队》第九次团队作业:Beta冲刺与验收准备
  10. (原创)Windows系统后安装ubuntu,无法选择启动ubuntu。
  11. geotools 影像切片 缩放
  12. linux java解压文件怎么打开,java linux 解压zip文件怎么
  13. 软件体系结构期末复习资料
  14. swf文件转mp4视频格式的失败与成功
  15. 字节码层面理解枚举类Enum在switch中的使用
  16. unity制作伪全息投影
  17. 2022---hgame第一周WriteUp
  18. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
  19. (Modern Family S01E04) Part 2 PhilClaire Luke和Haley玩游戏 Haley想去音乐会父母不同意
  20. HBase综合测试(头歌实践教学项目)

热门文章

  1. PMP考试的过与不过
  2. 炫彩无界,性能怪兽,M1 扛鼎未来 —— 2021 年 Apple 春季新品发布会全记录
  3. 网络调试助手ip地址配置
  4. geany php,ubuntu 中geany调用浏览器展示php文件
  5. 中国长超细纤维市场趋势报告、技术动态创新及市场预测
  6. 手把手的K-means聚类算法教程(含简介及教育数据应用实例 Python实现)
  7. 成为 Google 认证机器学习工程师,零基础也只需要 2 步!
  8. JQuery的45个经典插件应用
  9. 如何让大脑休息放松?
  10. Android培训Android课堂重点内容汇总