MySQL常用操作命令

Posted 哦摩西罗伊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL常用操作命令相关的知识,希望对你有一定的参考价值。

补充:

MySQL的命令操作命令必须是以;结尾

在操作数据库时需要选定某个具体的数据库,操作命令: use 数据库名

查看某个数据库下的所包含的表:show  tables

 

系统管理">系统管理



通过windows服务管理器启动MySQL服务

 

1
开始-->运行-->输入services.msc命令-->启动MySQL服务

 

通过DOS命令启动MySQL服务

 

1
net start mysql

 


停止MySQL服务


通过windows服务管理器启动MySQL服务

 

1
开始-->运行-->输入services.msc命令-->停止MySQL服务

 

通过DOS命令停止MySQL服务

 

1
net stop mysql

 



通过DOS命令来登陆:

 

1
mysql -h 主机的地址 -u 用户名 -p 密码

 

使用MySQL Command Line Client 登录,它在你安装MySQL的目录中




数据库的基本操作


创建数据库的语法格式:

 

1
create database 数据库名称 ;

 

例:创建一个名称为xiaoxu的数据库,SQL语句如下:

 

1
create database xiaoxu ;

 


查看数据库的语法格式:


 

1
show databases ;

 


查看某个已创建好的数据库的语法格式:

 

1
show create databases 数据库名称 ;

 


修改数据库编码的语法格式:

 

1
alter database 数据库名称 default character set 编码方式 collate 编码方式_bin ;

 

例:将数据库xiaoxu 的编码修改为 gbk,SQL语句如下所示:

 

1
alter database xiaoxu default character set gbk collate gbk_bin ;

 


删除数据库的语法格式:

 

1
drop database 数据库名称 ;

 




数据表的基本操作


创建数据表语法格式:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
create table 表名
 
{
 
    字段名 1,数据类型[完整性约束条件],
 
    字段名 2,数据类型[完整性约束条件],
 
    ...
 
    字段名 n,数据类型[完整性约束条件],
 
}

 



查看数据表的语法格式:

 

1
2
3
4
5
6
7
8
9
show create table 表名 ;
 
或者
 
describe 表名 ;
 
简写为
 
desc 表名 ;

 



修改数据表:

1. 修改表名的语法格式:

 

1
alter table 旧表名 rename [to] 新表名 ;

 


2.修改字段名的语法格式

 

1
alter table 表名 change 旧字段名 新字段名 新数据类型 ;

 

例:将数据表grade中的name字段改为username,数据类型保持不变

 

1
alter table grade change name username varchar(20) ;

 


3. 修改字段的数据类型的语法格式

 

1
alter table 表名 modify 字段名 数据类型 ;

 

例:将数据表grade中的id字段的数据类型由int(11)修改为int(20)

 

1
alter table grade modify id int(20) ;

 


4. 添加字段的语法格式

 

1
2
3
alter table 表名 add 新字段名 数据类型
 
    [约束条件] [FIRST|AFTER已存在的字段名]

 

例:将数据表grade中添加一个没有约束条件的 int 类型的字段 age。

 

1
alter table grade add age int(10) ;

 


5. 删除字段的语法格式:

 

1
alter table 表名 drop 字段名 ;

 


6.修改字段的排列位置的语法格式:

 

1
alter table 表名 modify 字段名1 数据类型 first|after 字段名2

 

例1:将数据表grade的username字段修改为表的第一个字段

 

1
alter table grade modify username varchar(20) first ;

 

例2:将数据表grade的id字段插入到grade字段后面

 

1
alter table grade modify id int(20) after grade ;

 


7. 删除数据表的语法格式

 

1
drop table 表名 ;

 




添加、更新与删除数据的操作


添加数据

1. 在表中,为所有字段添加数据的insert语句有两种,分别如下:


insert 语句中指定所有字段名,其语法语法格式

 

1
2
3
insert into 表名(字段名1,字段名2, ...)
 
 value(值1,值2, ...)

 

例:向student表中添加一条新记录,记录中 id 字段的值为 1,name字段的值为’zhangsan’,grade字段的值为98.5

假设已创建如下表:

1
2
3
4
5
6
7
8
9
create table student(
 
    id int(4),
 
    name varchar(20) not null,
 
    grade float
 
);

 

向student表中插入一条数据,代码如下所示

 

1
2
3
insert into student(id,name,grade)
 
values(1,\'zhangsan\',98.5);

 


insert语句中不指定字段名,其语法格式

 

1
insert into 表名 values(值1,值2, ...)

 

注意:由于insert语句中没有指定字段名,添加值的顺序,必须和字段在表中已经定义的顺序相同

例:向已添加纪录的student表中添加一条新记录,记录中 id 字段的值为3,name字段的值为’wangwu’,grade字段的值为61.5,可参考第一种方法的例子

 

1
2
3
insert into student
 
    values(3,\'wangwu\',61.5)

 


2. 为表中的指定字段添加数据,其语法格式

 

1
2
3
insert into 表名(字段名1,字段2, ...)
 
values(值1,值2, ...)

 

例:向student表中添加一条新记录,记录中 id 字段的值为 4,name字段的值为“zhaoliu”,grade字段不指定值

 

1
2
3
insert into student(id,name)
 
    values(4,\'zhaoliu\') ;

 


insert语句的其它用法:

为表中指定的字段或者全部字段添加数据,其语法格式

 

1
2
3
insert into 表名
 
    set 字段名1 = 值1 [,字段名2 = 值2, ...]

 

例:向student表中添加一条新记录,该条记录中 id 字段的值为5,name字段的值为’boya’,grade字段的值为 99

 

1
2
3
insert into student
 
set id = 5, name = \'boya\', grade = 99 ;

 


为表中同时添加多条记录,其语法格式

 

1
2
3
4
5
6
7
insert into 表名 [(字段名1,字段名2, ...)]
 
        values(值1,值2, ...),(值1,值2, ...),
 
        ...
 
        (值1,值2, ...) ;

 


例:向student表中添加三条新记录。

假设已创建如下表:

 

1
2
3
4
5
6
7
8
9
create table student(
 
    id int(4),
 
    name varchar(20) not null,
 
    grade float
 
);

 

添加新记录如下

 

1
2
3
4
5
6
7
insert into student
 
values (6,\'lilei\',99),
 
       (7,\'hanmeimei\',100),
 
       (8,\'poly\',40.5) ;

 




更新数据


更新表中的记录,其语法格式

 

1
2
3
4
5
update 表名
 
    set 字段名1 = 值1 [,字段名2 = 值2, ...]
 
    [where 条件表达式]

 


update更新部分数据

更新student标准那个id字段值为1的记录,将记录中的name字段的值更改为’caocao’,grade字段的值更改为50。
在更新数据前,首先使用查询语句查看id字段值为1的记录,执行结果如下

1
2
3
select * from student
 
    where id = 1 ;

 

更新结果如下

1
2
3
4
5
select * from student
 
    set name = \'caocao\', grade = 50
 
    where id = 1 ;

 


例2:更新student表中 id 字段值小于4的记录,将这些记录的grade字段值都更新为 100。
在更新数据前,首先使用查询语句查看 id 字段值小于 4 的记录,执行结果如下

1
2
3
select * from student
 
    where id < 4 ;

 

更新结果如下

1
2
3
4
5
update student
 
   set grade = 100
 
   where id < 4 ;

 


update 更新全部数据

例:更新student表中全部记录,将grade字段值都更新为80

 

1
2
3
update student 
 
    set grade = 80 ;

 




删除数据


删除数据有两种方法:

第一种:delete语句

删除表中的记录,其语法格式

 

1
delete from 表名 [where 条件表达式]

 


delete删除部分数据

例:在student表中,删除id字段值为11的记录。
在删除之前,首先使用查询语句查看id字段值为11的记录,执行结果如下

select * from student
where id = 11 ;


delete删除全部数据

在delete语句中,若没用使用where子句,则会将表中的所有记录都删除

例:删除student表中的所有记录。

delete from student ;


第二种:truncate语句

truncate [table] 表名

例:删除student表中的所有记录

1
<code class="hljs sql">truncate table student ;</code>

delete语句truncate语句的异同点

相同点:都能删除表中的所有数据的功能。

不同点:

delte语句:

delete语句是DML语句;

delete 语句后面可以跟where子句,通过指定where子句中的条件表达式只删除满足条件的记录;

delete语句删除表中所有记录后,再次向表中添加记录时,自动增加字段的值为删除时该字段的最大增加1;

使用delete语句时,每删除一条记录都会在日志中记录。

truncate语句:

truncate语句通常被认为是DDL语句;

truncate语句只能用于删除表中的所有记录;

truncate语句删除表中的数据后,再次向表中添加记录时,自动增加字段的默认初始值重新由1开始;

使用truncate语句时,不会在日志中记录删除的内容,因此truncate语句的执行效率比delete语句高。




查询数据


简单查询

select语句的语法格式如下

1
2
3
4
5
6
7
8
9
10
11
<code class="hljs sql">select [distinct] *| {字段名1,字段名2,字段名3, ...}
 
from 表名
 
[where 条件表达式1]
 
[group by 字段名 [having 条件表达式2]]
 
[order by 字段名 [asc|desc]]
 
[limit [offset] 记录数]</code>

 


查询所有字段有两种方法

第一种:

在select语句中列出所有字段名来查询表中的数据,其语法格式

1
<code class="hljs sql">select 字段名1,字段名2, ... from 表名 ;</code>


第二种:

 

使用星号(“*”)通配符来代替所有的字段名,其语法格式如下

1
<code class="hljs sql">select * from student ;</code>

 


查询指定字段,其语法格式如下

1
<code class="hljs sql">select 字段名1,字段名2, ... from 表名 ;</code>

 



按条件查询


带关系运算符的查询

在select语句中,最常见的是使用where子句指定查询条件对数据进行过滤,其语法格式如下

 

1
2
3
4
5
<code class="hljs sql">select 字段名1,字段名2, ...
 
    from 表名
 
    where 条件表达式 ;</code>

 

常见的关系运算符如下表所示

关系运算符说明关系运算符说明
= 等 于 <= 小于等于
< > 不等于 > 大 于
!= 不等于 >= 大于等于
<      

例:查询student表中grade大于80的学生姓名。

1
<code class="hljs sql">select name, grade from student where grade > 80;</code>

 



带 in 关键字的查询

in 关键字用于判断某个字段的值是否在指定集合中,若字段的值在集合中,则满足条件,该字段所在的记录将被查询出来。其语法格式如下

1
2
3
4
5
<code class="hljs sql">select * | 字段名1, 字段名2, ...
 
    from 表名
 
    where 字段名 [not] in (元素1, 元素2, ...)</code>

 

说明:在上面的语法格式中,“元素1, 元素2, …”表示集合众的元素,即指定的条件范围。not 是可选参数,使用not表示查询不在in关键字指定集合范围中的记录。


例:查询student表中id值为1、2、3的记录。

1
<code class="hljs sql">select id, grade, name, gender from student where id in (1,2,3) ;</code>

 



带between and 关键字的查询

between and用于判断某个字段的值是否在指定的范围之内,其语法格式如下

1
2
3
4
5
<code class="hljs sql">select *|{字段名1, 字段名2, ...}
 
    from 表名
 
    where 字段名 [not] between 值1 and 值2 ; </code>

 

说明:在上面的语法格式中,“值1”表示范围条件的起始值,“值2”表示范围条件的结束值。not是可选参数,使用not表示查询指定范围之外的记录,通常情况下,“值1”小于“值2”,否则查询不到任何结果。


例:查询student表中id值在2~5之间的学生姓名。

1
<code class="hljs sql">select id, name from student where id between 2 and 5 ;</code>

 



空值查询


在数据表中,某些列的值可能为空值(null),空值不同于0,也不同于空字符串。在MySQL语句中,使用 is null 关键字来判断字段的值是否为空值,其语法格式如下

1
2
3
4
5
<code class="hljs sql">select *| 字段名1, 字段名2, ...
 
from 表名
 
where 字段名 is [not] null ;</code>

 


例:查询student表中gender为空值的记录。

1

(c)2006-2024 SYSTEM All Rights Reserved IT常识