MySQL-5汇总
一、数据库操作语句
mysql -hlocalhost -p3306 -uroot -proot
SHOW DATABASES;
SHOW CREATE DATABASE db_name; 
CREATE DATABASE [IF NOT EXISTS] db_name [CHARSET 字符集];
USE db_name;
DROP DATABASE [IF EXISTS ] db_name;
alter database db1 charset=utf8;
SHOW TABLES [FROM 表名];
DESC tb_name;
SHOW CREATE TABLE tb_name;
linux下mysql设置远程连接详见Linux-3关闭防火墙和设置远程连接。
Mysql注释方法1-- 注释(注意:--后面要有空格);注释方法2#
二、建表语句
set names gbk;//在cmd中必须设置,否则返回ERROR 1067 (42000): Invalid default value for 'gender'
例 create table if not exists stu1(
id int not null primary key auto_increment,
name varchar(4) not null unique key,
gender enum('男','女','保密') not null default '保密',
age tinyint,
salary float not null default 0,
grad_time date comment '毕业时间',
intro text comment '自我介绍'             //注意这里不能有,逗号
)charset =utf8;
修改表、字段
alter table student1 add ismarry char(1) not null default '否';//添加字段
alter table tb_name modify  col_name  col_type  col_attr;
alter table tb_name change col_name new_col_name col_type;改字段
ALTER TABLE table_name DROP[COLUMN] col_name, DROP [COLUMN] col_name,……;
ALTER TABLE table_name DROP Index col_name;//alter table student1 drop index name;可删除unique唯一键索引
alter table tb_name rename new_tb;
drop table [if exits] tb_name;
create table tb_name1 like tb_name2;//表结构
create table 表名1 select * from 表2;
-------------------------------------------------------------------------------------
show character set;
show variables like 'character_set_%';
show collation;
show variables like 'character_set%';
set names gbk;三表合一设置字符集
show engines;
1、创建索引---在建表完成后添加
alter table tb3 engine innodb;
alter table tb3 add index(id);
alter table tb3 add unique index `index_sn`  (`sn`);
2、创建索引---直接在建表时创建
primary key (`id`)
index `index_name` (`xing`,`ming`)
unique index `index_sn` (`sn`)
fulltext index `index_intro` (`index`)
三、增改删查----------------------------------------------------------------------------------------------
增 insert into student1 (name,age) values ('张小兽',23);
insert into student1 set name='郑容和',age=27,salary=3000;
insert into student1 (name,age) values ('郭靖',23),('黄蓉',22),('杨过',25),('小龙女',26);
insert into student1(name,intro) select name,intro from student1;//只复制了名字和介绍,其他默认
改update 表名 set 字段1=值1,字段2=值2,…[where 条件];//update student1 set gender='男' where id=9 or id=11;//同时修改两条记录
删 delete from student1 where id=6;//执行delete后id=6无数据,但id会保留。
truncate 表名;
查询操作(select)
select[all|distinct]字段列表 * from 表名 [where 条件][group by 条件][having by 条件][order by 条件][limit 条件];
select unix_timestamp() from dual;//1483707354时间戳
select id,name as 姓名,salary as 工资,address as 地址 from student1;//字段别名
select all/distinct name as 姓名 from student1;//distinct必须是所有字段的值都不同时才能用上
where 条件+>或<或=     //例1select * from student1 where address='南方' and age<23  or age is null;注意数据库中null无法做比较
where +in()或not in(),in后面罗列字段可取值,使用()包括。select * from tb1 where name in('小华','张三');
where+between或not between,where+is null或is not null
匹配符 where+like + '%'匹配任意多个字符和like + '_'匹配一个字符。例:select * from tb1 where name like '%华' or name like '%三';
select gender,count(gender) from student1 group by gender;//显示表中所有男生和女生数量
select group_concat(name,age) gender,count(gender) from student1 group by gender;//显示男生和女生数量以及姓名、年龄
select address,max(salary) from student1 group by address having max(salary)>1000;
//先按照地址,最高薪资分组,再筛选出分组结果中大于1000的地址和薪资信息。
order by 排序:select 字段列表 from 表名 [where 子句] [group by 子句] [having子句] [order by子句];
select * from student1 order by fenshu desc limit 3;//显示语文考试前三名的个人信息limit  (page-1)*pagesize,pagesize。(即limit m,n )
查询总结:select 字段列表 from 表名 [where子句] [group by子句] [having子句] [order by子句] [limit 子句];
  • where子句可以进行条件判断,对from子句返回的结果集进行筛选

    • group by子句可以对数据进行分组
    • having子句可以对分组的结果集进行进一步的筛选
    • order by子句可对结果集进行排序
    • limit限制最终结果集的输出行数
  • 注意各个子句之间的顺序不能错-----------------------------------------------------------------------------------
