mysql相关命令
时间:2022-05-08
本文章向大家介绍mysql相关命令,主要内容包括1 安装、打开mysql、查看数据库、连接数据库、查看表、退出、建立新数据库、查看数据库中的表、建立新表、向表里插入数据、查看表的内容、删除表、删除指定数据库、导入已经存在的数据库、查看表的数据类型、secect语句基本格式、where限制条件查询、对结果排序、SQL 内置函数和计算、子查询、给表改名、删除一张表、增加一列、增加一行并放在指定位置和放在第一行、删除一行、修改height 为shengao、改变数据类型、对表的内容进行修改,修改表中某个值、删除一行数据、建立索引、视图、导入、如何让外网访问数据库、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
安装 在ubuntu 14.04 x64下
1 安装
# 安装服务端 (需要中途设置root密码)
sudo apt-get install mysql-server
# 安装客户端
sudo apt-get install mysql-client
# 查看是否安装并启动成功
sudo netstat -tap | grep mysql
# mysql的配置文件在 /etc/mysql/my.conf
打开mysql
sudo service mysql start
mysql -u root -p
查看数据库
show databases;
连接数据库
use 数据库名称
use information_schema
查看表
show tables;
退出
exit or quit
建立新数据库
create 数据库名称
create database mysql_shiyan;
查看数据库中的表
show tables;
建立新表
create table 表名
create table employee (id int(10),name char(20),pyhone int(12));
向表里插入数据
insert into 表名 值
insert into employee(id,name,phone) values(01,'Tom',110110110);
or
insert into employee values(02,'Jack',119119119);
or
insert into employee(id,name) values(03,'Rose');
查看表的内容
select * from employee;
删除表
drop table 表名;
drop table employee;
删除指定数据库
drop database 库名;
drop database mysql_shiyan;
导入已经存在的数据库
在mysql控制台输入source + 目录路径
source /home/olizhao2/SQL3/MySQL-03-01.sql
查看表的数据类型
show create table 表名
secect语句基本格式
SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
SELECT name,age FROM employee;
where限制条件查询
符号查询 > < =
SELECT name,age FROM employee WHERE age>25;
SELECT name,age,phone FROM employee WHERE name='Mary';
“AND”与“OR”
#筛选出 age 小于 25,或 age 大于 30
SELECT name,age FROM employee WHERE age<25 OR age>30;
#筛选出 age 大于 25,且 age 小于 30
SELECT name,age FROM employee WHERE age>25 AND age<30;
IN 和 NOT IN
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN ('dpt3','dpt4');
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN ('dpt1','dpt3');
通配符
SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
SELECT name,age,phone FROM employee WHERE name LIKE 'J%';
对结果排序
SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
# salary降序排序 asc为升序排
SQL 内置函数和计算
[图片上传失败...(image-92ed86-1512908800707)]
as的用法.png
select max(salary) as max_salary,min(salary) from employee;
子查询
上面讨论的 SELECT 语句都仅涉及一个表中的数据,然而有时必须处理多个表才能获得所需的信息。例如:想要知道名为 "Tom" 的员工所在部门做了几个工程。员工信息储存在 employee 表中,但工程信息储存在project 表中。
对于这样的情况,我们可以用子查询:
SELECT of_dpt,COUNT(proj_name) AS count_project FROM project
WHERE of_dpt IN
(SELECT in_dpt FROM employee WHERE name='Tom');
给表改名
将某数据库下的 表 table_1改名
rename table table_1 to table_2;
删除一张表
drop table 表名
drop table table_2;
增加一列
现在 employee 表中有 id、name、age、salary、phone、in_dpt 这6个列,我们尝试加入 height (身高)一个列并指定DEFAULT 约束:
alter table employee add height int(4) default 170;
修改前.png
代码加修改的内容.png
增加一行并放在指定位置和放在第一行
# 新增体重默认120放在age的后边
alter table employee add weight int(4) default 120 after age;
# 放在第一行
alter table employee add test int(10) default 11 first;
age后加weight.png
第一行新增test1.png
删除一行
alter table employee drop test;
修改height 为shengao
alter table employee change height shengao int(5) default 170;
改default后值还是170没变.png
改变数据类型
alter table 表名字 modify 列名字 新数据类型;
可能会丢数据,不建议使用的命令
对表的内容进行修改,修改表中某个值
update 表的名字 set 列1=值1, 列2=值2 where 条件;
update employee set age=99,salary=3212 where name='Tom';
修改对比.png
删除一行数据
DELETE FROM 表名字 WHERE 条件;
delete from employee where name = 'Tom';
建立索引
alter table 表名 add index 自定索引名(表的列名);
1 alter table employee add index idx_id(id);
2 create index idx_name on employee(name);
视图
将多个表取你需要的合在一起组成 新的表,它是虚拟的,靠原始表的数据存在,如果依靠的表改变则跟着改变
CREATE VIEW 视图名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名字;
导入
LOAD DATA INFILE '文件路径和文件名' INTO TABLE 表名字;
如何让外网访问数据库
vim /etc/mysql/my.cnf
bind-address = 172.0.0.1 改成
bind-address = 0.0.0.0
1、新建用户远程连接mysql数据库
grant all on *.* to admin@'%' identified by '123456' with grant option;
flush privileges;
允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。
注意admin账户不一定要存在。
2、支持root用户允许远程连接mysql数据库
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
- 庖丁解牛看委托和事件(续)
- ReactiveCocoa中潜在的内存泄漏及解决方案
- 面向对象系列讲解——混合模式
- 火力全开——仿造Baidu简单实现基于Lucene.net的全文检索的功能
- Go实战--实现简单的restful api
- 特殊字体神器-fontmin,秒杀一切工具
- 庖丁解牛——深入解析委托和事件
- RestQL:现代化的 API 开发方式
- 在递归函数中因不正确使用公共变量而形成死循环
- 用R语言做时间序列分析(附数据集和源码)
- Windows Live Writer插入代码vs2010插件
- 分布式队列编程优化篇
- 基于机器学习方法的POI品类推荐算法
- 【Scikit-Learn 中文文档】多类和多标签算法 - 监督学习 - 用户指南 | ApacheCN
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- Spring注解@Autowired源码分析
- 使用RecyclerView实现水平列表
- android实现记住用户名和密码以及自动登录
- Android碎片fragment实现静态加载的实例代码
- android异步消息机制 源码层面彻底解析(1)
- /undefinedcss/modules/layer/default/layer.css?v=3.1.1找不到的问题
- Android实现渐变启动页和带有指示器的引导页
- the input device is not a TTY. If you are using mintty, try prefixing the comma
- 【STM32F407】第13章 RL-TCPnet V7.X之创建多个TCP客户端
- RecyclerView实现列表倒计时
- wsl设置默认账户为root(ubuntu18.04)
- LeetCode No.14 最长公共前缀
- android异步消息机制 从源码层面解析(2)
- beego解决跨域问题:options请求、axios post请求跨域问题
- Android ListView列表实现倒计时