在mysql数据库表示前面_MySQL数据库管理

文章目录

查看数据库结构

SQL语句概述

创建数据库和表

创建数据库

创建数据表

删除数据库和表

删除指定的数据表

删除指定的数据库

管理表中的数据:

修改,更新数据表中的数据记录

在数据库中删除指定的数据记录

数据表的高级操作

数据库用户授权

查看用户的权限

撤销用户权限

免密登录数据库配置方法

修改用户登陆的密码

查看数据库结构

查看数据库信息:

show databases;

重要的数据都放在mysql当中;注意结尾必须以;结尾

bc280db01445af0f4c42f484cb8d6475.png

查看数据库中的表信息

USE 数据库名 ##进入数据库;结尾要加“;”

509edb9bfa586cdccffd31c044cb6934.png

show tables; 查看数据库中的表的信息

0ab4a3445caeacd49584a1112012d7fa.png

查看有几个用户:

select user from user;

6f4d01c031cf98544f3491ef2074fd71.png

显示数据表的结构(字段)

Field:属性名称

type:属性类型

Null:属性是否为空

Key:主键

Default:默认规则

Extra:扩展属性

describe [数据库名.] 表名

7f3aab3787200e0105a31511e737e089.png

SQL语句概述

SQL语言:

●Structured Query Language的缩写,即结构化查询语言

●关系型数据库的标准语言

●用于维护管理数据库

包括数据查询,数据更新,访问控制,对象管理等功能

SQL分类

DDL:数据定义语言

DML:数据操纵语言

DQL:数据查询语言

DCL:数据控制语言

创建数据库和表

●DDL语句可用于创建数据库对象,如库,表,索引等

●使用DDL语句新建库,表

创建数据库

create database 数据库名 create database(固定格式)

283561c5014e8b5f95d79bf8a1862457.png

创建数据表

create table 表名 (字段定义…)

创建一个名为cai的表

mysql> create table cai (id int(3) not null primary key auto_increment,name varchar(10) not null,score decimal(5,2),address varchar(50) default '未知');

4b7c7d32ef298442d81d58363d8bf02a.png

删除数据库和表

使用DDL语句删除库

删除指定的数据表

删除某个表一定要加绝对路径(哪个库下面的哪个表)

mysql> drop table score;

bab72cea4af56eec0a574578e879e785.png

删除指定的数据库

Drop database 数据库名

mysql> drop database tian; ##删除数据库名为tian的

c98b696c6c2ea6ee35aead6442c2fa6c.png

管理表中的数据:

●DML语句用于对表中的数据进行管理

●包括的操作

INSERT:插入新数据

UPDATE:更新原有数据

DELETE:删除不需要的数据,删除数据的操作用delete

向数据表中插入新的数据记录

insert INTO 表名(字段1,字段2......) ##固定格式,中间用逗号隔开

values(字段1的值,字段2的值....) ##values对应的就是值

必须遵循顺序一致;字段1的名称对应字段1的值;数量相同;有多少个字段名称就需要对应多少个字段值;

mysql> insert into cai (id,name,score,address) values (2,'lisi',90.5,'hangzhou');

insert into 是固定格式;后面跟表名cai id的字段名对应后面的2;name对应lisi(字符集是需要加‘’的)

ccfc7b70755894737ff78a440fa4ddf8.png

直接写字段值的方法

这种方法如果不加字段名;默认的就是所有字段;要一一对应,按照顺序写全

mysql> insert into cai values (3,'wangwu',70,'suzhou');

7a2bbbd48112e5da6b6c09a0ea1cc901.png

多行插入的方法

mysql> insert into cai (name,score,address) values ('zhaoliu',60,'wuxi'),('tiaqi',80,'default');

多行中间需要用“,”做分割;不设id是因为id的规则设置的是自增长

64368245e7a9f248bbd8e64198f0442c.png

筛选

将超过80分以上的人筛选出来

mysql> select * from cai where score > 80; ##where做条件判断

09bcebb12c9cf6c4a78d4d71a0b89fb4.png

将分数大于80的数据生成一个新的表,表的名字为score

mysql> create table score as select * from cai where score > 80;

as:将后面的显示的内容导入到新表中

9f8195b96898a57da610a567018beb73.png

修改,更新数据表中的数据记录

Update 表名 set 字段名1=值1[,字段名2=值2] where 条件表达式

