我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL数据库常用命令有哪些及如何使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL数据库常用命令有哪些及如何使用

本篇内容主要讲解“MySQL数据库常用命令有哪些及如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库常用命令有哪些及如何使用”吧!

1.对数据库常用命令

连接数据库
mysql -u用户名 -p密码
2.显示已有数据库
show databases;
3.创建数据库
create database sqlname;
4.选择数据库
use database sqlname;
5.显示数据库中的表(先选择数据库)
show tables;
6.显示当前数据库的版本信息以及连接用户名
select version(),user();
7.删除数据库(删除时没有提示直接删除)
drop database sqlname;

2.数据库中对表的命令

创建表
(1)语法:
create table tablename(
字段1 数据类型 字段属性
…
字段n
);
(2)注意:
1.创建表时为了防止与保留字冲突,用’'括起来
2.单行注释:#…
多行注释:/…/
3.创建表时多字段中间用英文逗号隔开,最后一行不用逗号。
(3) 字段约束和属性
1.非空约束 not null(字段不允许为空)
2.默认约束 default(设置默认值)
3.唯一约束 unique key(uk)(设置字段的值是唯一的,可为空,但只能有一个空值)
4.主键约束 primary key(pk)(作为表记录的唯一标识)
5.外键约束 foreign key(fk)(用于两个表之间建立关系,需要指定引用主表的哪一字段。在数据库的存储引擎中InnoDB支持外键,MyISAM不支持外键。
作为外键的字段要求是主表中的主键(单字段主键))

添加外键约束:
CONSTRAINT FK_外键名 FOREIGN KEY(字表中外键字段)REFERENCES 关联表名 (关联字段)。
grandid作为字表的外键

MySQL数据库常用命令有哪些及如何使用

MySQL数据库常用命令有哪些及如何使用

设置自增auto_increment=n,从n开始。
2.设置自增set @@ auto_increment_increment=m,步长为m。

MySQL数据库常用命令有哪些及如何使用

多字段设置主键:primary key(字段1,字段2…字段n)
4.表中的注释/说明性文字:)comment=“说明文字”;
5.设置字符集:)charset=“字符集”;
6.查看表的结构:describe’表名’/desc 表名
7.查看数据库定义:show create database sqlname;
8.查看数据表定义:show create table tablename;
9.查看默认存储引擎:show variables like’storage_engine%’;
11.指定表的存储引擎:)engine=存储引擎;
10.删除表:drop table ‘tablename’;
11.获取当前日期:now();
12.修改表:
(1)修改表名:alter table 旧表名 rename 新表名;
(2)添加字段:alter table 表名 add 字段名 数据类型…;(添加新的字段)
(3)修改字段:alter table 表名 change 原字段名 新字段名 数据类型…;
(4)删除字段:alter table 表名 drop 字段名;
(5)在创建完表以后添加主键约束:
alter table 表名 add constraint 主键名 primary key 表名(主键字段);
(6)创建完表以后添加外键约束(作为外键的字段要求是主表中的主键(单字段主键)):
alter table 表名 add constraint 外键名 foreign key(外键字段) references 关联表名 (关联字段);

插入数据

插入单行数据:
insert into 表名 (字段名列表(逗号隔开)) values(值列表(逗号隔开));
2.插入多行数据 :
insert into 表名(字段名列表) values (值列表1), … ,(值列表n);
3.将查询结果插入到新表中:
create table 新表(select 字段1, … ,from 原表);

查询student表中的id,name,sex,phone数据插入到newstudent表中:CREATE TABLE newstudent(SELECT id,`name`,sex,phone FROM student);

更新数据(修改数据):
update 表名 set 列名=更新值 where 更新条件;

修改newstudent表中id=1001的数据名字为tom:UPDATE newstudent SET `name`='tom' WHERE id=1001;

删除数据
(1)delete from 表名 where 删除条件;
delete 删除的是整条数据,不会只删除单个列。

删除newstudent表中名字为tom的数据:DELETE FROM newstudent WHERE `name`='tom';

(2)truncate table 删除数据:
truncate table 删除的是表中所有的行,但表的结构,列,约束,索引等不会改变。不能用于有外键约束的表。删除数据不能恢复。
truncate table 表名 where 删除条件;

数据查询

