19-MySQL 笔记

1. MySQL 常用命令

1.1 常用命令行

  • mysql的启动与停止

    • 启动MYSQL服务 net start mysql
    • 停止MYSQL服务 net stop mysql
  • netstat –na | findstr 3306 查看被监听的端口 , findstr用于查找后面的端口是否存在

  • 在命令行中登陆MYSQL控制台

    • mysql –u root –p
  • 切换连接数据库的语法 : use dbname

  • 显示所有数据库 : show databases

  • 显示数据库中的所有表 : show tables

  • 显示某个表创建时的全部信息 : show create table table_name

  • 查看表的具体属性信息及表中各字段的描述 desc table_name

  • 备份一个数据库 mysqldump -uroot -p123456 数据库名 >E:\demo.sql

  • 备份多个数据库 mysqldump --all-database > D:\all_database.sql -u root -p

  • 数据库还原 source D:\all_database.sql

1.2 SQL语句

  • 创建数据库指定字符编码 create database 数据库名 default character set utf8

  • 数据库创建 : Create database db_name

  • 删除数据库 Drop database db_name

  • 建表

    • 创建数据表的语法 : create table table_name (字段1 数据类型 , 字段2 数据类型);

      • create table mytable (id int (10)  primary key auto_increment
                              username char(20));      
        
  • 删表 : drop table table_name

  • 添加数据 : Insert into 表名 [(字段1 , 字段2 , ….)] values (值1 , 值2 , ……),如果向表中的每个字段都插入一个值,那么前面 [ ] 括号内字段名可写也可不写

  • 查询 :

    • 查询所有数据 : select * from table_name
    • 查询指定字段的数据 : select 字段1 , 字段2 from table_name
  • 更新 update 表 set 字段名=? where id = ?

  • 删除表中的信息 delete from 表名 where id=?

1.3 表结构的修改

1)增加一个字段格式: 
    alter table table_name add column (字段名 字段类型); ----此方法带括号 2)指定字段插入的位置: 
    alter table table_name add column 字段名 字段类型 after 某字段; 
	删除一个字段: 
    alter table table_name drop 字段名;3)修改字段名称/类型 
    alter table table_name change 旧字段名 新字段名 新字段的类型;4)改表的名字 
    alter table table_name rename to new_table_name;5)一次性清空表中的所有数据 
    truncate table table_name; 此方法也会使表中的取号器(ID)1开始 

查看数据库当前引擎 
     SHOW CREATE TABLE table_name; 
     修改数据库引擎 
     ALTER TABLE table_name ENGINE=MyISAM | InnoDB; 

SQL语句运用实例: 
    --1 建users表 
    create table users (id int(10) primary key auto_increment,
                        name varchar(20) not null,
                        password varchar(20) not null,
                        address varchar(200)ENGINE = InnoDB AUTO_INCREMENT = 10 							CHARACTER SET = utf8; 

  --3. 向users表中插入数据,同时插入多条 
  insert into users (id,name,password,address) values 
                        (1,'lyh1','1234',null),
                        (10,'lyh22','4321','湖北武汉'),														(null,'lyh333','5678', '北京海淀'); 

2. where和having区别

where和having区别

  • where和having都是为了完成数据的过滤,它们后面都是添加条件;
  • where是在 group by之前完成过滤;
  • having是在group by之后完成过滤

以上关键字的顺序不能变,严格遵守
以上语句的执行顺序:

from 将硬盘上的表文件加载到内存
where:将符合条件的数据筛选出来。生成一张新的临时表
group by :根据列中的数据种类,将当前临时表划分成若干个新的临时表
having : 可以过滤掉group by生成的不符合条件的临时表
select : 对当前临时表进行整列读取
order by : 对select生成的临时表,进行重新排序,生成新的临时表
limit : 对最终生成的临时表的数据行,进行截取

3. 事务

原子性:要么都成功,要么都失败

一致性:事务前后的数据完整性要一致。比如A本来有1000,给B转200,此时A剩下800,B多200,事务结束后两个加起来的数据要等于事务前的1000

持久性:事务一旦提交则不可逆转,被持久化到数据库中

隔离性:有多个用户在操作数据库时,数据库会为每个用户开启一个事务,不能被其他事务操作所干扰,但是隔离失败,会产生以下一些问题

脏读:指一个事务读取了另外一个事务未提交的数据。比如A在给B转钱的时候,这个事务还没提交,此时C也给B转但是A转B的事务还没提交,C读取的数据是A转B之前的数据

不可重复读:在一个事务中读取一张表,多次读取的数据不同。比如在生成一个转账后的表,刚要点生成表的时候,发现数据突然有变化,是因为有另一个人又转的钱进来

幻读:在一个事务内读取到了别的事务插进入的数据,导致前后不一致。一般是表后面多一行数据

4.windows10 完全卸载MySQL残留文件

  1. 先去卸载完MySQL
  2. 找到安装路径,删除mysql文件夹下的my.ini文件及所有数据;
  • 删除MySQL文件:默认安装路径:C:\Program Files\MySQL
  • 删除MySQL数据:默认路径:C:\ProgramData\MySQL(ProgramData文件夹是默认隐藏的,设置为显示后可见,或直接复制【C:\ProgramData\】地址到文件夹地址栏回车即可进入)
  1. 删除注册表中mysql文件;
  • WIN+R,输入“regedit”,打开注册表编辑器;
  • 删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL文件夹
  • 删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL文件夹。
  • 删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL的文件夹。
  • (如果没有不用删除了)

5.MySQL设置时区

每次搭载数据库的虚拟机重启之后,MySQL数据库会把时区默认设置成系统时区;在外部JDBC链接不上,提示时区错误; 比如用idae连接数据库时就会报错没有设置时区

解决办法:

Win+R调出CMD窗口 , 分别键入以下命令

mysql -hlocalhost -uroot -p

show variables like '%time_zone'; //查看当前时区

set global time_zone ='+8:00';  

flush privileges;

永久性:

如果安装在C盘的: 我们要进入 C:\ProgramData\MySQL\MySQL Server 5.7 此目录即可看到my.ini 此时你可以修改次配置啦!

这是一个隐藏目录

  1. 打开my.ini ,搜索 mysqld ,加入配置 default-time_zone=’+8:00’ 保存

在这里插入图片描述

  1. 关闭mysql服务: net stop mysql
  2. 开启mysql服务: net start mysql

猜你喜欢

转载自blog.csdn.net/weixin_46449115/article/details/109243783