安装服务端: sudo apt-get install mysql-server
安装客户端: sudo apt-get install mysql-client
配置文件:/etc/mysql
命令集: /usr/bin
数据库存储目录 :/var/lib/mysql
查看MySQL状态: sudo /etc/init.d/mysql status
启动服务:sudo /etc/init.d/mysql start | stop | restart
mysql -h主机地址 -u用户名 -p密码
mysql -hlocalhost -uroot -p123456
本地连接可省略 -h 选项: mysql -uroot -p123456
常看已有库: show databases;
创建库: create database 库名 default charset utf8;
查看创建库的语句(字符集) : show create databse 库名;
查看当前所在库: select database();
切换库: use 库名;
删除库: drop database 库名;
创建表: create table class_table (id int primary key auto_increment,name varchar(32),age int,gender enum(‘w’,‘m’),score float default 0.0,price decimal(6,2),comment text);
查看数据表: show tables;
查看已有表字符集: show create table 表名;
查看表结构: desc 表名;
删除表: drop table 表名;
插入数据: insert into 表名 values(2,‘Alex’,28,90.5),(3,‘Ryan’,26,100.0);
插入数据2: insert into 表名(字段名) values(对应字段值);
查询: select * from 表名 where 条件;
条件注意: 不能直接写12<age<29,应该用 where between 12 and 10;
where age in (8,9);
where sex is null;
where sex=‘m’ and age>10;
where not sex=‘m’;
更新表记录: update 表名 set age=11 where name=‘Ryan’;
删除表记录: delete from 表名 where name=‘Ryan’;
添加字段: alter table 表名 add age int;
删除字段: alter table 表名 drop age;
修改字段类型: alter table 表名 modify age int not null;
修改字段名: alter table 表名 change 旧字段 新字段;
表重命名: alter table 表名 rename 新表名;
模糊查询: select * from 表名 where name like ‘_A%’;(%代表匹配任意多个字符, _ 代表匹配任意一个字符)
排序: select * from 表名 where order by age desc limit 3; (ASC升序,DESC降序,limit查看多少)
联合查询: select * from class_table where age>13 UNION select * from class_table where gender is not null;
多表查询: select class_1.name,class_2.name from class_1,class_2 where class_1.age=class_2.age;
日期查询: select * from class_table where time<(now()-interval 1year); (查询一年以前的用户信息)
MySQL普通查询(执行顺序)
3、select …聚合函数 from 表名
1、where …
2、group by …
4、having …
5、order by …
6、limit …;
分组查询: select country,avg(attack) from sanguo group by country; (计算每个国家的平均攻击力)
select country,count(id) from sanguo where gender=‘m’ group by country order by count(id) DESC limit 2;(所有国家的男英雄中,英雄数量最多的前2名的国家名称及英雄数量)
分组聚合后筛选: select country,avg(attack) from sanguo group by country having avg(attack)>105 order by avg(attack) desc limit 2;(找出平均攻击力大于105的国家的前2名,显示国家名称和平均攻击力)
不显示字段重复值: select distinct country from sanguo;
嵌套查询: select name,attack from sanguo where attack<(select avg(attack) from sanguo);(把攻击值小于平均攻击值的英雄名字和攻击值显示出来)
select name,attack from sanguo where (country,attack) in (select country,max(attack) from sanguo group by country);(找出每个国家攻击力最高的英雄的名字和攻击值)
连接查询(内连接): select province.pname,city.cname,country.coname from province inner join city on province.pid=city.cp_id inner join country on city.cid=county.copid;(显示省市县详细信息)
左连接(以左表为主显示,右表没有的显示null)
select province.pname,city.cname from provice left join city on province.pid=city.cp_id;
右连接(以右表为主显示,左表没有的显示null)
创建索引: create table 表名(name varchar(32),class varchar(32),index(name),unique(class));
已有表创建索引: create unique/index 索引名 on 表名(字段名);
查看索引: desc 表名; MUL(普通索引)/UNI(唯一索引)
删除索引: drop index 索引名 on 表名;
创建主键: id int primary key auto_increment;
已有表添加主键: alter table 表名 add primary key(id);
已有表添加自增长: alter table 表名 modify id int auto_increment;
删除自增长: alter table 表名 modify id int;
删除主键索引: alter table 表名 drop primary key;(需要先去除自增长)
添加外键: foreign key(参考字段名) references 主表(被参考字段名) on delete cascade on update cascade); (删除更新主表,从表也会跟着操作)–restrict不做任何操作,set null主表删除,从表值为null
查看外键名: show create table 表名;
删除外键: alter table 表名 drop foreign key 外键名;
表的复制: create table 新表名 select * from 库名.被复制的表名;(表的复制不会把原表的键属性复制过来)
复制表结构: create table 表名 select 查询命令 where false;
创建表指定引擎: create table 表名 (…)engine=MyISAM,charset=utf8;
事务操作: (对查询和新建表,新建库是无效的)
开启事务: begin; 或者 start transaction;
终止事务: commit; 或者 rollback;
数据备份:
备份命令: mysqldump -u用户名 -p 源库名 > ~/xxx.sql
恢复命令: mysql -uroot -p 目标库名 < xxx.sql
python操作MySQL数据库:
db = pymysql.connect(参数列表)
host :主机地址,本地 localhost
port :端口号,默认3306
user :用户名
password :密码
database :库
charset :编码方式,推荐使用 utf8
数据库连接对象(db)的方法
db.close() 关闭连接
db.commit() 提交到数据库执行
db.rollback() 回滚
cur = db.cursor() 返回游标对象,用于执行具体SQL命令
游标对象(cur)的方法
cur.execute(sql命令,[列表]) 执行SQL命令 传入的是字符串的话,需要加单引号
cur.close() 关闭游标对象
cur.fetchone() 获取查询结果集的第一条数据 (1,100001,“河北省”)
cur.fetchmany(n) 获取n条 ((记录1),(记录2))
cur.fetchall() 获取所有记录

