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相同的分组查看

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值