将名字为tiaqi的地址改为guangzhou

mysql> update cai set address='guangzhou' where name='tiaqi';

cai:表名 address:要修改的内容 where:判断条件 当name=tiaqi

6c40468db8aded37e18eba25b00e05f2.png

在数据库中删除指定的数据记录

Delete from 表名 where 条件表达式

将score表中的分数大于88.50的删除

mysql> delete from score where score = 88.50;

65327b2500edf8fbabdbc93e60c444c6.png

不带where条件的语句表示删除表中的所有记录

mysql> delete from score; ##删除score表中的数据;但是表还在

1b4fa1079868763fbd8357e034ec12d2.png

●DQL是数据查询语句,只有select

●用于从数据表中查找符合条件的数据记录

●查询时可不指条件

Select 字段名1,字段名2 from表名

719a86754177196786d502fa5a757a74.png

查询所有数据:

Select * from 表名

c4096a190be61dfd9b11b21fbc6d1737.png

数据表的高级操作

清空表

mysql> truncate table score;

cffeeab033fe66c60575d48dfac56192.png

临时表

●临时建立的表,用于保存一些临时数据,不会长期存在,当断开连接后,表就不存在了;

●这边的约束是在结尾定义的,前面要加“,”

这张表默认的字符集设定是utf8;写在括号外面是对整张表的一个设定

mysql> create temporary table cai_info (id int(4) not null auto_increment,name varchar(10) not null,hobby varchar(10) not null,primary key(id))engine=innodb default charset=utf8;

这时候用命令查看表的结构;发现表的结构设置完成

34775c4a80d2883c1e23f68777637c03.png

这时给name和hobby字段设置数据

mysql> insert into cai_info (name,hobby) values ('tom','youyong');

查看表数据时,是有内容的

e3f0ad8cdaac74507941e3004ebb0e6d.png

但是查看表的数量时,会显示没有这个表

95c330dac85a4caaed33428c34a1a016.png

当退出表后,再次连接后发现,表的内容消失了,也没有这个表

0f062a571c11a683922be0bb8d746187.png

克隆表

LIKE方法:

第一步:复制表结构:

将cai表的结构复制到new表当中

mysql> create table new like cai;

69ba5be54b8bcadd65c7e8567540232e.png

第二步是将数据导入到新表中

将cai表中的数据导入到new表中

mysql> insert into new select * from cai;

f6c50d187bab1c0ee12df1d2e7338b35.png

数据库用户授权

●DCL语句设置用户权限(用户不存在时,则新建用户)

●Grant

当用户存在时,直接提权

当用户不存在时,先创建用户,再提权。

GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY ‘密码’]

设置jerry用户从localhost主机,使用密码123456去登录

mysql> grant all on *.* to 'jerry'@'localhost' identified by '123456';

b243736b06d2094f7c148e52bbe89263.png

查看用户的权限

show grants for 用户名@来源地址

查看jerry用户的权限

mysql> show grants for 'jerry'@'localhost';

4d4404deba431d146ffb9bed49c81169.png

撤销用户权限

Revoke 权限列表 on 数据库名.表名 from 用户名@来源地址

删除jerry用户的权限

mysql> revoke all on *.* from 'jerry'@'localhost';

再次查看时发现jerry用户的权限没有了

14e717bb7bdd9ad39bed2aeee269aa49.png

免密登录数据库配置方法

添加tom用户使用123456密码从主机为localhost登录数据库

mysql> grant all privileges on . to ‘tom’@‘localhost’ identified by ‘123456’;

8daab19a2aadd32ba6e6c48706f47f3a.png

假如这时忘记密码,想免密登录的方法:

1.修改/etc/my.cnf的配置文件,在[mysqld]底行加入

skip-grant-tables ##跳过表的加载

61bb0bf3b034a6bf324642375016527f.png

这时用tom身份去登陆,不需要输入密码,直接回车就可以了,root用户去登录也是不需要密码的

118895fe5f7c5a87a4a954c127bee5fe.png

修改用户登陆的密码

这边修改root用户登录的密码为123456

Authentication_string:保存密码字段

mysql> update mysql.user set authentication_string=password('123456') where user='root';

Query OK, 1 row affected, 1 warning (0.01 sec)

Rows matched: 1 Changed: 1 Warnings: 1

mysql> flush privileges; ##刷新数据库

Query OK, 0 rows affected (0.00 sec)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值