MySQL数据库基本操作

1.登录MySQL

进入数据库的方法一:
mysql -uroot -pmysql # mysql 数据库密码(显示)

进入数据库的方法二:
mysql -uroot -p # 隐藏密码输入

2.数据库的基本操作

显示数据库版本(记得加;):

select version();

显示当前的时间:

select now();

查看所有数据库:

show databases;

创建数据库:
create database 数据库名 charset=utf8;

创建淘宝数据库:

create database taobao;

创建淘宝数据库并指定编码:

create database taobao charset=utf8;

查看创建数据库的语句:

show create database school

3.使用数据库taobao数据库
使用数据库:

use school;

显示数据库中所有的表:

show tables;

删除数据库:

drop database school;

4.数据表的基本操作
• auto_increment :自动增长
• not null :表示不为空
• primary key :表示主键
• default :默认值

查看当前的数据库中所有的表:

show tables;

创建students数据表:

create table students(
id int unsigned not null auto_increment primary key,
name varchar(50) not null default ‘张三’,
age tinyint unsigned not null default 18,
high decimal(5,2) not null,
gender enum(‘男’, ‘女’, ‘保密’)default ‘保密’,
cls_id int unsigned not null
);

插入一条数据到students表中:

insert into students values(0, ‘mike’, 18, 145,‘保密’,2)

查询students表中的所有的数据:

select * from students;

查看创建表的语句:

show create table students;

删除表:

drop table students;

查看表的字段:

desc students;

添加表的字段:

alter table students add birth datetime;

修改字段:不改变字段名字:

alter table students modify birth date;

修改字段:不重命名版:

alter table students change birth birthday date default2020-01-01;

删除字段:

alter table students drop cls_id;

插入数据 insert into 表名 value(…):
主键可以用 0 null default来占位

insert into students values(null, ‘lily’, 22, 168, 2,1990-01-01);

部分插入:

insert into students(high) values(172);

多行插入:

insert into students(name, high) values(‘李四’, 178),(‘老王’, 1.44);

多行插入全部数据:

insert into students values(null, ‘lily’, 23, 173, 2,1990-01-01), (null, ‘xiao’, 22, 189, 2,1990-02-03);

修改表:

修改全部年龄:

update students set age= 30;

修改指定id的年龄:

update students set age=28 where id=1;

查询表的内容:

select * from students;

定条件查询:

select * from students where id=2;
select * from students where id>=1 and id<=3;

查询指定的列:

select id, name from students where id>=1 and id<=3;
select name, id from students where id>=1 and id<=3;

可以用as来为列表指定别名(显示出来的名字就是指定的名字):
select name as 姓名, id as 学号 from students where id>=1 and id<=3;

物理删除 (删除表里的内容):

delete from student where id=6;

逻辑删除(用新的字段作为条件限制显示信息):

alter table students add is_delete bit default 0;

把id=1的is_delete改为1:

update students set is_delete=1 where id=1;

查询然后条件限制为is_delete=0 就可以隐藏数据:

select * from students where is_delete=0;

5.数据表的查询操作

查询指定字段:

select name, age from students;

利用distinct字段消除重复行:

select distinct gender from students;

模糊查询:

查询以"李"开头的所有名字:

select * from students where name like ‘李%;

查询以"王"字结尾的所有名字:

select * from students where name like%王’;

查询有"三"的所有名字:

select * from students where name like%%;

查询有两个字的名字:

select * from students where name like ‘__’;

查询有三个字的名字:

select * from students where name like ‘___’;

查询至少有两个的名字:

select * from students where name like%__%;

6.清空表
清空表:

只是清空表中信息,但是表还是存在。drop是删除表。
• delete from tablename
• truncate table tablename

7.克隆表
方法一:筛选身高大于174的数据存放到新表tmp 中:

mysql> create table tmp as select* from students where high>174;

方法二:like (只能复制表的结构属性,数据无法复制):

mysql> create table test like students;  //like 方法

8.用户权限设置

1.授予权限

GRANT 语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时, GRANT 语句将会创建新的用户;当指定的用户名存在时,GRANT 语句用于修改用户信息。

格式:

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

mysql>grant select on studengts.* to 'zhangsan' @ ' localhost 'identified by '123';

• 权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,
update”。使用“all”表示所有权限,可授权执行任何操作。
• 数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“”。例 如,使用“auth.”表示授权操作的对象为 auth数据库中的所有表。
• 用户名@来源地址:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP 地址,还可以使用“%”通配符,表示某个区域或网段 内的所有地址,如“%.bdqn.com”“192.168.1.%”等。
• IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时, 若省略“IDENTIFIED BY”部分,则用户的密码将为空。 执行以下操作可以添加一个名为“xiaoqi”的数据库用户,并允许其从本机访问,对 auth 数据库中的所有表具有查询权限,验证密码为“123456”。使用 GRANT 语句授权的用户 记录,会保存到 mysql 库的 user、db、host、tables_priv 等相关表中,无须刷新即可生效。

2.查看权限 SHOW GRANTS 语句

格式:

SHOW GRANTS FOR 用户名@来源地址

执行以下操作可以查看用户 'root’从主机 192.168.5.39 访问数据库时的授权信息。

mysql> mysql>SHOW GRANTS FOR 'root' @'192.168.5.39';

3.撤销权限 REVOKE 语句

格式如下所示:

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址
以下操作可以撤销用户 root从本机访问数据库 auth 的所有权限。

mysql> REVOKE all ON auth.* FROM 'root' @'localhost';

欢迎留言讨论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值