文章目录

  • 一、数据库的基本操作
    • 1.1、创建数据库(create)
    • 1.2、 查看已创建的数据库(show)
    • 1.3、 修改数据库信息(alter)
    • 1.4、 删除数据库(drop)
    • 1.5、 使用数据库(use)
  • 二、数据表的基本操作
    • 2.1、创建表(create)
      • 2.1.1、创建表的格式
      • 2.1.2、创建临时表
      • 2.1.3、克隆表
      • 2.1.4、数据类型(int char varchar double date)
    • 2.2、查看表(show,desc)
    • 2.3、删除表(drop)
    • 2.4、修改表结构(add,modify,change,drop,character set)
      • 2.4.1、添加表字段(add)
      • 2.4.2、修改字段名和字段类型(change)
      • 2.4.3、删除某列(字段) (drop)
      • 2.4.4、修改表名(rename)
      • 2.4.5、修改字符集 (character set)
      • 2.4.6、创建外键约束
      • 2.4.7、mysql常见的6种约束
  • 三、数据库用户管理
    • 3.1、新建用户
    • 3.2、查看用户信息
    • 3.3、重命名用户(rename)
    • 3.4、删除用户(drop)
    • 3.5、修改用户密码(已经进入数据库)
      • 3.5.1、修改当前用户密码
      • 3.5.2、修改其他用户密码
    • 3.6、忘记用户密码如何登录(没登录数据库)
      • 3.6.1、修改 /etc/my.cnf 配置文件,不使用密码直接登录到 mysql
  • 四、数据的增删改查(insert,delete,update,select)
    • 4.1、数据的增加操作(insert)
    • 4.2、数据的查询操作(select)
    • 4.3、数据的修改操作(update)
    • 4.4、数据的删除操作(delete,truncate)

一、数据库的基本操作

1.1、创建数据库(create)

基本语法:

  • 直接创建数据库
mysql> create database 数据库名;
  • 判断数据库是否存在然后创建
create database if not exists 数据库名;
  • 指定创建的数据库的所使用字符集
create database 数据库名 character set 字符集;

案例:创建数据库的案例

#创建db1数据库
create database db1;#如果存在不报错(if not exists)
create database if not exists 数据库名;
注意:不能创建相同名字的数据库!#创建db2并且指定字符集(如果有这个数据库就不能使用这条命令)
create database db2 default character set gbk;

操作:

1.2、 查看已创建的数据库(show)

  • 查看所有数据库
show databases;
  • 查看某个数据库
show create database 数据库名;

操作:

1.3、 修改数据库信息(alter)

说明:在MySQL5以后的版本中,MySQL不支持更改数据库的名称。我们所谓的修改数据库主要修改的是数据库的编码格式。

  • 修改数据库的编码格式(也就是字符集)
alter database 数据库名 character set 字符集;

操作:

1.4、 删除数据库(drop)

drop database 数据库名;

案例:删除db2数据库

drop database db2;

1.5、 使用数据库(use)

  • 查看正在使用的数据库
select database(); --使用mysql中的全局函数
  • 使用/切换数据库
use database 数据库名;

操作:

二、数据表的基本操作

2.1、创建表(create)

2.1.1、创建表的格式

create table 表名 (
字段1 字段类型1,
字段2 字段类型2,
字段3 字段类型3,
);

案例:创建stu表,拥有三个字段(id,name,sex)

create table stu ( id int ,name varchar(10),sex char(2));

操作:

关键字说明:

关键字 说明
create 创建
table

2.1.2、创建临时表

 #临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。基本命令:CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);

案例:

create temporary table test04 (id int not null,name varchar(20) not null,cardid varchar(18) not null unique key,primary key (id));
show tables;
insert into TEST04 values (1,'gyt','12345');
select * from test04;

操作:

总结:

  • 临时表创建后show不到
  • desc可以看到表的结构
  • select可以使用临时表,也可增删改查
  • 连接退出去后自动销毁

2.1.3、克隆表

  • 方法一:用like,只能克隆表结构,要想数据记录也复制进去,必须要insert插入才行
#只能克隆出他的表结构,里面的数据记录无法克隆下来#创建一个和旧表的结构相同的表
create table 新表名 like 旧表名;
#查看表中的记录
select * from 新表名 ;
#查看表的结构
desc 新表名 ;
#将旧表中的记录插入到新表中
insert into 新表名 select * from 旧表名;
select * from 新表名;

