MYSQL数据库使用操作详解
MySQL 客户端版
MySQL Community Server 社区版 开源免费
MySQL的官方网址: http://www.mysql.com/ ,MySQL的社区版本下载地址为: http://dev.mysql.com/downloads/mysql/
数据库登录管理
本地登录客户端命令: mysql -u用户名 -p密码
远程登录客户端语法:mysql -u 用户名 -p 密码 -h ip地址 -P端口号:如果没有改端口号就不用-P指定端口
mysql -h 主机端ip-P 链接端口 -u登录用户 -p密码
mysql -h192.168.11.191 -P 3306 -uroot -pqf123 -e 'show databases;'
-h 指定主机名 【默认为localhost】
-大P MySQL服务器端口 【默认3306】
-u 指定用户名 【默认root】
-p 指定登录密码 【默认为空密码】
-e 接SQL语句,可以写多条拿;隔开
# mysql -h192.168.246.253 -P 3306 -uroot -pqf123 -D mysql -e 'select * from user;'
此处 -D mysql为指定登录的数据库
修改端口yum安装:vim /etc/my.cnf
在到【mysql】标签下面添加port=指定端口。重启服务
用户管理
在数据库创建用户
语法 create user 用户名@(‘可登录ip’%代表所有)identified by ‘设置密码’;
创建完用户授权给用户 grant all on (库名.表明 *.*代表所有库的所有表)to ‘用户名’@‘可登录ip’;
创建用户的并授权 grant (all全部权限)on *.* to ‘用户名’@‘可登录ip’identified by ‘设置密码’;
查看自己的权限 show grants \G
查看别的用户权限 show grants fro 用户名@‘可登录ip’\G
移除所有权限 revoke all on *.* from 用户名@‘可登录ip’
刷新权限 flush privileges;
新部署的mysql 用 grep password /var/log/mysqld.log 过滤MySQl 数据库的密码
进入数据库修改root 用户的密码 alter user‘root’@‘localhost’idnetified by ‘新密码’;
进入数据库修改密码 set password =‘新密码’;
在虚拟机上修改root用户的密码 mysqladmin -uroot -p‘旧密码’ password ‘新密码’
在数据库里给其他用户修改密码 set password for 用户名@‘可登录ip’=‘新密码’;
删除用户 drop user ‘用户名’@‘可登录ip’;
删除用户 delete from mysql.user where user‘用户名’and host=‘可登录ip’;
数据库基本操作
1.查看引擎 show engines;
2.查看mysql服务器版本 select version();
3.查看数据库全部信息 show databases;
4.查看当前所在库 select database();
5.查看当前库下的所有表 show tables;
6.创建数据库 create database 库名;
7.进入数据库 use 库名;
8.创建表 create table 表名(字段 类型,字段 类型);
9.查看当前库下所有表 show tablesl;
10.查看表结构 desc 表名;
11.查看表的状态 show table status like ‘表名’\G
12.查看表里的内容 select * from 表名;
13.修改表名 rename table 旧表名 to 新表名;
14.删除表 drop table 表名;
15.删除库 drop database 库名;
数据类型
1.整形分类:tinyint smallint mediumin int bigint
| MySQL数据类型 | 最小值 | 最大值
| tinyint(n) | -128 | 127
| smallint(n) | -32,768 | 32,767
| mediumint(n) | -8388608 | 8388607
| int(n) | -2,147,483,648 | 2,147,483,647
| bigint(n) | -9,223,372,036,854,775,808| 9,223,372,036,854,7
2.浮点数类型 FLOAT
float(5,3) #一共5位,整数占3位.做了限制
3.字符串类型
字符类型 char varchar --存字符串
- char表示定长字符串,长度是固定的
varchar表示可变长字符串,长度是可变的;
4.枚举类型 enum
create table t10(name enum('m','w')); 枚举是只可以从 W,M中选一个
5.日期类型
===时间和日期类型测试:year(年)、date(年月日)、time(时间)、datetime(年月日和时间)、timestamp(年月日和时间)
创建表的时候 字段指定数字类型
例如 create table t1(id int,tizhong float,name varchar(20),sex enum('w','m'),,时间 date);
表完整性约束
约束条件 说明
PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录,不可以为空 UNIQUE + NOT NULL
FOREIGN KEY (FK) 标识该字段为该表的外键,实现表与表之间的关联
NULL 标识是否允许为空,默认为NULL。
NOT NULL 标识该字段不能为空,可以修改。
UNIQUE KEY (UK) 标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY
AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)
DEFAULT 为该字段设置默认值 default设置默认值,
UNSIGNED 无符号,只能设置正数
1.主键
每张表里只能有一个主键,不能为空,而且唯一,主键保证记录的唯一性,主键自动为NOT NULL。
给存在的表添加主键 alter table 表名 add primary key (字段);
创建表的时候指定主键 create table 表名(字段1 char(20),字段 2char(150),primary key(字段1));
删除主键 alter table 表名 drop primary key;
2.自动增长.auto_increment------自动编号,且必须与主键组合使用默认情况下,起始值为1,每次的增量为1。当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况:
- 如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;
- 如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。如果自增序列的最大值被删除了,则在插入新记录时,该值被重用。
(每张表只能有一个字段为自增) (成了key才可以自动增长)
创建表的时候 设置自动增长 create table 表名 (字段1 INT 主键 自动增长,字段2 VARCHAR(30),字段3t VARCHAR(50));
删除自动增长 alter table 表名 change 字段名 新字段名 int not null; 更改字段为不能为空
3.设置唯一约束 UNIQUE,字段添加唯一约束之后,该字段的值不能重复,也就是说在一列当中不能出现一样的值。
create table表名 (字段 INT,字段2 VARCHAR(30) UNIQUE,comment VARCHAR(50)); 设置字段2为 唯一约束
4.null与not null
1. 是否允许为空,默认NULL,可设置NOT NULL(闹),字段不允许为空,必须赋值
2. 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值
5.设置默认约束 default 设置默认值 create table 表名(字段1 int,字段2 varchar(50) default '1' not null); 设置字段2 不能为空 未输入时默认写1;
删除默认约束 alter table user alter 字段 drop default; 删除用drop 修改用set
表操作
一 .添加新字段 (嗷特儿)alter table 表名 add 字段 类型;
alter table 表名 add 添加的字段 (和类型) after name; -------把添加的字段放到name后面
alter table 表名 add 添加的字段(和类型) first; ----------把添加的字段放在第一个
二 1.修改字段和类型 alter table 表名 change 旧字段 新字段 类型; #change修改字段名称,类型,约束,顺序
2.修改字段类型,约束,顺序 alter table 表名 modify 字段 类型; #modify 不能修改字段名
3..alter table t3 modify maxs int(20) after math; #修改类型并更换位置
4.删除字段 alter table 表名 drop 字段; #drop 丢弃的字段。
三、插入数据(添加记录)
1.添加一条记录 insert into 表名(字段1,字段2,字段3,字段4) values(外六斯)(1,"tom","m",90);
insert into t3(id,name,sex,age) values(1,"tom","m",18);
2.用set添加记录
insert into t3 set id=4,name="zhangsan",sex="m",age=21;
Update 表名 set 字段名=“修改的内容” where “给谁修改”
3.更新记录
update 表名 set 修改的字段 where 给谁修改;
mysql> update t3 set id=6 where name="xiaoli";
4.删除记录
删除单条记录 mysql> delete from t3 where id=6; #删除那个记录,等于几会删除那个整条记录
删除所有记录 mysql> delete from t3;
四、单表查询
1.简单查询
select * from 表名; 查看这个表的所有内容
2.多字段查询: select id,name, from 表名; 查看 id、name 字段的所有内容
3.有条件查询:where select id,name from 表名 where id<=3; 查看id,name id >3的所有内容
4.统计记录数量:count() 查看字段下有多少条记录 select count(*) from 表名; 查看 表下有多少条记录
5.统计字段得到数量: select count(id) from 表名; 查看id字段有多少条记录
6.避免重复DISTINCT:表里面的数据有相同的 去重 select distinct 字段 from 表名;
7.多条件查询: and ----和语法: select 字段,字段2 from 表名 where 条件 and where 条件;
select 字段,字段 from 表名 where name='hr' and salary>1000; 查找 名字是hr 工资大于1000的内容
8.多条件查询: or ----或者
语法: select 字段,字段2 from 表名 where 条件 or 条件;
select name from 表名 where salary>5000 and salary<10000 or dep_id=102; 查看工资大于5000和小于一万 或者id是102的内容
9.关键字 BETWEEN AND 什么和什么之间。
select name,salary from 表名shere salary between 5000and15000; 查看 工资在5千和一万5之间的内容
8.排序查询 order by :指令,在mysql是排序的意思。
select name,salary from 表名 order by salary; #-默认从小到大排序。 查询 名字和工资 按照工资从小到大排序
select name,salary from 表名 order by salary desc; #降序,从大到小 查询 名字和工资 按照工资从大到小排序
9.分组查询 :group by
select count(name),post from 表名 group by post; 把neme字段 按照post相同的分组查看
MYSQL数据库使用操作详解相关推荐
- CMD命令操作MySql数据库,操作详解
第一:mysql服务的启动和停止 net stop mysql net start mysql 第二:登陆 mysql –u用户名 [–h主机名或者IP地址] –p密码 说明:用户名是你登录的用户,主 ...
- laravel 调试mysql_Laravel - MySQL数据库的使用详解3(Query Builder用法2:新增、修改、删除)...
五.新增.修改.删除操作 在前文中我介绍了如何使用Query Builder(查询构造器)进行数据查询,下面接着介绍如何使用它进行数据的增.删.改操作.同样假设我们有如下用户表(user): 1,新增 ...
- MySQL 数据库 source 命令详解及实例
MySQL 数据库 source 命令详解及实例 MySQL 数据库 source 命令,该命令是数据库导入命令.source 命令的用法非常简单,首先你需要进入 MySQL 数据库的命令行管理界面, ...
- html5 php 数据库操作,HTML_HTML5本地数据库基础操作详解,下面分别介绍本地数据库的各 - phpStudy...
HTML5本地数据库基础操作详解 下面分别介绍本地数据库的各个API及其使用方法. 1.利用openDatabase创建数据库 我们可以利用openDatabase方法创建数据库.openDataba ...
- linux系统——mysql数据库默认字符集详解
linux系统--mysql数据库默认字符集详解 - mysql的字符集配置细化到四种 对数据库server配置 对库设置 对表设置 对列设置 - 对mysql-server设置 对server设置是 ...
- 17@MySQL数据库读现象详解(脏读、幻读、不可重复读)
文章目录 MySQL数据库读现象 一.数据库的读现象 1.脏读(dirty read):读取未提交数据 [案列详解] 2.不可重复读取 (nonrepeatable read):前后多次读取,数据内容 ...
- dbeaver连接mysql 驱动jar_Jmeter(七) 从入门到精通 建立数据库测试计划实战lt;MySQL数据库gt;(详解教程)...
1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非常 ...
- mysql数据库安装最详解
数据库的基本概念 当今主流的数据库 SQL Server (微软公司产品) Oracle (甲骨文公司产品) DB2 (IBM公司产品) MySQL (甲骨文公司收购) 什么是mysql数据库 MyS ...
- java连接mysql数据库方法_java连接mysql数据库的方法详解
连接mysql数据库在java中有几种常用的方式有官方提供的JDBC连接MySQL数据库也有后面我们讲到的其它的方式连接数据库,具体如下. JDBC连接MySQL数据库 首先要下载Connector/ ...
最新文章
- 委托、lamda表达式..委托概念-匿名函数-泛型委托-Lamda表达式-多播委托
- python爬虫,爬取猫眼电影2(xpath和bs4)
- openstack搭建之-nova配置(10)
- IDEA出现Error during artifact deployment. See server log for details.
- Node.js 使用 JWT 进行用户认证
- Critical dependency: require function dependencies cannot be statically extracted
- ResNet网络结构详解(Tensorflow2.6.0实现网络结构)
- MovieClip详解
- js/javaScript通过setTimeout做动画和需要注意的点
- FiveThirtyEight Comic Characters Dataset(五分之八漫画人物数据集)
- 【免费内网穿透】Windows远程桌面连接树莓派
- matlab FFT 和IFFT
- 数据结构实验报告,二叉树的基本操作(C语言)
- 阿里云栖大会100位顶级大咖演讲PPT+视频全分享!
- win7更新错误0x800b0109_Win7自动更新失败怎么办
- 【PCL自学:Filtering】PCL中的各类滤波器介绍与使用 (持续更新)
- linux dock工具,六个ubuntu下的mac dock工具栏
- 突破数据极限:计算24的阶乘和n的m次方。
- 8大网页设计新趋势(转载)
- 搞笑的好友印象代码_笨蛋┗━━┛人笨不能复生
热门文章
- Academic Phrasebank 2021《学术短语库 2021在线版 英译汉》
- Sessionfactory.getCurrentSession与 openSession() 的区别
- php xml 转义字符,Android常见XML转义字符(总结)
- html如何设置自动对齐,HTML5 教程之CSS 水平对齐(Horizontal Align)
- 本地host管理推荐
- uni-app快速开发微信小程序、h5、和app
- 腾讯同事内推的那位Linux C/C++后端开发同学面试没过......
- linux三剑客-grep详解
- 索尼ea300c笔记本u盘装系统的教程
- flex布局超级详细的完整教程(看完印象深刻)