--数据库操作
--链接数据库
mysql -uroot -p
--退出数据库
exit
--查询数据库版本
select version();
--查看所有数据库
show databases;
--创建数据库
create database name charset=utf8;
--删除数据库
drop database name;
--切换至指定数据库
use name;
--查看当前使用的数据库
select database();
--表操作
--创建表
--约束条件:
--auto_increment 自动增长
--not null 不能为空
--primary key 主键
--default 默认值
create table staff (
--字段 类型 约束
id int unsigned primary key not null auto_increment,
staff varchar(20) not null,
age tinyint unsigned default 0,
sex enum('男','女','未知') default '未知',
createTime timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
)
--删除表
drop table staff;
--查看当前数据库所有的表
show tables;
--查看指定表结构
desc staff;
--字段的增删改
--新增字段名 add
alter table staff add position varchar(20) default "员工";
--删除字段名 drop
alter table staff drop position;
--修改字段(不修改名称) modify
alter table staff modify position varchar(25) default "图书管理员";
--修改字段(包含名称) change
alter table staff change position post varchar(25) default "图书管理员";
--数据操作
--添加表数据
insert into staff values(0,'水君子',25,'男','员工');
--查看表数据
select * from staff;
--添加多行数据
insert into staff values(0,'郑治',19,'男','员工'),(0,'李清',22,'女','员工');
--修改全部
update staff set position="员工";
--修改指定
--把id为1的name改为水君子
update staff set name="水君子",age=24 where id=1;
--物理删除
--删除整个staff表
delete from staff;
--删除单个
delete from staff where name="水君子";
--删除多个
delete from staff where name="水君子" or name="张三";
--逻辑删除
--用一个字段来表示,这条信息已无法使用
--bit类型
alter table staff add is_delete bit default 0;
update staff set is_delete=1 where name="水君子";
--查询
--查询指定字段
select id,name from staff;
--消除重复
select distinct sex from staff;
--条件查询
--> < = !=
select * from staff where age >18;
--逻辑运算符
--and or not
select * from staff where sex="男" and age>18;
select * from staff where age>18 or sex="男";
select * from staff where not(age >18 and sex="男");
--模糊查询
--like 性能差
--郑开头的名称
select * from staff where name like "郑%";
-- 包含333的手机号
select * from staff where phone like "%333%";
--匹配名字两个的
select * from staff where name like "__";
--匹配至少两个的
select name from staff where name like "__%";
--rlike 正则
-- 郑开头的名字
select * from staff where name rlike '^郑.*';
-- 13开头6结尾
select * from staff where phone rlike '^13.*6$';
--范围查询
--非连续 in() 、 not in ()
select * from staff where age in (18,30);
select * from staff where age not in (18,30);
--连续 between
select * from staff where age between 18 and 30;
select * from staff where age not between 18 and 30;
select * from staff where (age between 18 and 25);
--空判断
select * from staff where sex is null;
select * from staff where sex is not null;
--排序
--order by 字段
--asc升序
--desc降序
select * from staff order by age asc;
select * from staff order by age desc;
select * from staff where (age between 18 and 30) order by age asc;
--同一岁数的性别升序
select * from staff where (age between 18 and 30) order by age asc,sex desc;
网友评论