案例:复制一个表stu2,和stu一样的结构

操作:

  • 方法二:直接创建表导入数据
create table 新表名 (select * from 旧表名);
select * from 新表名;

案例:复制一个表stu3,和stu一样的结构以及数据

select * from stu;
create table  stu3 (select * from stu);
select * from stu3;

操作:

2.1.4、数据类型(int char varchar double date)

类型 说明
int 整型
double 浮点型
varchar 字符串类型
date 日期类型

2.2、查看表(show,desc)

  • 查看所有表(当前数据库)
show tables;
  • 查看表结构
desc 表名;
  • 查看创建表的SQL语句
show create table 表名;

操作:

2.3、删除表(drop)

  • 直接删除
drop table 表名;
  • 判断是否存在,存在的话再删除
drop table if exists 表名;

2.4、修改表结构(add,modify,change,drop,character set)

2.4.1、添加表字段(add)

#添加字段,默认时在字段后面加
alter table 表名 add 新字段名称 新字段类型;
#指定在哪个字段后面或者前面
alter table 表名 add 新字段名称 新字段类型 first|after 其他字段名称;

操作:

###2.4.2、修改字段类型(modify)

alter table 表名 modify 列名 新类型 ;

操作:

2.4.2、修改字段名和字段类型(change)

alter table 表名 change 旧列名 新列名 新类型 ;

案例:将表中的class字段改为classes字段并且修改类型为varchar(15)

alter table stu3 change class classes varchar(15) ;
desc stu3;

操作:

2.4.3、删除某列(字段) (drop)

ALTER TABLE 表名 DROP 列名;
desc stu2;

操作:

2.4.4、修改表名(rename)

#重命名,在当前数据库中修改表名(数据还在)
rename TABLE 旧表名 to 新表名;
或者
alter table  旧表名 rename 新表名 ;#移动表到另一个库里并重命名
rename table db01.t1 to db02.t11;
或者
alter table db01.t1 rename db02.t11;

案例1:当前数据库中重命名stu3改为stu2

rename table stu3 to stu2;
show tables;

操作:

案例2:

alter table stu2 rename stu3;

操作:

案例3:数据库db1中的表stu3移到数据库db2中,并且改名为stu2

alter table db1.stu3 rename db2.stu2;use db2;
show tables;

2.4.5、修改字符集 (character set)

alter table 表名 character set 字符集;

2.4.6、创建外键约束

#保证数据的完整性和一致性 外键的定义:
#如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。
#主键表和外键表的理解:
#1、以公共关键字作为主键的表为主键表(父表、主表)
#2、以公共关键字作为外键的表为外键表(从表、外表)

注意:与外键关联的主表的字段必须设置为主键,要求从表不能是临时表,主从表的字段具有相同的数据类型、字符长度和约束

示例:

create table TEST04 (hobid int(4),hobname varchar(50));
create table TEST05 (id int(4) primary key auto_increment,name varchar(50),age int(4),hobid int(4));
alter table TEST04 add constraint PK_hobid primary key(hobid);
alter table TEST05 add constraint FK_hobid foreign key(hobid) references TEST04(hobid);

操作:

例:添加数据记录
insert into TEST05 values (1,'zhangsan','20',1);
insert into TEST04 values (1,'sleep');
insert into TEST05 values (1,'zhangsan',20,1);

操作:

例:drop table TEST04;
drop table TEST05;
drop table TEST04;

操作:

注:如果要删除外键约束字段 ,先删除外键约束,再删除外键名

show create table TEST05;
alter table TEST05 drop foreign key FK_hobid;
alter table TEST05 drop key FK_hobid;
desc TEST05;

2.4.7、mysql常见的6种约束

主键约束 primary key
外键约束 foreign key
非空约束 not null
唯一约束 unique[key|index]
默认值约束 default
自增约束 auto_increment

三、数据库用户管理

3.1、新建用户

格式:

create user '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];###########################
‘用户名’:指定将创建的用户名
‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%
‘密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密; ------若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); <br>获取密文,再在语句中添加 PASSWORD ‘密文’; ------若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)

示例:

例:create user 'zhangsan'@'localhost' identified by '123123';
select password('123123');
create user 'lisi'@'localhost' identified by password '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1';

操作:

3.2、查看用户信息

说明:创建的用户信息保存在mysql数据的user表中

#切换数据库
use mysql;
#查看表中这三个字段的信息
select user ,authentication_string,host from user;