MySQL用户账户管理

开启MySQL远程连接
更改配置文件,重启服务!
sudo -i
/etc/mysql/mysql.conf.d/
vim mysqld.cnf
将bind-address = 127.0.0.1 注释掉,前面加个#号就可以了
重启服务sudo /etc/init.d/mysql restart

[mysql]
character_set_server = utf8 更改字符编码
添加授权用户
1、用root用户登录mysql
mysql -uroot -p123456
2、授权
grant 权限列表 on 库.表 to “用户名”@"%" identified by “密码” with grant option;(最后三个单词表示可以让授权用户继续往下授权)
eg:grant all privileges on db3.* to “yanxu”@"%"identified by “123456”;
3、刷新权限
flush privileges;

权限列表
all privileges (所有权限)、select 、insert … …
库.表 : * . * 代表所有库的所有表

工作中mysql常用的sql语句相关推荐

  1. oracle数据库中最常用的sql语句

    对SQL语句进行调整,往往有一项前期工作,就是定位最常用的SQL 语句.Oracle数据库可以从多个方面取得SQL语句.如从数据库自身的存储过程或者函数中取得,也可以从前台的应用程序中取得.所以,数据 ...

  2. Python中Mysql数据库的sql语句参数传递问题

    在Python中, 通过pymysql库连接Mysql数据库的sql语句参数传递时需要注意: mysql的sql语句的字符串格式化不是标准的python的字符串格式化, 在python中无论字符串,数 ...

  3. MYSQL常用基本SQL语句总结。

    转载自品略图书馆 http://www.pinlue.com/article/2019/11/0502/329770616659.html SQL分类: DDL-----数据定义语言(CREATE-- ...

  4. 近期工作中Oracle常用的sql

    1.oracle中的exists 和not exists 用法详解 exists表示()内子查询语句返回结果不为空说明where条件成立就会执行主sql语句,如果为空就表示where条件不成立,sql ...

  5. Mysql常用的sql语句大全

    ​ 零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=P ...

  6. 工作中Oracle常用的SQL

    为什么80%的码农都做不了架构师?>>>    1.Linux启动数据库 sqlplus /nolog connect /as sysdba startup 2.查询对象创建语句 s ...

  7. 数据库 MySQL常用命令 SQL语句1

    文章目录 查看当前使用的是哪个数据库 查看MySQL的版本号 强制结束MySQL输入 如何退出MySQL 查看创建表的语句 简单的select 字段重命名的方法 查询所有字段 条件查询 where b ...

  8. 在工作中mysql常用知识_工作中常用的mysql命令

    1.啟動數據庫 #啟動mysql(skip-name-resolve參數是必須的) su - mysql -c "mysqld_safe --skip-name-resolve --open ...

  9. mysql 输出名称_MySQL常用的SQL语句//输出所有信息showfullfieldsfrom'表名称';//改表

    MySQL常用的SQL语句 //输出所有信息 show full fields from '表名称'; //改表名 ALTER  TABLE table_name RENAME TO new_tabl ...

最新文章

  1. ceph-deploy rpm包的制作
  2. 独家 | 手把手教你用Python构建你的第一个多标签图像分类模型(附案例)
  3. Eclipse在高分屏下图标过小的解决方法
  4. http://www.jb51.net/list/list_233_2.htm(导航: 首页 软件编程 Android)
  5. Cloudera Manager内部结构、功能包括配置文件、目录位置等
  6. mysq和mysqli关系
  7. JavaFX自定义控件– Nest Thermostat第2部分
  8. Maven的资源坐标
  9. 在内存不足时,new (std::nothrow)并不抛出异常,而是将指针置NULL
  10. Python 模拟轮盘抽奖游戏
  11. 单体架构常用注解合集
  12. 什么是网桥,它应该如何搭建
  13. highcharts多坐标轴混合图
  14. 视频:老外演示如何做康奈尔笔记
  15. AAAI2020论文列表(中英对照)
  16. ubuntu右上角没有网的问题解决
  17. 转载一个很经典的--C# Socket TCP和UDP报文及端口测试工具的开发(提供源码)
  18. xd导出标注html,Adobe XD免费交付神器 标记狮MarkLion 一键导出离线标注网页
  19. 统计分析__卡方分布
  20. 阅读笔记 |《哲学·科学·常识》陈嘉映

热门文章

  1. 正则表达式 同时验证手机号码和固定电话号码(带区号或不带区号或带分机号)
  2. 计算机网络笔记:电子邮件概述
  3. 【ROS】给ROS小车加点Active SLAM的调料
  4. 唯品会盈利十年:韧性有余,冲劲不足
  5. R9000P 混合模式 system持续占用cpu 解决
  6. [Gym-101201K]
  7. 不要太爽!这个微信群可以学日语,而且全程免费
  8. 排序算法-Learn To Rank
  9. 数据预处理的方法有哪些?
  10. java hook 和反射_反射基本概念与Class(四):Hook技术动态编程