文章目录
- MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
- 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
mysql的操作:
(写完语句记得加;- - -代表具体的名称)
1.数据库操作
-
show databases; 显示所有的数据库
-
选择(使用)数据库
use ---;
-
创建数据库
create database ---;
在创建的时候 检测该数据库是否存在 不存在创建
create database if not exists chat;
如果存在,就直接使用use chat;
-
删除数据库
drop database ---;
2.mysql的数据类型
1)数值类型:
2)日期和时间类型:
3)字符串类型:
3.数据表操作
-
显示数据表
show tables;
-
创建数据表:
(表名、表的字段名、定义每个表的字段)
创建字段的时候 字段可以为null 也可以not null
1)直接创建
CREATE TABLE table_name (column_name column_type);
之后就可以查找到:
2)检测该表是否存在,如果不存在去创建:
-
查看表创建时的信息:
show create table user;
-
设置数据表的编码格式(可写可不写,编码格式和数据库引擎默认设置)
create table user(
) default charset=utf8;
- 数据表的删除
1)drop table user;
2) 检测判断:drop table if exists user;
- 表的数据的增删改查:
1)增加数据:(给现有列添加数据)
添加数据,请注意不能为空的字段必须添加数据,可为空的字段可写可不写。
属于varchar,日期类数据类型需要用引号包起来。 - 一般方法:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
- 增加数据的时候不写列(表里面所有的列都得添加数据)
- 一次性插入多条数据:
insert into user
values
(),(),(),(); //这种写法是一次增加多条数据
- 表创建好之后 ,添加列
alter table user add column newcolumn varchar(100) not null;
2)查找数据: - 查询所有列:
select * from user;
如果查看增加后的数据,文字出现乱码,可以使用:set names gbk;
就能正常显示。 - 查询固定的若干列:
select id,name,sex,age from user;
(添加过两次数据)
- 查找表时候列起别名 (使用 as 起别名)
3)update 数据更新
4) delete 删除数据操作
delete from user;
不加条件整张表数据全部删除 ,需要添加条件。
4.子句操作(增删改查都可)
-
where 子句:
1)常规操作:
update user set name="小王" where id=2;
2)多条件, 使用and关键字
update user set name="小王" where id=2 and sex='男';
-
like子句 (模糊查找)
使用百分号 %字符来表示任意字符;
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
select * from user where name like "张三";
select * from user where name like "%张";
select * from user where name like "张%";
select * from user where name like "%张%";
-
排序: order by子句,可以和其他条件子句连用。
select * from user order by age asc;
正序
select * from user order by age desc;
倒序
-
分组:group by子句,对一个或者多个列进行分组 ;
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
1)根据年龄分组,并统计每一组的个数。(COUNT函数)
2)根据名字分组,并为某一列求和。(SUM函数)
3)WITH ROLLUP
关键字(在分组的情况下,做最终的统计)
统计完成之后存在null空值 使用coalesce
方法处理列上的空值:
5.多表链接查询
1) 多表查询+分组以及虚拟表起别名+条件
查询来自user和别名叫login的虚拟表中名字相同的若干列:
2) 子查询: 使用关键字 in
6.主键 primarykey、外键 foreignkey 、唯一键 unique
auto_increment
:自增列,默认每次自增+1,设置自增列必须添加主外键。
1)主键:是值不能为null,不能重复- 单主键:
- 联合主键(一张表存在多个主键)
- 表外添加主键
alter table user add primary key (id);
- 删除主键
alter table user drop primary key;
2)外键:是引用的主键外键,外键值必须和主键保持一致
- 表外添加外键
alter table score add foreign key (userid) references user (id);
- 删除外键
alter table user drop foreign key+外键名称
;
- 单主键:
3)唯一键:是值可以为null ,不能重复( 主要约束数据的)
- 单唯一键:
- 联合唯一键:
create table userss(
id int auto_increment primary key,
name varchar(100),
age int,
unique key(name,age));
- 外部添加唯一键
alter table user add unique key(name);
7.存储过程 (考虑安全性)
设置:
查询: