MySQL服务启动
使用管理员打开cmd
- net start mysql :启动mysql的服务器
- net stop mysql:关闭mysql服务器
MySQL登录
mysql -uroot -p密码
MySQL退出
- exit
- quit
SQL分类
- DDL:操作数据库和表
- DML:增删改表中数据
- DQL:查询数据库的数据
- DCL管理用户,授权
Mysql的命令
1.创建数据库,判断是否存在,并制定字符集为gbk(不设置时默认为utf8)
create database if not exists 数据库名称 character set gbk;
2.查询数据库
- 查询所有数据库的名称
show databases;- 查询某个数据库的字符集:查询数据库的创建语句
show create database 数据库的名称;- 修改数据库的字符集
alter database 数据库的名称 character set 字符集的名称;- 删除数据库
drop database if exists 数据库的名称 chararcter set 字符集名称;- 使用数据库
** 使用当前数据库
select database();
~~~~~ * 使用数据库
~~ use 数据库名称;
DDL和DML的代码展示
查询代码展示(DQL)
use db1;
-- 创建表
create table student (
id int , -- 编号
name varchar(20), -- 姓名
sex varchar(5),-- 性别
address varchar(100), -- 地址
math int , -- 数学
English int -- 英语
);
-- 插入数据
insert into student (id,name,sex,address,math,English)values
(1,'马云','男','杭州',60,120),
(2,'马化腾','男','深圳',90,100),
(3,'李彦宏','男','北京',120,120),
(4,'王健林','男','大连',97,34),
(5,'马斯克','男','纽约',78,92),
(6,'董明珠','女','珠海',99,96);
insert into student (id,name,sex,address,math,English)values(7,'于赛坤','男','鹿邑',null,90);
-- 基础查询
-- 查询所有记录
select * from student;
-- 查询去除重复的记录
select distinct English from student;
-- 计算math和English分数和 特殊情况如果有一个值为null结果都是null
select name ,math,English,math+English from student;
-- 起别名,AS可以省略
select name,math,English,ifnull(English,0)+ifnull(math,0) AS 总和 from student;
-- 基础查询
-- 条件查询
-- where 子句后跟条件
-- > < >= <= =
-- between ...and
-- IN (集合)
-- IS NULL
-- AND 或&&
-- or或||
-- not或!
-- like 占位符:-代表单个任意字符 %代表多个任意字符
-- 查询数学成绩大于90的人
select * from student where math>90;
-- 查询首个字为‘马’的记录
select * from student where name like '马%';
-- 查询三个字名字的记录
select * from student where name like '___';
-- 查询名字中有‘马’的记录
select * from student where name like '%马%';
-- 条件查询
-- 排序查询
-- 根据数学成绩排序
-- ASC 升序默认
-- DESC 降序
select * from student order by ifnull(math,0 ) ASC;
-- 数学成绩相同在按照英语成绩排序
select * from student order by math DESC ,English ASC;
-- 排序查询
-- 聚合函数 :将一列数据作为一个整体,进行纵向计算
-- count max min sum avg
-- 统计人数 如果记录值为null不统计
select count(id) from student;
select max(math) from student;
-- 分组查询
select sex ,avg(English) from student GROUP BY sex;
select sex ,avg (English) from student where math > 90 Group by sex;
-- where 在分组之前进行限定,如果不满足条件不参与分组
-- having在分组之后限定
-- where后不可以跟聚合函数,having可以
---分页查询
limIt 开始的索引 查询的页数
select * from student limit 0,3;
未完持续更新~~~~~~~~