MySQL使用笔记

01 创建MySQL数据库并支持远程连接

MySQL篇


一、创建MySQL数据库并支持远程连接
=======================================================
安装MySQL
1. 下载安装MySQL服务端
sudo apt-get install mysql-server
2.切换root 用户
sudo su -
3.下载安装MySQL客户端
sudo apt-get install mysql-client
4.安装netstat
sudo apt install net-tools
5.用netstat查看MySQL是否安装成功
sudo netstat -tap |grep mysql
6.查看MySQL工作状态
systemctl status mysql.service
如果没有成功,输入命令:sudo systemctl start mysql尝试
ps -ef|grep mysqlld
7.查看mysql的版本
mysqladmin --version
=================================================================
使用MySQL
1.进入数据库设置密码
sudo mysql -u root -p
2.查看已有数据库
show databases;
3.创建数据库
create database Database_Test1;
进入数据库
use Database_Test1;
4.创建表
create table Table_Test1
(
    id          bigint auto_increment
        primary key,
    user_id     bigint       not null,
    title       varchar(255) not null,
    description varchar(255) not null,
    content     longtext     null,
    created     datetime     not null on update CURRENT_TIMESTAMP,
    status      tinyint      null
)
    charset = utf8mb4;
5.查看库中的表
show tables;
6.往表中写内容
INSERT INTO Table_Test1(id, user_id, title, description, content, created, status) VALUES (15, 1, '测试标题333333333333333333', '摘要3333333333333', 'content-333333333333333333333333333', '2020-09-19 15:07:45', 0);
7.查看表的内容
select * from Table_Test1;
8.查看表的段属性
desc Table_Test1;
9.退出
exit
============================================================================================
配置数据库远程连接
1.使用vi 打开文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf
在打开文件后,在文件中找到:bind-address = 127.0.0.1这一行,然后注释掉这一行。
然后重启mysql,[service mysql restart]
(个人认为vim使用挺麻烦的,建议下载WinSCP或者同类软件,远程连接数据库后,将mysqld.cnf拉到本地使用记事本修改,非常方便)
2.进入我们要修改的数据库
sudo mysql -u root -p
use mysql;
select host,user from user;
.报错原因是mysql 数据库中user 表中的特定用户(root) 的host 的属性值为localhost.
mysql> update user set host='%' where user='root';
mysql> grant all privileges on *.* to 'root'@'%';
mysql> flush privileges;
3.(a.更改加密方式 b.更改密码 c.刷新权限) 具体密码自己修改:
mysql> alter user 'root'@'%' identified by '123456' password expire never;
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
mysql> flush privileges;
4.查看端口
show global variables like 'port';
5.查看IP
mysql> exit
ifconfig
6.其他
sudo ufw allow 3306 
sudo ufw enable
sudo ufw status
==================================================================================================================


 

02 Mysql客户端-Navicat

二、Mysql客户端-Navicat
=============================================================================================
数据库的备份和还原
1. 关注并记录数据库的字符集和排序规则


2.右键数据库-转储SQL文件-表结构和数据
3.运行SQL文件-运行导出的文件即可
=============================================================================================
快捷键
打开命令窗口 F6
打开查询窗口 ctrl+Q
    代码提示  esc
    选中代码提示 tab
    注释 ctrl+/
    运行全部 ctrl+R 
    运行选定 ctrl+shift+R
    删除一行 ctrl+L


 

03 SQL语句

0.查看

1.数据库 show databases

2.表 show tables

3.字段 desc aaa;

4.建表语句 show create table aaa;

1.创建数据库

1.创建数据库
普通创建
    mysql -u root -p
    create database AAA 
使用mysqladmin创建数据库
    mysqladmin -u root -p create BBB
如果不存在则创建
    create database if not exists XXX default charset utf8 collate utf8_general_ci
 

2.删除数据库

2.删除数据库
普通删除
    mysql -u root -p
    drop database XXX
使用mysqladmin删除数据库
    mysqladmin -u root -p drop XXX
 

3.选择数据库

3.选择数据库
    use database AAA;
 

4.数据类型

5.创建数据表

5.创建数据表
    CREATE TABLE table_name (column_name column_type);

    CREATE TABLE IF NOT EXISTS `runoob_tbl`(
           `runoob_id` INT UNSIGNED AUTO_INCREMENT,
           `runoob_title` VARCHAR(100) NOT NULL,
           `runoob_author` VARCHAR(40) NOT NULL,
           `submission_date` DATE,
           PRIMARY KEY ( `runoob_id` )
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;

6.删除数据表

1. MYSQL中TRUNCATE和DELETE的区别

https://www.jianshu.com/p/ddc5b65e63af
1. MYSQL中TRUNCATE和DELETE的区别
MYSQL中TRUNCATE和DELETE都能够清理表中的数据,但是他们有什么区别呢?我们从下面的几点来分析:

1. 条件删除
这个比较好理解,因为DELETE是可以带WHERE的,所以支持条件删除;而TRUNCATE只能删除整个表。

2. 事务回滚
由于DELETE是数据操作语言(DML - Data Manipulation Language),操作时原数据会被放到 rollback segment中,可以被回滚;而TRUNCATE是数据定义语言(DDL - Data Definition Language),操作时不会进行存储,不能进行回滚。

DELETE回滚实验

可以看到DELETE是可以回滚成功的。

TRUNCATE回滚实验

可以看到TRUNCATE是不能回滚成功的。

 3. 清理速度
在数据量比较小的情况下,DELETE和TRUNCATE的清理速度差别不是很大。但是数据量很大的时候就能看出区别。由于第二项中说的,TRUNCATE不需要支持回滚,所以使用的系统和事务日志资源少。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项,固然会慢,但是相对来说也较安全。
4. 高水位重置
随着不断地进行表记录的DML操作,会不断提高表的高水位线(HWM),DELETE操作之后虽然表的数据删除了,但是并没有降低表的高水位,随着DML操作数据库容量也只会上升,不会下降。所以如果使用DELETE,就算将表中的数据减少了很多,在查询时还是很和DELETE操作前速度一样。
而TRUNCATE操作会重置高水位线,数据库容量也会被重置,之后再进行DML操作速度也会有提升。

2. drop truncate delete

7.MySQL插入数据

    INSERT INTO table_name ( field1, field2,...fieldN )
                               VALUES
 
                               ( value1, value2,...valueN );

8.MySQL 查询数据

1.全部 *  部分直接字段

SELECT * FROM websites;                      /* 查询表所有数据 */
SELECT NAME FROM websites;                   /* 查询表字段数据 */

2.条件 where

SELECT * FROM websites where name = "广西";   /* 查询表字段下条件数据 */

3.模糊 like

SELECT * from websites where name like "_o%"; /* 模糊查询表下数据 */

4.介于 between and 

SELECT * FROM websites where id BETWEEN "1" AND "5";    /* 查询表下字段范围数据 */

5. in 

SELECT * FROM websites WHERE name

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值