懒猫整理的MySQL的基本操作

因为本篇过于长建议使用目录查找

mysql介绍

MySQL是存储数据库一个仓库,可以存储图片,视频,文字

mysql使用

  • 1:黑窗口
  • 2:使用工具 navicat

sql语句分类

  • 数据定义语言DDL create,drop,alter,truncate
  • 数据查询语言DQL select
  • 数据操纵语言DML insert,delete,update
  • 数据控制功能DCL grant 授权 ,revoke回收

sql语句的注意 :

1、以 ; 作为结束符
2、不区分大小写

Windows服务

– 启动MySQL
net start mysql
– 创建Windows服务
sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)

#/* 连接与断开服务器 */
mysql -h 地址 -P 端口 -u 用户名 -p 密码

SHOW PROCESSLIST – 显示哪些线程正在运行
SHOW VARIABLES – 显示系统变量信息

mysql 数据库的操作

连接数据库

  • mysql -uroot -p
    mysql -h 地址 -P 端口 -u 用户名 -p 密码

退出数据库

  • exit;
  • quit;
  • \q;

数据库操作:

显示哪些线程正在运行

  • show processlist;

显示系统变量信息

  • show variables;

显示数据库版本

  • select version();

显示时间

  • select now();

显示用户名

  • select user();

查看当前使用的数据库

  • select database();

查看所有数据库

  • show databases;

创建数据库

  • create database 数据库名 charset=utf8;
  • create database mysql01 charset=utf8;

查看创建数据库的语句

  • show create database …

  • show create database mysql01;

使用数据库

  • use 数据库的名字
  • use mysql01;

删除数据库

注意!!! 注意!!!注意!!! 重要的事说三遍!!!
一定要加数据库名,不然就都没了,如果在公司,那你只能跑路了

  • drop database 数据库名;

  • drop database mysql01;

数据表操作:

查看当前数据库中所有表

  • show tables;

表结构

字段
  • int unsigned:无符号整形

  • auto_increment:表示自动增长

  • not null:表示不能为空

  • primary key:主键

  • foreign:外键

  • default:默认值

  • create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);

  • create table 表名(
    id int unsigned primary key not null auto_increment,
    name varchar(20) not null
    );

类型
  • int:数字类型
  • float:浮点型(单精度)
  • double:浮点型(双精度)
  • char:字符串类型(固定长度)
  • varchar:字符串类型(长度可变)
  • text:文本
  • date:日期
  • time:时间
  • datetime:日期时间

查看表结构

  • desc 数据表的名字;
    desc classes;

创建表

  • 创建 classes 表(id、name)
    create table classes(
    id int unsigned primary key auto_increment not null,
    name varchar(20) not null

  • 创建 students 表(id、name、age、high (decimal)、gender (enum)、cls_id)
    create table students(
    id int unsigned primary key auto_increment not null,
    name varchar(20) not null,
    age int unsigned,
    high decimal(5,2),
    gender enum(“男性”,“女性”,“中性”,“保密”) default “保密”,
    cls_id int unsigned
    );

查看表的创建语句

  • show create table 表名字;

  • show create table xxx;

修改编码

  • alter database 表名 CHARSET=utf8

新增数据

单条添加
  • insert into students values(0,“吴彦祖”,42,188.88,1,222);
部分插入
  • insert into 表名(列1,…) values(值1,…)
    insert into students(name) values(“老王”);
多条添加
  • insert into students values(null,“老李”,28,188.88,1,333),(null,“赵四”,28,188.88,1,333);

删除

物理删除
  • delete from 表名 where条件
  • delete from students where id=3;
逻辑删除
  • 用一个字段来表示 这条信息是否已经不能再使用了
  • 给students表添加一个 is_delete 字段 bit 类型
  • alter table students add is_delete bit default 0;
  • update students set is_delete=1 where id = 1;

修改

单条修改
  • update 表名 set 列1=值1,列2=值2… where 条件;
全部修改
  • update students set high = 170.00;
按条件修改
  • update students set high = 170.00 where id=3;
按条件修改多个值
  • update students set gender ="",name = “xxx” ;
    update students set gender=“中性”,name=“111” where id=3;

查询(全查,条件查询,模糊查询(_),排序,分组)

查询所有
  • select * from +表名
    select * from student
条件查询
  • select * from student where id=1 or id =2
  • select * from student where id in(1,2,3,4)
  • select * from student where id BETWEEN 1 and 4
指定查询
  • select name,gender from students;
模糊查询
  • SELECT * from student where sname like ‘明%’
  • SELECT * from student where sname like ‘%明’
  • SELECT * from student where sname like ‘%明%’
升序
  • select * from student ORDER BY sscore
降序
  • select * from student ORDER BY sscore desc
分组查询 HAVING + GROUP BY
  • select count(*) from student GROUP BY ssex HAVING sum(sscore)>=85

聚合函数 sum ,avg,max ,min count()

  • select count(sscore) from student
  • select avg(sscore) from student
  • select max(sscore) from student
  • select min(sscore) from student
  • select sum(sscore) from student

多表联查

  • 内连接 inner join
  • 外连接 left join ,right join
  • 全连接 full join (不适用mysql,使用oracle) = left join+ union+right join
字段的顺序
  • select gender as “性别”,name as “姓名” from students;
可以使用as为列或表指定别名
  • select 字段[as 别名] , 字段[as 别名] from 数据表;
    select name as “姓名”,gender as “性别” from students;

连接查询

内连接
  • select s.sname,s.sex,c.classroom from class c INNER JOIN student s on s.sid = c.sid
  • SELECT sc.school,c.classroom from school as sc INNER JOIN class as c on sc.cid = c.cid
外连接
  • select s.sname,s.sex,c.classroom from class c left JOIN student s on s.sid = c.sid (左边为主表,右边有则填充,没有用null)
  • select s.sname,s.sex,c.classroom from class c RIGHT JOIN student s on s.sid = c.sid (右边为主表,左边有则填充,没有用null)
全连接(不适用mysql)
  • select s.sname,s.sex,c.classroom from class c full JOIN student s on s.sid = c.sid
全连接
  • select s.sname,s.sex,c.classroom from class c left JOIN student s on s.sid = c.sid UNION select s.sname,s.sex,c.classroom from class c RIGHT JOIN student s on s.sid = c.sid
多表联查
  • select c.classroom,st.sname,st.sex ,sc.school from class as c INNER join student as st on c.sid = st.sid INNER JOIN school as sc on c.cid = sc.cid
子查询(一个表的查询的结果作为另一个表的条件)
  • SELECT cid from school where school =‘北京’
    SELECT classroom from class where cid=(SELECT cid from school where school =‘北京’)

数据库备份与恢复

  • mysqldump –uroot –p 数据库名 > python.sql;
  • mysql -uroot –p 新数据库名 < python.sql;

真的是好多啊

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值