MySQL 启停服务:net start/stop mysql
MySQL 登录:mysql -uroot -p
mysql -hip -p
mysql --host=127.0.0.1 --user=root --password=root
退出MySQL:exit/quit
mysql目录结构:
SQL:结构化查询语言(Structured Query Language)
MySQL 安装目录下:
配置文件:my.ini
mysql 数据目录:
C:\ProgramData\MySQL\MySQL Server 8.0\Data
数据库 :文件夹
表:文件
数据:文件中的内容
Mysql 数据库中的sql语句不区分大小写,关键字建议使用大写
单行注释:–/ #
多行注释:/* */
SQL 语句分类:
DDL: 操作数据库和表;
DML:增删改表中的数据;
DQL: 查询表中的数据;
DCL: 授权,定义数据库的访问权限和安全级别;
CRUD:
create
retrieve
* 查看所有数据库的名称:show databases;
* 查看某个数据库的字符集:show database mysql;
* 查看表结构:desc 表名;
update
* 修改数据库字符集:alter database 数据库名称 character set utf8;
* 修改表名:alter table 表名 rename to 新表名;
* 修改表的字符集:alter table 表名 character set utf8;
* 给表增加一列:alter table 表名 add 列名 数据类型;
* 删除列名:alter table 表名 drop 列名;
delete
* 删除数据库:drop database if exists cmcpdb;
* 删除表: drop table if exists 表名;
* 删除所有记录:
delete from 表名;
truncate table 表名;--效率更高;
约束:
主键约束:primary key
* 删除主键:alter table 表名 drop primary key;
* 添加主键:alter table 表名 modify 字段名 字段类型 primary key;
自动增长:auto_increment;
非空约束:not null;
* 添加约束:alter table 表名 modify 字段名 字段类型 not null;
* 删除约束:alter table 表名 modify 字段名 字段类型;
唯一约束:
删除:alter table 表名drop index 字段名;
外键约束:foreign key
建表时增加约束:
create table user(
user_id int primary key auto_increment,
user_name varchar(20),
dept_id int ,
CONSTRAINT 约束名 foreign key(字段名) references 外键所在表(字段名)
);
删除外键:alter table 表名 drop foreign key 约束名;
添加外键:alter table 表名 add CONSTRAINT 外键名 foreign key (字段名) references 外键所在表(字段名);
数据库的备份与还原:
命令行:
备份: mysqldump -u用户名 -p密码 数据库名称 > 保存的路径
eg: mysqldump -uroot -proot db1 > E://db1.sql
还原:1. 创建数据库;
2. use 数据库名称;
3. source 保存的备份的数据库路径;
eg:source E://db1.sql;
事务:
开启事务:start transaction;
回滚事务:rollback;
查看事务的默认提交方式:select @@autocommit; 1 --代表自动提交
修改事务的默认提交方式:set @@autocommit = 0;
事务的四大特征:
1. 原子性:不可分割性,最小单位
2. 持久性;
3. 隔离性;
4. 一致性: 数据操作前后,数据总量不变;
事务的隔离级别:
1. read uncommitted;
2. read committed (Oracle 默认隔离级别);
3. repeatable read(Mysql 默认隔离级别);
4. serializable
查询隔离级别:select @@tx_isolation;
修改隔离级别:set global transaction isolation level read committed;