MySQL学习笔记
关于InnoDB 和MyISAM
InnoDB 和 MyISAM 是 MySQL 数据库系统中两种不同的存储引擎,它们在数据存储、处理性能、并发控制和事务支持等方面有着显著的区别:
插入insert
删除delete
更新update
约束:表中数据的限制条件,主键约束 primary key
显示所有数据库
show databases;
如果mydb1不存在,则创建它
create database if not exists mydb1;
-- 修改数据库mydb1 编码为 utf8mb4
alter database mydb1 character set utf8mb4;
-- 使用表
use mydb1;
-- 创建 表emp1
create table emp1(
id int auto_increment primary key,
name varchar(20),
address varchar(20),
birth date,
tel varchar(30),
salary double
);
-- 显示所有表名
show tables;
-- 描述表结构 describe缩写
desc emp1;
更改 id 列为 INT auto_increment
alter table emp1 modify column id int auto_increment;
-- 删除 emp1
drop table emp1;
-- emp1 插入
insert into emp1(id,name,address,birth,tel,salary) values(1,'张三','河南','2004-03-22','133xx2222',10000.5);
不设置关键字时 插入的 values 值与关键字顺序一一对应
insert into emp1 values(2,'李四','河南','2003-03-03','112233',10000.5);
-- 批量插入
insert into emp1 values(3,'李四','河南','2003-03-03','112233',10000.5),
(4,'李四','河南','2003-03-03','112233',10000.5);
insert into emp1 values(5,'李五','河南','2003-03-03','112233',10000.5),
(6,'张刘','重庆','2003-03-03','112233',10000.5),
(7,'李琦','上海','2003-03-03','112233',10000.5);
-- 插入一行 name 字段 和 address 字段,为定义的为 NULL
insert into emp1(name,address) values('李娜','武汉');
-- 修改表名
rename table emp1 to employee;
rename table employee to emp1;
-- 添加关键字为 dept的一列
alter table emp1 add dept varchar(20);
-- 改变关键字dept 为 department 类型varchar(20)
alter table emp1 change dept department varchar(20);
alter table emp1 change department dept varchar(20);
-- 修改表emp1 删除列tel
alter table emp1 drop tel;
alter table emp1 add tel varchar(20);
-- 返回emp1所有的数据
select * from emp1;
-- 返回emp1 id字段(列)的数据
select id from emp1;
-- 查询所有 name="张三"的数据
select * from emp1 where name='张三';
-- id 大于 6 的数据
select * from emp1 where id > 6;
-- 删除 emp1 中字段 name 为“张三”的数据
delete from emp1 where name='张三';
-- 插入(恢复)张三这行数据
insert into emp1 values(1,'张三','河南','2003-03-03','112233',10000.5);
-- 查看指定某个表的 创建语句
show create table emp1;
-- 设置emp1 所有字段为 dept 的内容为“行政”
update emp1 set dept='行政';
-- 设置 emp1 name为'张三' 的dept 为'开发'
update emp1 set dept='开发' where name='张三';
-- 删除 emp1 的列tel
alter table emp1 drop column tel;
-- 增加 tel 列
alter table emp1 add tel varchar(20);
alter table emp1 add column tel varchar(20);
-- 重命名 列名tel 为 tel1
alter table emp1 rename column tel to tel1;
alter table emp1 rename column tel1 to tel;
-- 查询 emp1 id>2的数据
select * from emp1 where id>2;
-- 查询 emp1 id>1且id<5 的数据
select * from emp1 where id>1 and id<5;
-- 查询 emp1 (id>1且id<5) 和 (id<5且id>6) 的数据
select * from emp1 where id>1 and id<5 or id>6 and id <9;
-- 查询 emp1 {id>1且(id<5和id>6)}且{id<9} 的数据
select * from emp1 where id>1 and (id<5 or id>6) and id<9
-- 更改 emp1 tel 列的默认值为'Unknown'
alter table emp1 modify tel varchar(20) default "Unknown";
-- 修改 emp1 中 name 数据类型 varchar(50)
alter table emp1 modify column name varchar(50);
-- 查询 emp1 (id>1且id<5) 和 (id<5且id>6)且 id<9的数据
select * from emp1 where id>1 and id<5 or id>6 and id <9;