库操作
查询
1.show database; —-查询所有数据库
2.show create database 数据库名称; —-查询某个数据库的创建模式
3.show create database xxx; —-查询xxx数据库的创建模式
创建
1.create database 数据库名称; —-创建数据库
注:不可以创建一个已经存在的数据库
2.create database is not exists 数据库名称; —-判断数据库是否存在,不存在就创建
3.create database 数据库名称 character set 字符集名称; —-创建数据库并指定字符集,一般使用utf-8
修改
alter database 数据库名称 character set 字符集名称; —-修改数据库的字符集
删除
1.drop database 数据库名称; —-删除数据库
2.drop database is exists 数据库名称; —-先判断是否存在再删除
使用
selete database (); —-查询当前正在使用的数据库
use 数据库名称; —-使用指定数据库
表结构
表的查询
1.show tables; —-查询数据库中所有的表
2.desc 表名; —-查看指定表的结构
3.show table status from 库名 like ‘表名’; —-查询表字符集(like没有特别情况下和”=”号是等价的)
创建表
create table 表名(
列名1 数据类型1 约束,
列名2 数据类型2 约束,
…
列名n 数据类型n约束
);
int:整数类型
- age int
double:小数类型
- score double(5,2)
- price double
date:日期,只包含年月日 yyyy-mm-dd
datetime:日期,包含年月日时分秒 yyyy-mm-dd hh:mm:ss
timestamp:时间戳类型 包含年月日时分秒 yyyy-mm-dd hh:mm:ss
- 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
varchar:字符串
- name varchar(20):姓名最大20个字符
- zhangsan 8个字符 张三 2个字符
create table 要创建的表名 like 被复制的表名; —-复制表
修改表
1.alter table 表名 rename to 新的表名; —-修改表名
2.alter table 表名 character set 字符集名称; —-修改表的字符集
**3.**alter table 表名 add 列名 数据类型; —-添加新的一列
4.alter table 表名 modify 列名 新列名 新数据类型; —-修改新列名和数据类型
表中删除操作
1.drop table 表名; —-删除表
2.alter table 表名 drop 列名; —-删除列
表中添加数据-insert语句
1.insert into 表名(列名1,列名2,…) values (值1,值2,…); —-向表中添
加数据
2.select * from product; —-查看表中所有数据
3.insert into 表名 values (值1,值2,值3,…); —-默认给全部列添加数据
4.insert into 表名 values (值1,值2,值3,…),(值1,值2,值3,…),(值1,值2,值3,…); —-批量添加数据
注:
- 列名和值的数量以及数据类型要对应
- 除了数字类型,其他数据类型的数据都需要加引号(单引双引都可以,推荐单引)
表中修改数据-updata
update 表名 set 列名1 = 值1,列名2 = 值2,… [where 条件];
注:
- 修改语句中必须加上条件,如果不加条件则修改所有数据
表中删除数据-delete
delete from 表名 [where 条件];
注:
- 和修改数据是一样的
单表查询
查询语法:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
select 列名1,列名2,… from 表名; —-多个字段查询
select distinct 列名1,列名2,… from 表名; —-去重查询,但只有所查询列都重复才会去重
select 列名1 运算符(+ – * /) 列名2 from 表名; —-四则运算
select 列名1,列名2,… as 别名 from 表名; —-as用来起别名,简单易懂
条件查询
条件分类
符号 | 功能 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
= | 等于 |
<> 或 != | 不等于 |
between … and … | 在某个范围之内(都包含) |
in(…) | 多选一 |
like 占位符 | 模糊查询 _单个任意字符 %多个任意字符 |
is null | 是null |
is not null | 不是null |
and 或 && | 并且 |
or 或 || | 或者 |
not 或 ! | 非,不是 |
聚合函数
函数名称及其功能
函数名 | 功能 |
---|---|
count(列名) | 统计数量(一般选用不为null的列) |
max(列名) | 最大值 |
min(列名) | 最小值 |
sum(列名) | 求和 |
avg(列名) | 平均值 |
聚合函数语法
-- 标准语法 select 函数名(列名) from 表名 [where 条件]; -- 计算product表中总记录条数 select count(*) from product; -- 获取最高价格 select max(price) from product; -- 获取最高价格的商品名称 select name,price from product where price = (select max(price) from product); -- 获取最低库存 select min(stock) from product; -- 获取最低库存的商品名称 select name,stock from product where stock = (select min(stock) from product); -- 获取总库存数量 select sum(stock) from product; -- 获取品牌为苹果的总库存数量 select sum(stock) from product where brand='苹果'; -- 获取品牌为小米的平均商品价格 select avg(price) from product where brand='小米';
排序查询
分类
关键字 | 功能 |
---|---|
order by 列名1 排序方式1,列名2 排序方式2 | 对指定列排序,asc升序(默认的) desc降序 |
– 注:多个排序条件,当前边的条件值一样时,才会判断第二条件
排序语法
-- 标准语法 select 列名 from 表名 [where 条件] order by 列名1 排序方式1,列名2 排序方式2; -- 按照库存升序排序 select * from product order by stock asc;
分组查询
-- 标准语法 select 列名 from 表名 [where 条件] group by 分组列名 [having 分组后条件过滤] [order by 排序列名 排序方式];
分页查询
-- 标准语法 select 列名 from 表名 [where 条件] group by 分组列名 [having 分组后条件过滤] [order by 排序列名 排序方式] limit 开始索引,查询条数; -- 公式:开始索引 = (当前页码-1) * 每页显示的条数
约束
1.约束的概念和分类
约束的概念
- 对表中的数据进行限定,保证数据的正确性、有效性、完整性!
约束的分类
约束 | 说明 |
---|---|
primary key | 主键约束 |
primary key auto_increment | 主键、自动增长 |
unique | 唯一约束 |
not null | 非空约束 |
foreign key | 外键约束 |
foreign key on update cascade | 外键级联更新 |
foreign key on delete cascade | 外键级联删除 |
2.主键约束
主键约束特点
- 主键约束包含:非空和唯一两个功能
- 一张表只能有一个列作为主键
- 主键一般用于表中数据的唯一标识
建表时添加主键约束
-- 标准语法 create table 表名( 列名 数据类型 primary key, 列名 数据类型, ... ); -- 创建student表 create table student( id int primary key -- 给id添加主键约束 ); -- 添加数据 insert into student values (1),(2); -- 主键默认唯一,添加重复数据,会报错 insert into student values (2); -- 主键默认非空,不能添加null的数据 insert into student values (null); -- 查询student表 select * from student; -- 查询student表详细 desc student;
删除主键
-- 标准语法 alter table 表名 drop primary key; -- 删除主键 alter table student drop primary key;
建表后单独添加主键
-- 标准语法 alter table 表名 modify 列名 数据类型 primary key; -- 添加主键 alter table student modify id int primary key;
3.主键自动增长约束
建表时添加主键自增约束
-- 标准语法 create table 表名( 列名 数据类型 primary key auto_increment, 列名 数据类型, ... ); -- 创建student2表 create table student2( id int primary key auto_increment -- 给id添加主键自增约束 ); -- 添加数据 insert into student2 values (1),(2); -- 添加null值,会自动增长 insert into student2 values (null),(null); -- 查询student2表 select * from student2; -- student2表详细 desc student2;
删除自动增长
-- 标准语法 alter table 表名 modify 列名 数据类型; -- 删除自动增长 alter table student2 modify id int;
建表后单独添加自动增长
-- 标准语法 alter table 表名 modify 列名 数据类型 auto_increment; -- 添加自动增长 alter table student2 modify id int auto_increment;
4.唯一约束
建表时添加唯一约束
-- 标准语法 create table 表名( 列名 数据类型 unique, 列名 数据类型, ... ); -- 创建student3表 create table student3( id int primary key auto_increment, tel varchar(20) unique -- 给tel列添加唯一约束 ); -- 添加数据 insert into student3 values (null,'18888888888'),(null,'18666666666'); -- 添加重复数据,会报错 insert into student3 values (null,'18666666666'); -- 查询student3数据表 select * from student3; -- student3表详细 desc student3;
删除唯一约束
-- 标准语法 alter table 表名 drop index 列名; -- 删除唯一约束 alter table student3 drop index tel;
建表后单独添加唯一约束
-- 标准语法 alter table 表名 modify 列名 数据类型 unique; -- 添加唯一约束 alter table student3 modify tel varchar(20) unique;
5.非空约束
建表时添加非空约束
-- 标准语法 create table 表名( 列名 数据类型 not null, 列名 数据类型, ... ); -- 创建student4表 create table student4( id int primary key auto_increment, name varchar(20) not null -- 给name添加非空约束 ); -- 添加数据 insert into student4 values (null,'张三'),(null,'李四'); -- 添加null值,会报错 insert into student4 values (null,null);
删除非空约束
-- 标准语法 alter table 表名 modify 列名 数据类型; -- 删除非空约束 alter table student4 modify name varchar(20);
建表后单独添加非空约束
-- 标准语法 alter table 表名 modify 列名 数据类型 not null -- 添加非空约束 alter table student4 modify name varchar(20) not null;
外键约束
外键约束的格式(一般在创建表的最后写这些)
constraint 外键名 foreign key (本表外键列名) references 主表名(主表主键列名)
总结
到此这篇关于mysql新手入门的基本操作汇总的文章就介绍到这了,更多相关mysql基本操作内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!