一、连接查询
1、内连接inner join……on
inner join语法:  select 字段列表 from 表1 inner join 表2 on 表1.字段=表2.字段。
例:select b1.*,b2.num2 from n1j1 as b1 inner join n2j2 as b2 on b1.id=b2.id;
同理:三张表的内连接查询: select * from 表1 inner join 表2 on 条件 inner join 表3 on 条件。
 2、左连接语法 : select 字段列表 from 表名 left join 表名 on 条件。
 3、右连接语法: select * from 表1 right join 表2 on 条件
4、自然内连接natural join,自然左连接natural left join,自然右连接natural right join
5、using()可部分情况代替on 条件。select * from n1j1 inner join n2j2 using(id);
二、联合查询 union,连接查询是将两张表横向的连接到一起,联合查询是将两张表纵向的连接到一起
select id,name from student where city like '%西%' order by salary desc limit 100     //工资降序
union                                                                            //排序结果上下组合到一张表
select id,name from student where age>35 order by salary asc limit 100;               //工资升序
三、子查询
select * from student1 where salary>(select avg(salary) from student1);.标量子查询
select * from student1 where age in(select age from student1 where name in('宋小花','周同学'));列子查询
where 字段 in|not in(子查询语句),where 字段 比较运算符 any(子查询语句),where 字段 比较运算符 all(子查询语句)
select * from 表格 where(字段1,字段2) =(select 字段1,字段2 from 表);行子查询
select * from (表子查询的结果) as 表名表子查询
四、数据的备份及还原---------------------------------------------------------------------------------------
C:\WINDOWS\system32>mysqldump -uroot -proot -d db3<e:/db3.sql
C:\WINDOWS\system32>mysqldump -uroot -proot -B db3<e:/db3.sql导出数据库结构、表结构、表数据
C:\WINDOWS\system32>mysql -uroot -proot db3<e:/db3.sql     //数据的还原
C:\WINDOWS\system32>mysql -uroot -proot <e:/db3.sql
mysql>source e:/db3.sql;
五、创建用户和用户授权
1.显示所有的用户:select host,user,password from mysql.user;
create user 'hangzhou'@'localhost' identified by '123456';.创建用户
set password [for ‘user’@’ip地址’] = password(‘密码’);设置密码
grant 权限 on 数据库.表格 to ‘user’@’ip地址’[with grant option]用户授权
grant all privileges on *.* to ‘user ’@‘ip地址’//给用户赋予所有的权限
  revoke all privileges on *.* from ‘user’@’ip地址’移除用户的权限
drop user ‘user’@’ip地址’删除用户
六、找回密码
  1. 关闭mysql服务 net stop mysql
  2. 让mysql跳过验证密码的环节 mysqld --skip-grant-tables
  3. 打开一个新的cmd,然后直接输入mysql登陆
  4. 修改密码  update mysql.user set password=password(‘新密码’) where user=’root’;
  5. tastkill /f /im mysqld   ||  tastkill /f /pid 3228  或者直接在任务管理器中结束mysqld任务
  6. 重新启动mysql服务即可正常登陆
七、MySQL中的预处理
基本语法:
//1、创建预处理语句
prepare  预处理指令 from  SQL语句(insert/delete/update/select)
//2、设置参数
set @value = value;
    //3、执行预处理
    execute  预处理指令;
    prepare stmt1 from 'insert into user values (null,?,?,?)';//1创建预处理语句
    set @username='zhangsan';//2设置参数
    set @password=md5('123456');
    execute stmt1 using @username,@password;//3执行预处理语句
    select * from user;//4返回执行结果
在php中的应用
$link=new mysqli('localhost','root','123456','test'); #连接数据库
if ($stmt=$link->prepare("select * from curl_songs_num where id in ($ids)")) { #预处理语句
$stmt->execute();    #执行查询语句
$stmt->bind_result($id,$title,$author,$cont);    #给字段绑定参数
while($stmt->fetch()){
//$songs=...;
echo "<span style='color:blue'>$song[0]</span><br>$song[1]<hr>";
}
}
$stmt->close();
$link->close();

八、MySQL的事务
①开启事务
1)标准事务:start  transaction;
当提交或回滚一个事务之后,事务结束。接下来的操作不在事务操作范围之内。
2)语句事务:set  autocommit = 0;
当提交或回滚一个事务之后,事务不会终止,后面的操作仍处于事务之中。
②提交事务:commit;
③回滚事务:rollback;

