欢迎观看本教程,此教程为2024年7月29日更新
这里是一些基础的命令和操作,有错误的地方欢迎大家留言指出
目录
一、mysql安装
mysql安装教程:https://blog.youkuaiyun.com/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)的简称。
二、基本命令
- create 创建
- database 数据库
- use 使用
- table 表
- exists 存在
- primary 主要的
- auto_increment 自增
- unique 唯一
- default 默认的
- charset 编码设置
- drop 删除(表,库)
- alter 修改(列)
- change 变化
- add 增加
- insert 插入
- value 数据
- delete 删除(数据)
- update 更新
- select 选择(查询)
- from 来自
- desc+表名 查询表结构
- group 分组
- order 排序
- asc升序
- desc降序
- max 最大值
- min最小值
- avg平均值
- count数量
- between 在...之间
- like 像
- syntax 语法
- error错误
- distinct 去重
- limit 限制
- union 联
- inner join … on 内连接
- left join … on 左连接
- right join … on 右连接
- 聚合函数:count() sum() avg() max() min()
三、MySQL数据库基本操作
- 打开MySQL服务: service mysql start
- 使用root用户登录,密码为空: mysql -u root -p
- 删除数据库 drop database 库名;
- 连接数据库 use test_db 库名;
- 查看当前使用的数据库 select database();
- 当前数据库包含的表信息 show tables;
- 查看数据库字符集 show variables like '%char%';
- 查看数据库: show databases;
- 创建数据库: create database 表名
- 使用数据库: use 数据库名字;
- 显示所有的数据库 show databases
四、MySQL建表基本操作
- Mysql数据类型:int bigint float char varchar
- 唯一约束(可以为空,不能重复,不能多次使用):unique
- 设置主键(不能为空,不能重复,不能多次使用):primary key
- 非空约束(强制不能为空):not null
- 默认约束(赋予默认值):default 默认值
----主键、外键的作用
--主键:能够代表表的唯一标识
复合主键:两列或两列以上
--外键:建立两表之间的业务关联关系
业务表中不会用数据库的外键外建立业务关联关系(开发)
--数据设计范式
五、MySQL查询、插入基本使用
- 按条件查询(展示出):select 列名(要展示出的列) from 表名 where 列名 >=数据(条件)order by 列名 desc(加desc从大到小)
- select * from 学生 where 年龄 >= 15 and 年龄 <= 20
- 按条件删除一条数据: delete from 表名字 where 列名字 = 数据(条件);
- 插入某列: alter table 表名 add column 列名 类型 after 在哪列之后插入就输入哪列的名字
- 插入某列: alter table 表名 add column 列名 类型
- 插入数据: insert into 表名字 values(1001,’libaofeng’);
- 查看表格结构: desc 表名字;
- 查看建表语句: show create table 表名字
- 查询表格里的数据: select * from 表名字;
- 查询名字叫mysel的数据库: show databases like 'mysql';
- 查询数据并根据年龄排序: select * from 表名 order by 年龄
- 查询数据并根据年龄排序从大到小: select * from 表名 order by 年龄 desc
- 查询已经存在的表: show tables;
- 计算平均年龄多大: select avg(年龄)from 学生
- 年龄总和是多大: select sum(年龄)from 表名
- 批量添加数据: insert into 表名 values (null,'小明',18),(null,'小红',14),(null,'小立',17),(null,'小里',16),(null,'小礼',12);
六、MySQL修改删除
- 删除表: drop table 表名
- 删除表中年龄15-20之间的数据: delete from 表名字 where 年龄 >= 15 and 年龄 <=30
- 删除表中所有数据: delete from 表名字
- 删除某列: alter table 表名 drop column 列名;
- 删除某行: delete from 表名 where 列名=条件(让计算机知道是哪一行)
- 删除数据库: drop database 数据库名字;
- 删除语句: delete from 表名 列名 列名 =数据(条件)
- 修改密码: update use.user set password=’新密码’ where user=’root’;
- 修改某列列名: alter table 表名 change 原列名 新列名 类型;
- 修改某一列的类型: alter table 表名 modify column 列名 类型;
- 给某一列添加约束: alter table 表名 change 旧列名 新列名 类型 要增加的约束
- 修改数据: update 表名 set 列名=改后数据 where 列名=要修改的某行的数据(条件,告诉计算机要修改哪一行)
- 批量展示指定的行数输出: select * from 数据 limit 行数,行数;(展示从第几行到第几行)
- 重命名表名: alter table 原表名 student rename to 新表名;
- 最大年龄多大: select max(年龄)from 表名
- 最小年龄多大: select min(年龄)from 表名
- 批量修改某列连续内容: update 表名 set 列名=要改成的数据 where 列名 >=编号 and 列名 <=编号 (这里是条件 取一个范围)
- 修改某列的所有信息: update 表名 set 列名 =要修改成的数据;
- 查看某一列或者某几列的信息: select 列名(如果有多列就用逗号隔开,不要空格)from 表名;
- 统计总个数: select count(列名) from 表名;
- 临时修改列名字: select 原列名 as 新列名 from 表名
七、MySQL模糊查询
- 查询数据库带a字母的数据库: show databases like '%a%';
- 查询数据库以‘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基本操作
- 查询数据库:show databases;
- 查询名字叫mysel的数据库:show databases like 'mysql';
- 模糊查询数据库带a字母的数据库:show databases like '%a%';
- 模糊查询数据库以‘a’开头的数据库
- show databases like 'a%';
- show databases like 'b%';
- show databases like 'c%';
- 开头select * from 表名 where 列名 like '%以什么开头就写啥%'
- 结尾:select * from 表名 where 列名 like '以什么结尾就写啥%'
- 创建test2001数据库:create database test2001;
- 使用test2002数据库:use test2001;
- 创建一个学生表包括 学号、姓名、年龄:create table 学生 (学号 int auto_increment primary key,姓名 varchar(20),年龄 int);
- 插入数据:insert into 学生 values (1001,'小李',21);
- 查询
- select * from 学生;
- insert into 学生 values (1002,'大李',19);
- select * from 学生;
- 批量添加数据:insert into 学生 values (null,'小明',18),
(null,'小红',14),
(null,'小立',17),
(null,'小里',16),
(null,'小礼',12);
- 查询数据并根据年龄排序:select * from 学生 order by 年龄
- 查询数据并根据年龄排序从大到小:select * from 学生 order by 年龄 desc
- 计算平均年龄多大:select avg(年龄)from 学生
- 最小年龄多大:select min(年龄)from 学生
- 最大年龄多大:select max(年龄)from 学生
- 年龄总和是多大:select sum(年龄)from 学生
- 按条件查询:select * from 学生 where 年龄 >= 15 and 年龄 <= 20
- 修改数据:update 学生 set 年龄 = 18 where 姓名 = '小明'
- 删除表:drop table 学生
- 按条件删除:delete from 学生 where 学号=1003
- 删除表中所有数据:delete from 学生
- 删除表中年龄15-20之间的数据:delete from 学生 where 年龄 >= 15 and 年龄 <=30
- 插入某列:alter table 表名 add column 列名 类型 after 在哪列之后插入就输入哪列的名字
- 修改某一列的类型:alter table 表名 modify column agrs 类型;
- 删除某列:alter table 表名 drop column 列名;
- 重命名表名:alter table 表名 student rename to 表名;
- 插入某列:alter table 表名 add column 列名 类型
- 修改数据:update 表名 set 列名=改后数据 where 列名=要修改的某行的数据(条件,告诉计算机要修改哪一行)
- 删除语句:delete from 表名 列名 列名 =数据(条件)
- 按条件查询(展示出):select 列名(要展示出的列) from 表名 where 列名 >=数据(条件)
- 按条件查询(展示出):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命令的可以访问地址:
优快云地址:https://blog.youkuaiyun.com/qq_59344199/article/details/128096809?spm=1001.2014.3001.5501
十五、Rides
如果想要了解和学习Rides数据库的可以访问地址:
优快云地址:
https://blog.youkuaiyun.com/qq_59344199/article/details/127997159?spm=1001.2014.3001.5501
有什么需要欢迎大家留言
最后祝大家在计算机道路上一路长虹!!!
最后祝大家在计算机道路上一路长虹!!!
最后祝大家在计算机道路上一路长虹!!!