1.使用select查询
select 列名/表达式/函数/常量 from 表名 where 查询条件 order by 排序的列名asc/desc;
(1)查询所有的数据行和列:
select * from 表名;
(2)查询部分行和列:
select 列名… from 表名 where 查询条件;
(3)在查询中使用列的别名:
select 列名 AS 新列名 form 表名 where 查询条件;
计算,合并得到新的列名:
select 列名1+’.’+列名2 AS 新列名 from 表名;
(4)查询空值:
通过is null 或者 is not null 判断列值是否为空

查询student表中Email为空的学生姓名:SELECT `name` FROM student WHERE Email IS NULL;

2.分组查询

MySQL数据库常用命令有哪些及如何使用

#查询不同课程的平均分,最低分,最高分,并查询出平均分大于80分的课程SELECT r.subjectno,sub.`SubjectName` 课程名称,AVG(StudentResult) 平均分,MAX(StudentResult) 最高分,MIN(StudentResult) 最低分FROM result r INNER JOIN `subject` subON r.`SubjectNo`=sub.`SubjectNo` GROUP BY r.subjectno#where AVG(StudentResult)>=80出现错误,#分组查询group by 在where语句后,#group by 约束条件使用having语句HAVING AVG(StudentResult)>=80;

MySQL数据库常用命令有哪些及如何使用

常用函数

聚合函数:
(1)AVG (平均值):select avg(列名)from 表名
假设列名为成绩 则查询到的是表中所有成绩的平均值。
(2)count 返回某字段的行数
(3)max 返回某字段的最大数
(4)min 返回某字段的最小值
(5)sum 返回某字段的和。
2.字符串函数:
(1)concat() 连接字符串s1,s2…sn为一个完整的字符串。
(2)insert(s1,p1,n,news)将字符串s1从p1位置开始,n个字符长的字串替换为字符串news。
(3)lower(s)将字符串s中的所有字符改为小写。
(4)upper(s)将字符串s中的所有字符改为大写。
(5)substring(s,num,len)返回字符串s的第num个位置开始长度为len的子字符串。
3.时间日期函数:
(1)获取当前日期:curdate();
(2)获取当前时间:curtime();
(3)获取当前日期和时间:now();
(4)返回日期date为一年中的第几周:week(date);
(5)返回日期date的年份:year(date);
(6)返回时间time的小时值:hour(time);
(7)返回时间time的分钟值:minute(time);
(8)返回日期参数(date1和date2之间相隔的天数):datediff(date1,date2);
(9)计算日期参数date加上n天后的日期:adddate(date,n);
4.数学函数
(1)返回大于或等于数值x的最小整数:ceil(x);
(2)返回小于或等于数值x的最大整数:floor(x);
(3)返回0~1之间的随机数:rand();
order by 子句
order by子句按照一定的顺序排列查询结果,asc升序排列,desc降序排列。
limit子句
显示指定位置指定行数的记录。
select 字段名列表 form 表名 where 约束条件 group by分组的字段名 order by 排序列名 limit 位置偏移量,行数;
#查询学生信息里gid=1按学号升序排列前四条记录

MySQL数据库常用命令有哪些及如何使用

#查询学生信息里gid=1按学号升序排列前四条记录(步长)SELECT id,`name` FROM `student1` WHERE gid=1 ORDER BY id LIMIT 4;(查询表里全部信息中gid=1的前四个学生)

查询结果:

MySQL数据库常用命令有哪些及如何使用

#查询学生信息里gid=1按学号升序排列前四条记录(位置偏移量,步长)SELECT id,`name` FROM `student1` WHERE gid=1 ORDER BY id LIMIT 4,4;(查询表中全部信息gid=1前四条以后的全部信息中的前四条学生信息)

查询结果:

MySQL数据库常用命令有哪些及如何使用

模糊查询

in子查询******not in 子查询
使用in关键字可以使父查询匹配子查询返回的多个单字段值。
解决使用比较运算符(=,>等),子查询返回值不唯一错误信息。
like模糊查询
LIKE语句语法格式:select * from 表名 where 字段名 like 对应值(子串)。

它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。

