系统管理">系统管理
mysql服务">启动MySQL服务
通过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 |
数据库">登录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
|
<code class= "hljs sql" > select id, name , grade, gender from student where VSCode自定义代码片段15——git命令操作一个完整流程
|