【启动和连接】
- 服务端启动
- 查看MySQL服务状态
sudo /etc/init.d/mysql start - 停止、启动、重启MySQL服务
sudo /etc/init.d/mysql status | stop | restart
- 查看MySQL服务状态
- 客户端连接
- 命令格式
mysql -h主机地址 -u用户名 -p密码
以本地为例:
myspl -hlocalhost -uroot -p123456 - 本地连接可以省略-h选项
mysql -u用户名 -p密码
mysql -uroot -p123456
- 命令格式
基本SQL命令
- SQL命令的使用规则:
- 每条命令必须以分号(;)结尾
- SQL命令不区分字母大小写
- 使用\c终止当前命令的执行
- 库的管理
-
库的基本操作
- 查看已有的库
show databases; - 创建库(指定字符集)
create database 库名 [character set utf8]; - 查看创建库的语句
show create database 库名; - 查看当前所在库
select database(); - 切换库(进入库)
use 库名; - 查看库中的已有表
show tables; - 删除库
drop database 库名;
- 查看已有的库
-
库的命名规则
- 可以使用数字、字母、下划线(_),但是不能为纯数字
- 库名区分字母大小写
- 库名具有唯一性
- 不能使用特殊字符和mysql关键字
- 表的管理
- 表的基本操作
-
创建表
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型
);
(表也可以加上字符集、在括号后面加character set utf8即可) -
查看创建表的语句(字符集、存储引擎)
show create table 表名; -
查看表结构
desc 表名; -
删除表
drop table 表名; -
注意
- 所有的数据都是以文件的形式存放在数据库目录下
- 数据库目录:/var/lib/mysql
-
- 表记录的管理
-
在表中插入记录(两种方式)
- insert into 表名 values(值1),(值2),…;
- insert into 表名(字段名1,字段名2,…)
values(值1),(值2),…;
-
查询表记录(两种方式)
- select * from 表名 [where 条件];
(查询所有的表记录) - select 字段名1,字段名2,…from 表名 [where 条件];
(查询指定字段的表记录)
- select * from 表名 [where 条件];
-
删除表记录
- delete from 表名 where 条件;
- 注意:
delete 语句后如果不加where条件,会将表中所有记录全部删除
delete from 表名; # 把全部表删除,慎用!!!
-
更改表记录:
- update 表名 set 字段1=值1,字段2=值2…where 条件;
- 注意:
update语句后如果不加where条件,会将表中所有记录全部更改!!!
- where里面的运算符操作:
-
数值比较&字符比较
1. 数值比较运算符:=、!=、> 、>=、<、<=
2. 字符比较运算符:=、!= -
逻辑比较
- and(两个或多个条件同时满足)
- or(两个或多个条件任意有一个条件满足就可以)
-
范围内比较
- 运算符
where 字段名 between 值1 and 值2 # 值为数字
where 字段名 in (值1,值2,…)
where 字段名 not in (值1,值2,…)
- 运算符
-
匹配空、非空
- 空:is null
- 非空:is not null
注意:
null: 空值,必须用is 或is not去匹配
“”:空字符串,只能用=或!=去匹配
-
模糊比较:
1. 语法格式:
where 字段名 like 表达式
2. 表达式:
1. _:匹配单个字符
2. %:匹配0到多个字符
3.示例:select name from sanguo where name like "_%_"; # name最少有两个字符 select name from sanguo where name like "%"; # name最少有0个字符,0到多个字符,匹配所有记录除了null select name from sanguo where name like "___"; # 匹配有3个字符 select name from sanguo where name like "赵%"; # 匹配姓赵的记录
- 查询表名,库名,好多地方都可以(like)
如:show tables like ‘%er%’;
- 查询表名,库名,好多地方都可以(like)