A:% 包含零个或多个字符的任意字符串: 1、LIKE’Mc%’ 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
  2、LIKE’%inger’ 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
  3、LIKE’%en%’ 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
  B:_(下划线) 任何单个字符:LIKE’_heryl’ 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
  C:[ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符:、
  1,LIKE’[CK]ars[eo]n’ 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
  2、LIKE’[M-Z]inger’ 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)
  ***D:[^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符:LIKE’M[^c]%’ 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。
  E: 它同于DOS命令中的通配符,代表多个字符:cc代表cc,cBc,cbc,cabdfec等多个字符。
  F:?同于DOS命令中的?通配符,代表单个字符 :b?b代表brb,bFb等
  G:# 大致同上,不同的是代只能代表单个数字。k#k代表k1k,k8k,k0k 。
  F:[!] 排除 它只代表单个字符
  下面我们来举例说明一下:
  例1,查询name字段中包含有“明”字的。
  select * from table1 where name like ‘%明%’
  例2,查询name字段中以“李”字开头。
  select * from table1 where name like '李’
  例3,查询name字段中含有数字的。
  select * from table1 where name like ‘%[0-9]%’
  例4,查询name字段中含有小写字母的。
  select * from table1 where name like ‘%[a-z]%’
  例5,查询name字段中不含有数字的。
  select * from table1 where name like ‘%[!0-9]%’
  可以自定义转移符----》escape’自定义转移符’
  distinct------》去除重复项
    between*and模糊查询
 操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
 null ,not null查询

-- 查询手机号不为null的用户数据SELECT * from user where phone is not null; -- 查询手机号为null的用户数据SELECT * from user where phone is null;

exists 子查询 not exists子查询
exists子查询用来确认后边的查询是否继续进行
drop table if exists test—>判断是否存在表test,如果存在就删除。
not exists实现取反操作。对不存在对应查询条件的记录。

多表连接查询

多表连接查询是通过各个表之间共同列的关联性来查询数据。
1.内连接查询
内连接查询根据表中共同的列进行匹配。取两个的表的交集。两个表存在主外键关系是通常使用内连接查询。
内连接使用inner join…on 关键字或者where子句来进行表之间的关联。
inner 可省略 on 用来设置条件。
(1)在where子句中指定连接条件
(2)在from中使用inner join…on关键字

#查询学生姓名和成绩SELECT studentname,studentresult FROM student s,result rWHERE s.`StudentNo`=r.`StudentNo`
#在from中使用inner join....on关键字SELECT s.`StudentName`,r.`StudentResult` ,r.`SubjectNo`FROM student sINNER JOIN result r ON s.`StudentNo`=r.`StudentNo`

两种方法查询结果相同。
2.外连接查询
外连接查询中参与连接的表有主从之分,已主表的每行数据匹配从表的数据列,将符合连接条件的数据直接返回到结果集中,对不符合连接条件的列,将被填上null值再返回到结果集中。
(1)左外连接查询
left join…on 或者left outer join…on关键字进行表之间的关联。

SELECT s.`StudentName`,r.`StudentResult` ,r.`SubjectNo`FROM student sLEFT JOIN result r ON s.`StudentNo`=r.`StudentNo`

将没有成绩的学生成绩查出。
(2)右外连接查询
右外连接包含右表中所有的匹配行,右表中有的项在左表中没有对应的项将以null值填充。
right join…on 或right outer join…on关键字进行表之间的关联。
(3)自连接
把一个表作为两个表使用。

#创建一个表CREATE TABLE book(id INT(10),sort INT(10),books VARCHAR(10) NOT NULL);#插入数据INSERT INTO book VALUES (2,1,'古文书'),(3,1,'现代书'),(4,2,'《三字经》'),(5,2,'《唐诗三百首》'),(6,3,'《我与地坛》'),(7,2,'《游大林寺》'),(8,2,'《王右军年减十岁时》'),(9,3,'《致橡树》');#查询结果为:#书籍类型       书籍名#古文书         三字经....#现代书         我与地坛....SELECT a.books 书籍类型, b.books 书籍名  FROM book a,book bWHERE a.id=b.sort;

MySQL数据库常用命令有哪些及如何使用

自连接查询结果:

MySQL数据库常用命令有哪些及如何使用

MySQL的事务,视图,索引,备份和恢复

1.事务
事务是指将一系列数据操作捆绑成为一个整体进行统一管理。
把所有的命令作为一个整体一起向系统提交或者撤销造组偶请求。
事务属性:原子性,一致性,隔离性,持久性。
myISA存储引擎不支持事务。

关闭事务自动提交:set autocommit=0;
(1)开始事务:begin/start transaction;
(2)提交事务:commit;
(3)回滚/撤销事务:rollback;
恢复自动提交:set autocommit=1;
设置结果集以??编码格式显示:set names ??;
2.视图
视图是一种查看数据库中一个或多个表中数据的方法。视图是一种虚拟表,作为来自一个或多个表的行或列的子集创建的。视图充当查询中的表筛选器的角色。
(1)创建视图:create view 视图名 as <select语句>
(2)删除视图:drop view 视图名;
(3)查看视图数据:select 。。。。。from 视图名;
3.索引
索引类似于书的目录,使用索引可以将数据库程序无须对整个表扫描就可以在其中找到所需数据。
(1)普通数据:允许重复和空值。
(2)唯一索引:不允许出现重复。可以有多个唯一索引。
(3)主键索引:非空,唯一。删除时drop primary key;
(4)复合索引:将多个列组合作为索引。?
(5)全文索引:可重复和空值,在char,varchar,text创建。
where match(列名)against (&lsquo;查找内容&rsquo;);
(6)空间索引:对空间数据类型的列建立的索引。

创建索引:
create 【索引类型】index 索引名 on 表名 (创建索引的列);
或者创建表时之间在列后面加上索引类型。
或者修改表alter table 表名 add index 索引名 (索引列);
删除索引:drop index 索引名;
查看索引:show index from 表名;
4.数据库备份和恢复
1.使用mysqldump命令备份数据库
mysqldump -u -p 数据库名>备份数据库位置及名字;
表数据导出到文本文件
select *from 表名 where 查询条件 into outfile 备份数据库位置及名字;

2.使用mysql命令恢复数据库(先创建新的数据库)
mysql -u -p 新创建数据库名<所要恢复数据库位置及文件名;
source命令恢复数据库
source 数据库备份文件;

新建用户

#创建本地用户CREATE USER `user`@`localhost` IDENTIFIED BY '123123';#用户可登陆任何远程主机,使用通配符%CREATE USER `user2`@`123%` IDENTIFIED BY '123123';#对用户进行全部权限授权GRANT ALL ON mysql.`user` TO `user2`@`123%`;#对已创建的用户授权GRANT SELECT,INSERT ON mysql.`user` TO `user2`@`123%`; #创建用户时授权GRANT SELECT,INSERT ON mysql.`user` TO `user_2`@`123%` IDENTIFIED BY '123123';#删除用户user2(使用删除语句时必须拥有数据库全局权限或select权限)DROP USER `user2`@`123%`;DROP USER `user_2`@`123%`;DROP USER `user`@`localhost`;#mysqladmin修改超级用户user2账户密码(mysqladmin命令在cmd中使用,只能修改超级用户密码)mysqladmin -u root -p PASSWORD "123456";#修改当前登录用户密码SET PASSWORD =PASSWORD("123456");#修改其他用户密码SET PASSWORD FOR `user2`@`123%`=PASSWORD("123456");

MySQL数据库常用命令有哪些及如何使用

到此,相信大家对“MySQL数据库常用命令有哪些及如何使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL数据库常用命令有哪些及如何使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL数据库常用命令有哪些及如何使用

本篇内容主要讲解“MySQL数据库常用命令有哪些及如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库常用命令有哪些及如何使用”吧!1.对数据库常用命令1.连接数据库mysql
2023-07-05

linux常用命令有哪些及如何使用

这篇文章主要介绍“linux常用命令有哪些及如何使用”,在日常操作中,相信很多人在linux常用命令有哪些及如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux常用命令有哪些及如何使用”的疑惑有所
2023-07-04

Mysql数据库常用命令操作方法有哪些

本文小编为大家详细介绍“Mysql数据库常用命令操作方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mysql数据库常用命令操作方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。mysql连接:[
2023-03-20

Linux下oracle数据库常用命令有哪些

这篇文章将为大家详细讲解有关Linux下oracle数据库常用命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Oracle 是一个面向 Internet 计算环境的数据库。可以说 Oracle 关
2023-06-28

mysql常用命令有哪些

mysql提供了多种常用命令,包括:创建和删除数据库(create database、drop database),管理表(create table、alter table、drop table),操作数据(insert、update、de
mysql常用命令有哪些
2024-04-14

curl常用命令及参数有哪些

curl是一个用于传输数据的命令行工具,它可以通过各种协议(如HTTP、FTP、SMTP等)进行数据传输。以下是curl的一些常用命令和参数:1. -X/--request:指定HTTP请求方法,如GET、POST、PUT等。2. -d/-
2023-09-15

​docker常用命令有哪些及怎么使用

今天小编给大家分享一下docker常用命令有哪些及怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。docker的常用命
2023-07-04

编程热搜

目录