操作:

3.3、重命名用户(rename)

#重命名
rename user 'zcq'@'localhost' to 'zs'@'localhost';
#查看重命名是否成功
select user ,authentication_string,host from user;

3.4、删除用户(drop)

#删除用户
drop user 'zs'@'localhost';
#查看重命名是否成功
select user ,authentication_string,host from user;

操作:

错误示范:后面必须加主机,IP网段,或者IP地址

drop gyt;
drop user gyt;

错误操作:

3.5、修改用户密码(已经进入数据库)

3.5.1、修改当前用户密码

#修改密码(之前没设置密码也一样可以)
set password=password('88888888');
#查看88888888的密文表示(这和有没有这个密码没有关系,就像进制转换)
select  password ('88888888');
#查看密码是否修改成功
select user,authentication_string from user;
#退出当前用户
quit
#登录
mysql -u root -p
回车输入密码

注意:用户是空密码也一样可以用这种方法

操作:

3.5.2、修改其他用户密码

#修改其他用户的密码
set password for 'gyt'@'localhost'=password('abc123');
#使用mysql数据库
use mysql;
查看user表中的用户以及密文密码
select user ,authentication_string from user;

操作:

3.6、忘记用户密码如何登录(没登录数据库)

3.6.1、修改 /etc/my.cnf 配置文件,不使用密码直接登录到 mysql

vim /etc/my.cnf
#添加
skip-grant-tables                   #添加,使登录mysql不使用授权表
#重启服务
systemctl restart mysqld
mysql

四、数据的增删改查(insert,delete,update,select)

insert 增加
delete 删除
update 修改
select 查询

4.1、数据的增加操作(insert)

基本语法:

insert into 数据表 (字段1,字段2,字段3...) values (字段1的值,字段2的值,字段3的值...);
或者是
insert into 数据表 values (字段1的值,字段2的值,字段3的值...);
#设置自增的话用上面的一种,第二中的话是给指定的字段插入数据

案例1:

use db1;
create table stu ( id int ,name varchar(10),sex char(2));
insert into stu values (1,'zs','男');
insert into stu values (2,'ls','女');
select * from stu ;

4.2、数据的查询操作(select)

基本语法:

select * from stu ;
或
select * from 数据表名称 [where 查询条件];
或
#指定字段
select id,name,sex from 数据表名称 [where 查询条件];
#[ ]里面的可有可无

案例1:查询所有记录

select * from stu ;

操作:

案例2:查询性别是男的所有记录,显示所有字段

select * from stu where sex='男';

案例3:查询性别是男的,表格只显示id,sex

select id,sex from stu where sex='男';

操作:

说明:where条件除了=还有>,<等

4.3、数据的修改操作(update)

基本语法:

update 数据表名 set 字段1=更新后的值,字段2=更新后的值,... where 更新条件;
#where不加也行,一般情况下都加

案例:把性别是男的都设置为名字为zs,id为111

update stu set id=111,name='zs' where sex='男';

操作:

4.4、数据的删除操作(delete,truncate)

  • 方法一:delete删除
#DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录
delete from 表名;

案例:

select * from stu4;
delete from stu4;
select * from stu4;
insert into stu4 (name,sex) values ('老三','男');
select * from stu4;

操作:

  • 方法二:truncate删除
select * from 表名;
truncate table 表名;
#测试 truncate与delete的不同之处,在于如果id是自增的话,用delete删除记录后再添加记录从之前的最大id下一位算起,而
insert into TEST03 (name,cardid) values ('wangwu','33333');
select * from TEST03;

delete from与truncate区别在哪里?

  • delete:删除数据记录

    • 数据操作语言(DML)
    • 在事务控制里,DML语句要么commit,要么rollback
    • 删除大量记录速度慢,只删除数据不回收高水位线
    • 可以带条件删除
  • truncate:删除所有数据记录
    • 数据定义语言(DDL)
    • 不在事务控制里,DDL语句执行前会提交前面所有未提交的事务
    • 清里大量数据速度快,回收高水位线(high water mark)
    • 不能带条件删除