MYSQL一揽子方案汇总相关推荐

  1. 总奖金200万的算法赛方案汇总!

    2021DIGIX全球校园AI算法赛方案汇总 关于赛事信息(比赛8月底截止,点击下方可跳转) 地址:https://gitee.com/coggle/competition-baseline/tree ...

  2. Android适应方案汇总(三)

    在Android适应方案汇总(一个).(两)在.我们理解一些基本概念. 那么详细的开发,我们应该重视起来. 首先,我们需要知道.关键的事实是,这两个适配器: (1).这点在单位的使用上用dp.sp以及 ...

  3. 【数据竞赛】2020 Kaggle 10大竞赛方案汇总

    作者: 尘沙黑夜 2020 Kaggle 10大竞赛方案汇总 1  2020kaggle精选10大赛事汇总 1.1  2019 Data Science Bowl(3493只队伍) 1.2  Tens ...

  4. 【竞赛相关】Kaggle竞赛宝典国内外竞赛方案汇总

    本文汇总了kaggle竞赛宝典将近50个竞赛的Top方案&思路&代码. 2019年度所有国内外竞赛汇总 干货 | 2019 数据竞赛TOP方案合集 数据竞赛2019年度年鉴发布(250 ...

  5. 【数据竞赛】Kaggle竞赛宝典国内外竞赛方案汇总

    本文汇总了kaggle竞赛宝典将近50个竞赛的Top方案&思路&代码.关注"kaggle竞赛宝典"并在后台输入"竞赛宝典",还将获得5个kagg ...

  6. 太强了!Kaggle竞赛宝典方案汇总

    kaggle竞赛宝典公众号建立的初衷是希望将很多经典比赛的方案写成案例的形式,每个步骤都配有一定的阐述,讲述某些操作为什么有效等,希望可以帮助更多的新手快速入门(太多的开源只有代码,看代码的时间是巨大 ...

  7. 2021年Kaggle所有赛事TOP方案汇总

    本文摘自 coggle数据科学Kaggle2021TOP方案汇总Kaggle 2021年 45场比赛&优胜方案汇总 https://www.kaggle.com/c/tabular-playg ...

  8. MySQL优化建议汇总~~~

    MySQL优化建议汇总~~~ 1.将经常要用到的字段(比如经常要用这些字段来排序,或者用来做搜索),则最好将这些字段设为索引 2.字段的种类尽可能用int或者tiny int类型.另外字段尽可能用no ...

  9. 宁波大学考研复试C语言设计,2021年宁波大学考研复试名单及复试方案汇总

    2021年宁波大学考研复试名单及复试方案汇总 001商学院:http://nbubs.nbu.edu.cn/sydt/ltx.htm 商学院2021年硕士研究生招生复试录取办法,复试时间:3月29日 ...

最新文章

  1. jquery实现点击a链接,跳转之后,该a链接处显示背景色
  2. 淘宝网商品库优化实践访谈
  3. oracle更新统计信息执行计划,为准确生成执行计划更新统计信息-analyze与dbms_stats...
  4. Linux疑难杂症解决方案100篇(二)-SHELL编程函数的定义及调用
  5. linux内核_Linux驱动编程的本质就是Linux内核编程
  6. DataV数据可视化功能特性
  7. Python处理mongo结果中的ObjectId类型为字符串
  8. MongoDB的Go语言驱动----mgo的使用指南
  9. 2015-UNet论文翻译
  10. Python安装学习
  11. vsftpd安装包下载
  12. 一例智能网卡(mellanox)的网卡故障分析
  13. 丰县哪里有学计算机,江苏丰县中等专业学校2021年有哪些专业
  14. HTML 代码混淆与压缩
  15. 第十三届蓝桥杯大赛软件赛省赛(b组c语言)
  16. 云时代的应用性能管理(APM)
  17. 《基于Python的大数据分析基础及实战》第一章
  18. Python:打印日历,验证信用卡号是否合法
  19. 常见bootloader介绍
  20. 杨紫开直播被吐槽脸胖、脖子粗、嘴唇厚,这就是明星开美颜的原因

热门文章

  1. 里约奥运|高科技助力 本届奥运会有待打破更多记录
  2. windows wsl解决磁盘空间不够问题
  3. 【Demo】教你实现下拉刷新
  4. Amesim学习——热传导基础案例:金和铝的导热性比较
  5. mysql sin() 函数
  6. 奇异矩阵 singular matrix
  7. 自媒体新手入门攻略,学习干货内容了解运营技巧
  8. java培训记录Day18 2022/3/31星期四(super+多态+抽象类)
  9. 计算机组装安装与维护大作业,《电脑组装、使与维护》大作业.doc
  10. 【人物志】海子:面朝大海,春暖花开