MYSQL数据库命令+操作----最详细的操作教程(测试木头人)

今天木头人在闲暇之余,整理了一些往期的笔记,欢迎大家一起学习。

这里是一些基础的命令和操作,有错误的地方欢迎大家留言指出

目录

一、mysql安装

二、基本命令

三、MySQL数据库基本操作

四、MySQL建表基本操作

五、MySQL查询、插入基本使用

六、MySQL修改删除

七、MySQL模糊查询

八、MySQL对表的操作

九、MySQL基本操作

十、多表查询

十一、MySQL函数

十二、MYSQL索引+视图+主外键

十三、忘记root密码情况下

十四、adb命令大全及详解:

十五、Rides



一、mysql安装

mysql安装教程:https://blog.csdn.net/qq_59344199/article/details/127558950?spm=1001.2014.3001.5502

        MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属mysql属于甲骨文公司,是Oracle旗下的产品。于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS (Relational DatabaseManagement System,关系数据库 。       

        Microsoft公司推出的关系型数据库管理系统 SQL Server是Microsoft公司推出的关系型数据库管理系统。

        SQL server是由Microsoft开发和推广的关系数据库管理系统(DBMS)。SQL语言,是结构化查询语言(Structured Query Language)的简称。

二、基本命令

  1. create 创建
  2. database 数据库
  3. use 使用
  4. table 表
  5. exists 存在
  6. primary 主要的
  7. auto_increment 自增
  8. unique 唯一
  9. default 默认的
  10. charset 编码设置
  11. drop 删除(表,库)
  12. alter 修改(列)
  13. change 变化
  14. add 增加
  15. insert 插入
  16. value 数据
  17. delete 删除(数据)
  18. update 更新
  19. select 选择(查询)
  20. from 来自
  21. desc+表名 查询表结构
  22. group 分组
  23. order 排序
  24. asc升序
  25. desc降序
  26. max 最大值
  27. min最小值
  28. avg平均值
  29. count数量
  30. between 在...之间
  31. like 像
  32. syntax 语法
  33. error错误
  34. distinct 去重
  35. limit 限制
  36. union 联
  37. inner join … on 内连接
  38. left join … on 左连接
  39. right join … on 右连接
  40. 聚合函数:count() sum() avg() max() min()

三、MySQL数据库基本操作

  1. 打开MySQL服务: service mysql start
  2. 使用root用户登录,密码为空: mysql -u root -p
  3. 删除数据库 drop database 库名;
  4. 连接数据库 use test_db 库名;
  5. 查看当前使用的数据库 select database();
  6. 当前数据库包含的表信息 show tables;
  7. 查看数据库字符集 show variables like '%char%';
  8. 查看数据库: show databases;
  9. 创建数据库: create database
  10. 使用数据库: use 数据库名字;
  11. 显示所有的数据库 show databases

四、MySQL建表基本操作

  1. Mysql数据类型:int  bigint  float  char  varchar
  2. 唯一约束(可以为空,不能重复,不能多次使用):unique
  3. 设置主键(不能为空,不能重复,不能多次使用):primary key
  4. 非空约束(强制不能为空):not null
  5. 默认约束(赋予默认值):default 默认值

 ----主键、外键的作用
    --主键:能够代表表的唯一标识
      复合主键:两列或两列以上
    --外键:建立两表之间的业务关联关系
      业务表中不会用数据库的外键外建立业务关联关系(开发)
    --数据设计范式

五、MySQL查询、插入基本使用

  1. 按条件查询(展示出):select  列名(要展示出的列) from 表名 where 列名 >=数据(条件)order by 列名     desc(加desc从大到小)
  2. select * from 学生 where 年龄 >= 15 and 年龄 <= 20
  3. 按条件删除一条数据: delete from 表名字 where 列名字 = 数据(条件);
  4. 插入某列: alter table 表名 add column  列名  类型 after 在哪列之后插入就输入哪列的名字
  5. 插入某列: alter table 表名 add column 列名 类型
  6. 插入数据: insert into 表名字 values(1001,’libaofeng’);
  7. 查看表格结构: desc 表名字;
  8. 查看建表语句: show create table 表名字
  9. 查询表格里的数据: select * from 表名字;
  10. 查询名字叫mysel的数据库: show databases like 'mysql';
  11. 查询数据并根据年龄排序: select * from 表名 order by 年龄
  12. 查询数据并根据年龄排序从大到小: select * from 表名 order by 年龄 desc
  13. 查询已经存在的表: show tables;
  14. 计算平均年龄多大: select avg(年龄)from 学生
  15. 年龄总和是多大: select sum(年龄)from 表名
  16. 批量添加数据: insert into 表名 values (null,'小明',18),(null,'小红',14),(null,'小立',17),(null,'小里',16),(null,'小礼',12);

六、MySQL修改删除

  1. 删除表: drop table 表名
  2. 删除表中年龄15-20之间的数据: delete from 表名字 where 年龄 >= 15 and 年龄 <=30
  3. 删除表中所有数据: delete from 表名字
  4. 删除某列: alter table 表名  drop column 列名;
  5. 删除某行: delete from 表名 where 列名=条件(让计算机知道是哪一行)
  6. 删除数据库: drop database 数据库名字;
  7. 删除语句: delete from 表名  列名  列名 =数据(条件)
  8. 修改密码: update use.user set password=’新密码’ where user=’root’;
  9. 修改某列列名: alter table 表名 change 原列名 新列名 类型;
  10. 修改某一列的类型: alter table 表名 modify column 列名 类型;
  11. 给某一列添加约束: alter table 表名 change 旧列名 新列名 类型 要增加的约束
  12. 修改数据: update 表名 set 列名=改后数据 where 列名=要修改的某行的数据(条件,告诉计算机要修改哪一行)
  13. 批量展示指定的行数输出: select * from 数据 limit 行数,行数;(展示从第几行到第几行)
  14. 重命名表名: alter table 原表名 student rename to 新表名;
  15. 最大年龄多大: select max(年龄)from 表名
  16. 最小年龄多大: select min(年龄)from 表名
  17. 批量修改某列连续内容: update 表名 set 列名=要改成的数据 where  列名 >=编号 and 列名 <=编号  (这里是条件 取一个范围)
  18. 修改某列的所有信息: update 表名 set 列名 =要修改成的数据;
  19. 查看某一列或者某几列的信息: select 列名(如果有多列就用逗号隔开,不要空格)from 表名;
  20. 统计总个数: select count(列名) from 表名;
  21. 临时修改列名字: select 原列名 as 新列名 from 表名 

七、MySQL模糊查询

  1. 查询数据库带a字母的数据库: show databases like '%a%';
  2. 查询数据库以‘a’开头的数据: show databases like 'a%';

        开头select * from 表名 where 列名 like '%以什么开头就写啥%'  

        结尾:select * from 表名 where 列名 like '以什么结尾就写啥%'

八、MySQL对表的操作

        1、删除 student_course 数据库中的 students 数据表:

         rm -f student_course/students.*

        2、备份数据库:(将数据库 test 备份)

        mysqldump -u root -p test>c: est.txt

        3、备份表格:(备份 test 数据库下的 mytable 表格)

        mysqldump -u root -p test mytable>c: est.txt

        4、将备份数据导入到数据库:(导回 test 数据库)

        mysql -u root -p test

        5、创建临时表:(建立临时表 zengchao)

        create temporary table zengchao(name varchar(10));

        6、创建表是先判断表是否存在

        create table if not exists students(„„);

        7、从已经有的表中复制表的结构

        create table table2 select * from table1 where 1<>1;

        8、复制表

        create table table2 select * from table1;

        9、对表重新命名

        alter table table1 rename as table2;

        10、修改列的类型

        alter table table1 modify id int unsigned;//修改列 id 的类型为 int unsigned

        alter table table1 change id sid int unsigned;//修改列 id 的名字为 sid,而且把属性修改为

        int unsigned

        11、创建索引

        alter table table1 add index ind_id (id);

        create index ind_id on table1 (id);

        create unique index ind_id on table1 (id);//建立唯一性索引

        12、删除索引

        drop index idx_id on table1;

九、MySQL基本操作

  1. 查询数据库:show databases;
  2. 查询名字叫mysel的数据库:show databases like 'mysql';
  3. 模糊查询数据库带a字母的数据库:show databases like '%a%';
  4. 模糊查询数据库以‘a’开头的数据库
  5. show databases like 'a%';
  6. show databases like 'b%';
  7. show databases like 'c%';
  8. 开头select * from 表名 where 列名 like '%以什么开头就写啥%'
  9. 结尾:select * from 表名 where 列名 like '以什么结尾就写啥%'
  10. 创建test2001数据库:create database test2001;
  11. 使用test2002数据库:use test2001;
  12. 创建一个学生表包括 学号、姓名、年龄:create table 学生 (学号 int auto_increment primary key,姓名 varchar(20),年龄 int);
  13. 插入数据:insert into 学生 values (1001,'小李',21);
  14. 查询
  15. select * from 学生;
  16. insert into 学生 values (1002,'大李',19);
  17. select * from 学生;
  18. 批量添加数据:insert into 学生 values (null,'小明',18),

                                                                       (null,'小红',14),

                                                                       (null,'小立',17),

                                                                       (null,'小里',16),

                                                                       (null,'小礼',12);

  1. 查询数据并根据年龄排序:select * from 学生 order by 年龄
  2. 查询数据并根据年龄排序从大到小:select * from 学生 order by 年龄 desc
  3. 计算平均年龄多大:select avg(年龄)from 学生
  4. 最小年龄多大:select min(年龄)from 学生
  5. 最大年龄多大:select max(年龄)from 学生
  6. 年龄总和是多大:select sum(年龄)from 学生
  7. 按条件查询:select * from 学生 where 年龄 >= 15 and 年龄 <= 20
  8. 修改数据:update 学生 set 年龄 = 18 where 姓名 = '小明'
  9. 删除表:drop table 学生
  10. 按条件删除:delete from 学生 where 学号=1003
  11. 删除表中所有数据:delete from 学生
  12. 删除表中年龄15-20之间的数据:delete from 学生 where 年龄 >= 15 and 年龄 <=30
  13. 插入某列:alter table 表名 add column  列名  类型 after 在哪列之后插入就输入哪列的名字
  14. 修改某一列的类型:alter table 表名 modify column agrs 类型;
  15. 删除某列:alter table 表名  drop column 列名;
  16. 重命名表名:alter table 表名 student rename to 表名;
  17. 插入某列:alter table 表名 add column 列名 类型
  18. 修改数据:update 表名 set 列名=改后数据 where 列名=要修改的某行的数据(条件,告诉计算机要修改哪一行)
  19. 删除语句:delete from 表名  列名  列名 =数据(条件)
  20. 按条件查询(展示出):select  列名(要展示出的列) from 表名 where 列名 >=数据(条件)
  21. 按条件查询(展示出):select  列名(要展示出的列) from 表名 where 列名 >=数据(条件)order by 列名     desc(加desc从大到小)

   22.展示指定的行数输出:select * from 数据 limit 行数,行数;(展示从第几行到第几行)

十、多表查询

----自然连接

select * from stu, inner join classes on stu.cid=classes,cid

on:关联的条件

----内连接   from A inner join B on 关联的条件

select * from stu, inner join classes on stu.cid=classes,cid

----外连接   outter join

----左外连接 left outter join,from A LEFT JOIN B ON A,字段=B,字段

select * from stu left join classes on stu.cid = classes.cid

select * from classes left join stu on stu.cid = classes.cid

----右外连接 rom A Right

内连接 两表交集部分

左连接 以左表为主表 取其所有记录及与右表交集的部分 即使右表没有交集,补空

右连接 以右表为主表 取其所有记录及左表交集的部分 即使左表没有交集,补空

十一、MySQL函数

MySQL-单行函数

SELECT SUBSTR("RUNOOB",2,3) as name
select name,birthday,substr(birthday,1,4) as year from stu where substr(birthday,1,4)='2012'
去重:select distinct name,age from 表名; 

MysQL日期函数函数名

ADDDETE(d,n) 计算起始日期d加上n天的日期
SELECT ADDDATE("2017-06-15",INTERVAL 10 DAY );->2017-06-25

十二、MYSQL索引+视图+主外键

索引:提高检索速度  就是搜索的速度

在创建索引时,要确保索引是用在SQL查询语句的条件

增加查询速度   降低增删改速度  占用MySQL空间

----索引 index

create index inx_stu(索引名) on 表名(列名);

----查询语句 优化

查询当前语句是不是最优化的

select语句  少用 *   ,查什么用什么

group by 后面跟的聚合函数 sum()、max()、count() 等  少用 *

---- 视图 view

视图是一张虚拟的表,一般用来保存一些复杂的查询语句,数据

会随着基表的变化而变化

-- create view viewname as 查询语句

select stu.name,c.cname from stu left join class c on stu.cid=c.cid;

create view v_stuclass(名) as select stu.name,c.cname from stu left join class c on stu.cid=c.cid;

delect from stu where id>8; 

select * from v_stuclass;

----主键、外键的作用

--主键:能够代表表的唯一标识

  复合主键:两列或两列以上

--外键:建立两表之间的业务关联关系

  业务表中不会用数据库的外键外建立业务关联关系(开发)

--数据设计范式

---- 三种范式:

 第一范式:无重复的列

 第二范式:属性完全依赖于主键

 第三范式:属性不能传递依赖于主键(属性不依赖于其他非主键属性)

 业务表中不要出现数据冗余的现象

十三、忘记root密码情况下

      ①关闭正在运行的MySQL服务。

      ②打开DOS窗口,转到mysql\bin目录。

      ③输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启 动MySQL服务的时候跳过权限表认证。

      ④再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),输入 mysql回车,如果成功,将出现MySQL提示符 >。

      ⑤连接权限数据库: use mysql; 。

      ⑥改密码:update user set password=password("新密码") where user="root";(别忘了最后加分号) 。

      ⑦刷新权限(必须步骤):flush privileges; 。

      ⑧退出mysql  quit;

命令:

mysqld --skip-grant-tables   

mysql> use mysql;   --连接权限数据库

mysql> update user set password=password("新密码") where user="root";   -- 改密码

mysql> flush privileges;    -- 刷新权限

mysql> quit; -- 退出mysql

十四、adb命令大全及详解:

如果想要了解和学习adb命令的可以访问地址:

CSDN地址:https://blog.csdn.net/qq_59344199/article/details/128096809?spm=1001.2014.3001.5501

十五、Rides

如果想要了解和学习Rides数据库的可以访问地址:

CSDN地址:

https://blog.csdn.net/qq_59344199/article/details/127997159?spm=1001.2014.3001.5501

有什么需要欢迎大家留言

最后祝大家在计算机道路上一路长虹!!!

最后祝大家在计算机道路上一路长虹!!!

最后祝大家在计算机道路上一路长虹!!!

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试木头人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值