Mysql 数据库 基本操作

MySQL基础语法操作

安装完mysql之后配置环境变量(默认路径C:\Program Files\MySQL\MySQL Server 8.0\bin)

利用CMD进入mysqlmysql -uroot -p,提示输入密码

查看数据库

show databases   (可以看到数据库列表);

查看mysql运行在哪个端口号

show global variables like 'port';

默认数据库存在路径C:\ProgramData\MySQL\MySQL Server 8.0

my ini 表示mysql的配置文件 Data数据的文件夹

创建数据库

create database 数据库名

选择数据库

use  数据库名

查看数据库的表

show  tables;

删除数据库

drop database 数据库名;

更改加密方式

ALTER USER 'root@localhost' IDENTIFIED BY '你输入的密码' PASSWORD EXPIRE NEVER;
ALTER USER 'root@localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;

数据库字符集

ASCII码 => unicode => UTF-16 => UTF-8

存储引擎(新建表 => 选择中的引擎)

分类

* MEMORY: memory使用存在内存中的内容来创建表,每个memory表实际对应一个磁盘文件,格式是.frm.特点:MEMORY表的访问非常快,因为它到数据是放在内存中的,并且默认使用HASH索引,但是服务器一旦关闭,表中的数据就会丢失,但表还会继续存在;

* MYISAM: 它不支持事务,也不支持外键,尤其是访问速度快,对事务完整性没有要求或者以SELECT. INSERT为主的应用基本都可以使用这个引擎来创建表.每个MYISAM在磁盘上存储成三个文件,其中文件名和表名都相同,但是扩展名分别为: .frm(存储表定义) MYD(MyData,存储数据) MYI(MYIndex,存储索引)

* INNODB: InnoDB存储引擎提供了具有提交.回滚和崩溃恢复能力的事务安全.但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引

常用的数据类型

double(双精度小数型) char(固定字符串) varchar(可变字符串 常用) text(字符串) blob(二进制类型 存储视频 音频) date(日期类型) time(时间类型) datetime(日期时间类型)

在mysql中,字符串类型和日期类型都要用单引号括起来,‘Mysql’ ‘2020-11-25’

SQL语句

创建学生表(大写表示系统的指令)

CREATE TABLE student(
    id(主键) bigint,
    stu_name varchar(50),
    stu_age int 
);

添加一列

ALTER TABLE student ADD stu_gender varchar(2);

修改一个表的字段类型

ALTER TABLE student MODIFY stu_name VARCHAR(10)

查看表的字段信息

DESC student

修改表名

RENAME TABLE student TO newstu;

修改表的字符集

ALTER TABLE 表名 CHARACTER SET 字符集名称;

修改表的列名

ALTER TABLE 表名 CHANGE 原始列名 新列名 数据类型;

查看表的创建细节

SHOW CREATE TABLE 表名;

删除一列

ALTER TABLE 表名 drop 字段名

删除表

drop TABLE 表名

什么是SQL

SQL是Strucred Query Language(结构化查询语言)的缩写

SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言

在使用它时,只需发出"做什么"的命令,"怎么做"是不用我们考虑的

sql功能分类

DDL:数据定义语言:用来定义数据库对象

* 创建库,表,列等

DML:数据操作语言:用来操作数据库表中的记录

DQL:数据查询语言:用来查询数据

DCL:数据控制语言:用来定义访问权限和安全级别

SQL数据类型

Mysql中定义数据字段的类型对你数据库的优化是非常重要的

Mysql支持所有标准SQL数值数据类型

Mysql支持多种类型,大致分为三种: 数值类型 字符串类型 日期和时间类型

DML

查询表中所有数据

SELECT * FROM student

插入操作:INSERT INTO 表名(列名,列名2…) VALUE(列值1,列值2…)

INSERT INTO student(id,stu_name,stu_age) VALUE(3,'le',25);

INSERT INTO student(id,stu_name,stu_age) VALUES(3,'le',25),(4,'le',25),(5,'le',25);(插入多个数据)

INSERT INTO student VALUE(3,'le',25);(不写列名表示插入全部的,不能少属性)

更新语句:UPDATE 表名 SET 列名=列值,列名2=列值2… WHERE 列名=值

UPDATE student SET set_count=90;

UPDATE student SET stu_count=100 WHERE stu_name='xuan';

UPDATE student SET stu_count=100,stu_age=18 WHERE stu_name='xuan';

修改数据库密码

mysql8之前
use mysql
update mysql.user set authentication_string=password('123456') where user='root' and host='localhost'
flush privileges;刷新mysql的系统权限相关表

mysql 8
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
CMD修改密码:mysqladmin -u root -p password 当前密码 之后提示输入新密码

删除

DELETE FROM student WHERE id = 3;(删除指定数据:删除表中数据,表结构还在)

TRUNCATE TABLE student;(删除一个表的数据:直接删除表,然后在创建一个同样的新表,执行速度比DELETE快)

DQL

结果集

通过查询语句(select * from student)查询出来的数据以表的形式展示我们称这个表为虚拟结果集

查询返回的结果集是一张虚拟表

查询指定的列

SELECT stu_name from student;

主键约束

* 每个表中要有一个主键

* 数据唯一,不能为NULL值

唯一约束

* 指定列的数据不能重复

* 可以为空值

自动增长列

* auto_increment 在主键后面添加这个

域完整性

限制此单元格的数据正确,不对照此列的其他单元格比较

域代表当前单元格

域完整性约束

数据类型

* 数值类型
* 日期类型
* 字符串类型

非空约束(not null)

* CREATE TABLE 表名(字段名1 数据类型 PRIMARY KEY AUTO_INCREMENT,字段2 数据类型 UNIQUE NOT NULL)

默认值约束(default)

参照完整性

指表与表之间的一种关系

如何在忘记密码的情况下修改密码(8.0版本mysql)

先关掉系统服务
用mysqld --console --skip-grant-tables --shared-memory可以无密码启动服务
服务启动后,以空密码登入系统
mysql.exe -u root
然后执行sql命令将root用户密码设置为空
UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost';
或者修改登陆密码也是可以的
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

如何在linux中卸载mysql(删除都要删除全部的文件和安装包哦~)

卸载命令:
yum remove mysql-community-server
查看mysql相关的文件名
rpm -qa |grep mysql
卸载文件名
yum remove mysql-文件名(就是上面显示的全部复制)
第三步:卸载并不会自动删除配置文件等,所以我们还需要手动来删除
首先我们使用 find 命令来查找:
find / -name mysql
接着我们使用 rm 命令删除即可:
rm -rf 文件名

你可能感兴趣的:(Mysql 数据库 基本操作)