2、Mysql 基础操作
1、连接mysql
连接:mysql -uroot -p -P3306 -h 127.0.0.1
\c 退出当前命令
exit 退出mysql
2、数据库管理操作
create database shop charset utf8; //1 创建数据库
show databases; //2 查看库列表
useo shop; //3 使用库
drop database if exists shop;//4 删除
show create database shop;//5 查看库的结构
3、导入外部sql文件
1、创建SQL文件
create database shop charset utf8;
show databases;
2、导入文件
source d:/shop.sql;
4、DBeaver软件的使用
5、创建表
create table class (id int primary key auto_increment,
name varchar(30) not null,
description varchar(10) default null
)charset utf8;
null在PHP是一种数据类型。
null在mysql中就是空,不是数据类型
6、插入数据
insert into class set name='html',description=''; //1 插入单条数据
insert into class(name,description) values('go','不会go你就落伍了'),('jQuery','前端功能都很炫酷'); //2 插入多条数据
7、复制表和数据
create table class1 like class; //1 复制表结构
insert into class1 select * from class; //2 插入其他表的数据
insert into class (name) select name from class;//3 插入其他表指定数据
desc tb_name;//4 查看表结构
show careate table class;//5 查看建表语句
create table a select * from class;//6 创建表并复制全部数据
create table b select name from class;//7 创建表并复制指定数据
实例:创建学生表student只需要sname字段 b表的字段名是name 这里需要用到起别名
create table student (
id int primary key auto_increment,sname varchar(30)
) select name as sname from class;
//起的别名和新表的字段名称一样
8、基本查询
select id from emp;
9、基本条件筛选
1)模糊查询 like
实际业务中会使用第三方的搜索,包括云主机的搜索,功能比较强悍,可以帮助我们分析里面的恶意关键字。
1、查询简介中包含 p 的
select * from class where description like '%p%';
2、查询简介中 不包含 p 的
select * from class where description not like '%p%';
2)多个列的结果合并返回 (连接函数concat())
select concat(name,description)as class_info from class;
+--------------------------------+
| class_info
+--------------------------------+
| php学习PHP来后盾人
| php学习PHP来后盾人
| php学习PHP来后盾人
| java学Java工资就是高
| go不会go你就落伍了
| jQuery前端功能都很炫酷
| html
| NULL
+--------------------------------+
10、查询基本关联字使用
//1 新建练习表
create table student(
id int primary key auto_increment,
name varchar(15),
class_id int default null,
age smallint not null
);
insert into student(name,class_id,age)values('小明',1,20),('小明',2,32),('李四',3,null),('小刘',null,20);
与 and = between and
select * from student where age between 20 and 40;//找出年龄在20-40之间
或 or = in
select * from student where class_id in(2,3);//找出在2班或3班的同学
非 not
select * from student where age not between 20 and 40;//找出年龄不在20-40之间
11、mysql 对 null 的处理
is null 找null
is not null 找非null
//1 找出哪些同学没有班级
select * from student where class_id = null; //错误的 因为null 不能用 等号比较
select * from student where class_id is null; //正确的
+----+--------+----------+-----+
| id | name | class_id | age |
+----+--------+----------+-----+
| 4 | 小刘 | NULL | 20 |
+----+--------+----------+-----+
//2 哪些同学是有班级的
select * from student where class_id is not null; //非空
+----+--------+----------+-----+
| id | name | class_id | age |
+----+--------+----------+-----+
| 1 | 小明 | 1 | 20 |
| 2 | 小明 | 2 | 32 |
| 3 | 李四 | 3 | 0 |
+----+--------+----------+-----+
//if三元运算 和 ifnull()函数
select name,if(class_id,class_id,'未分配')as '班级编号' from student;//三元运算实现
select name,ifnull(class_id,'未分配') from student;//ifnull()函数实现
+--------+--------------+
| name | 班级编号 |
+--------+--------------+
| 小明 | 1 |
| 小明 | 2 |
| 李四 | 3 |
| 小刘 | 未分配 |
+--------+--------------+
12、排序的使用
select * from student order by class_id desc,age asc;//可以多个字段参与排序 第一个字段优先级最高
13、增删改
//1 增加一条记录
insert into student set name='刘备',class_id=5,age=99;
//2 我们删除最后报名的两个同学删除
delete from student order by id desc limit 2;

浙公网安备 33010602011771号