忘记数据库密码怎么办?来,我教你啊相关推荐

  1. 修改/忘记数据库密码

    文章目录 如何修改数据库密码 一. 用 SET PASSWORD 命令 二.用 mysqladmin 三.用 UPDATE 直接编辑 user 表 四.在忘记 root 密码的时候,可以这样 wind ...

  2. mysql忘记数据库密码

    1.停止mysql服务 2.以管理员身份开启命令行,进入mysql文件夹,mysqld --skip-grant-tables 3.另外以管理员身份开启一个命令行,直接输入mysql,就可以进入数据库 ...

  3. 忘记数据库密码怎么办

    注:本方法的前提是能够打开相关的数据库连接的情况下才有效 一.打开Navicat > 新建查询 二.输入SET PASSWORD FOR '用户名'@'主机' = PASSWORD('新密码') ...

  4. mac 修改本地数据库密码 忘记密码

    Mac本地安装了数据库,忘记数据库密码的情况下,可以按照以下步骤进行修改密码 step1: 关闭mysql服务: 苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服 ...

  5. redmin3 忘记管理密码找回方法

    在网上找了一下都是redmine2的,而且比较复杂. 后来我看了一下redmin的数据库,如下: 注册一个新用户把admin的值改为1即可,就是管理员了. 如果忘记数据库密码,可以参考此文档修改数据库 ...

  6. 我的第一次给了它:数据库密码忘记了不要慌傻瓜式教你修改

    数据库的的密码忘记了该如何解决 1.找到数据库文件里面的my.ini文件 (1)打开电脑的隐藏文件夹:查看--勾选隐藏的项目 (2)进入磁盘(你安装mysql的磁盘)找到ProgramData--My ...

  7. win上mysql忘记root密码_MySQL数据库之windows下mysql忘记root密码的解决方法

    本文主要向大家介绍了MySQL数据库之windows下mysql忘记root密码的解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 方法一: 1.在DOS窗口下输入net ...

  8. mysql数据库密码错误_MySQL数据库经典错误六 数据库密码忘记的问题

    数据库密码忘记的问题[root@zs ~]# mysql -uroot -p Enter password: ERROR 1045 (28000): Access denied for user 'r ...

  9. oracle备份密码文件,[数据库]Oracle数据库备份dmp文件,使用cmd命令导入导出步骤,以及忘记Oracle密码_星空网...

    Oracle数据库备份dmp文件,使用cmd命令导入导出步骤,以及忘记Oracle密码 2013-07-30 0 dmp文件导入导出步骤 1.创建表空间 --datafile 的路径随便给,但是后面的 ...

最新文章

  1. 《淘宝网开店 进货 运营 管理 客服 实战200招》——2.3 开店需要掌握哪些 进货技巧...
  2. python的tell和seek_python文件对象的seek和tell
  3. Java设计模式-外观模式
  4. ubuntu 中 iptables 和 ufw 的关系
  5. 旷视提出Circle Loss,革新深度特征学习范式 |CVPR 2020 Oral
  6. mybatis log4j 在日志中打印sql_SpringBoot整合MyBatis+详细打印执行SQL语句
  7. UIImage(类别)缩放适合范围.
  8. 面试被问高并发流量控制,我脸都绿了...
  9. oracle数据库如何写翻页_在oracle数据库中的分页SQL语句怎么写?
  10. Linux刻录光盘win10认不到,win10系统无法读取DVD和刻录光盘的具体操作步骤
  11. Element 之loading颜色修改
  12. IDEA 官网进不去解决办法
  13. 小米电视内存不足及卸载自带软件开机广告
  14. Java Web中乱码问题
  15. Linux 文件内容查看
  16. 多团队协同开发的18条实践
  17. 个人网络信息安全管理方法
  18. 最简单的基于Flash的流媒体示例:网页播放器(HTTP,RTMP,HLS)
  19. 【以太网硬件TCP/IP协议栈】硬件协议栈W5500应用
  20. 什么是Promise?Promise的优点

热门文章

  1. bilibili for mac
  2. 并发计算中的串行思考
  3. 移动中兴f663n光猫改成用网线的路由器
  4. Windows下安装labelImg详细过程(无法在Anaconda Prompt和Anaconda Navigator中安装labelImg)
  5. 多线程打印声母和韵母
  6. 基于android停车管理app,基于Android的城市智能停车APP设计与研究
  7. 什么是SAD,SAE,SATD,SSD,SSE,MAD,MAE,MSD,MSE?
  8. canon ip1180清零教程2780
  9. python怎么打希腊字母_带有希腊字母和UTF-8的Python SQL语句
  10. 如果有蛇吞象...TOPKU对这次联想收购IBM的看法