linux环境安装mysql教程 第一步、查找以前是否安装有mysql rpm -qa|grep -i mysql 第二步、如果已安装,则需要删除已安装的数据库 删除包命令:rpm -e --nodeps 【包名】 rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.i686 注意:若老版本mysql已建开发头文件和库需进行相应删除 rm -f /etc/my.cnf rm -fr /var/lib/mysql 第三步:安装数据库客户端和服务端 yum install mysql #mysql客户端 yum install mysql-server #mysql服务端 第四步:启动mysql服务 [root@192 /]# service mysqld status #查看当前服务的状态 mysqld is stopped #服务已停止 [root@192 /]# service mysqld start #开启服务 [root@192 /]# service mysqld status #查看当前服务的状态 mysqld (pid 2636) is running... #服务已开启 第五步:进入mysql交互页面 [root@192 /]# mysql -uroot -p Enter password: #输入密码 mysql> use mysql; 进入mysql数据库 注意点: 在数据库交互页面,可以使用sql语句,进行数据库操作。 mysql> exit; #退出数据库操作 第六步: 修改mysql数据库密码命令: [root@localhost /]# mysqladmin -urootpassword "123456" 一、常见的sql语句1创建一个数据库 create database +库名 例:创建一个db1数据库 create database db1 2显示哪些数据库 show databases 3. 进入某个数据库 use +库名 4. 删除某个数据库 drop database +库名 5.创建一个表 create table +表名 ( 字段1名称,数据类型, 约束 , 字段2名称,数据类型,约束, 字段3名称,数据类型,约束, ) 例如:创建一张学生表student,学号id, 姓名name. create table student ( id int(20) primary key,name varchar(30)); 1 字段名称 字段名称可以自定义,表是由行和列组成,列名称为字段名 2.数据类型 mysql常用的数据类型 2.1 int 存储整数 ==》超过2147483647用bigint 2.2 float 默认保存6位精度(包括小数位和整数位)Float(20,2)指小数点后面2位 2.3 char 存储字符 char(10)可能占用了10个字节 2.4 varchar(10) 存储字符 varchar(10)只占了6个字节,把其余的4个字节留给了下 一个字符 2.5 date 建表的时候在日期的后面接date,并且加引号 注意点 int(3) int(M) M指最大显示宽度 char(20) char(M) M指最大能存储20个字符 3.约束 约束用于对表中字段进行限制,保证表中数据的正确性和唯一性 约束类型 3.1 primary key 主键约束 说明:非空,唯一,用于唯一标识对应的记录。类似身份证。 3.2 foreign key 外键约束 说明:用于表与表建立关系模型,使表与表紧密的结合起来。 3.3 not null 非空约束 说明:字段值不能为Null 3.4 default 默认值约束 说明:默认给字段指定默认值 3.5 auto_increment 自增约束 说明:作用在整数类型,字段默认从1开始自增 二、修改表结构1.查看表结构 desc +表名显示字段名称,数据类型,约束,备注 2.修改表名 alter table +表名 rename + 新表名 3.修改表字段 alter table +表名change +原字段名 +新字段名 数据类型,约束 4.添加表字段,并放到第一个字段前 alter table +表名add +字段名 数据类型 约束 first 5.添加表字段,并放到某个字段后 alter table +表名add +字段名 数据类型 约束 after +字段名 6.同时添加两个字段,默认添加到字段最后 alter table +表名add(字段1 数据类型,字段2 数据类型) 7. 删除表字段 alter table +表名drop + 字段 8.删除表两个字段 alter table +表名drop 字段1,drop 字段2 9.修改主键id为自增长 alter table +表名change +字段名*2 数据类型 auto_increment 10.删除表 drop table +表名 三、单表查询1.查询表中所有数据 select * from +表名 ”*“ 代表所有 2. 查询某个字段的数据 select 字段from +表名 3. 查询多个字段的数据 select字段1,字段2 from +表名 4.查询满足某个条件的所有数据 select * from +表名 where 字段=值where 后面接满足的条件 5.查询不满足某个条件的所有数据 select * from +表名 where 字段!=value “!= ” 代表不等于 ,也可以用符号 ”<>“ 代表不等于 6.查询同时满足多个条件数据 select* from +表名 where 条件1 and 条件2 and 关键字左右的两个条件必须同时满足 7.查询满足至少1个条件的数据 select * from +表名 where 条件1 or 条件2 or 关键字左右的两个条件至少满足1个,否则返回空 8.查询一个条件范围内的数据 select* from +表名 where 字段 between m and n between...and ... 指定一个范围 9查询字段满足在指定的集合中的数据 select * from +表名 where 字段 in(值1,值2,值3) 10查询字段不满足在指定集合中的数据 select * from +表名 where 字段 not in (值1,值2,值3) 11.查询字段值为空的数据 select * from +表名 where 字段 is null 注意:字段是空不能写成 字段=null 12.查询字段不为空的数据 select * from +表名 where 字段 is not null 13.查询某个字段模糊匹配成功的数据 select* from +表名 where 字段 like “%值%” %用于匹配字段开头和结尾 14.查询限定的数量的数据 select * from +表名 where 字段 limit m,n m 指下标,n指限定的数量,下标为m的开始的n条数据 15.查询的数据根据某个字段从小到大排序 select * from +表名 order by 字段 asc order by ...asc 从小到大排序 16.查询的数据根据某个字段从大到小排序 select* from +表名 order by 字段 desc order by ... desc 从大到小排序 17.查询的数据根据某个字段进行分组 select * from +表名 group by 字段 group by ... 根据条件分组 18.查询的数据根据某个字段进行分组再条件过滤 select * from +表名 group by 字段 having 条件 having跟在group by 后面,作用相当于where 单表查询总结 1.where 不能放在GROUP BY 后面 where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉, 即在分组之前过滤数据,条件中不能包含聚组函数比如SUM(),AVG()等,使用 where条件显示特定的行。 2.having 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当 于WHERE。 having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。 mysql聚合函数 19. 统计查询数据的数量 select count(*) from +表名 20. 查询某个字段求和 select sum(字段) from +表名 21. 查询某个字段进行平均值 selectavg(字段) from +表名 22. 查询某个字段最大值 select max(字段) from +表名 23. 查询某个字段最小值 select min(字段) from +表名 24 对某个字段进行去重 select distinct(字段) from +表 四、Mysql增删改语句1.表中插入数据 insert into +表名values(字段1value,字段2value,字段3value...) 2.一次性表中插入多条数据 insert into +表名values(字段1value,字段2value,字段 3value...),(字段1value,字段2value,字段3value...) 3.对表中指定字段插入数据 insert into +表名(字段1,字段2) values(字段1值,字段2值) 4. 删除表中指定数据 delete from +表名where 条件 5. 删除表 truncate +表名 6. 删除表 drop table +表名 7.更新表中指定字段数据 update+表名 set 字段名=值where 条 注:TRUNCATE,DELETE,DROP放在一起比较: (truncate)TRUNCATETABLE:删除内容、释放空间但不删除定义。 (delete)DELETETABLE:删除内容不删除定义,不释放空间。 (drop)DROP TABLE:删除内容和定义,释放空间。 备份表,备份数据,备份数据库,还原数据库 1.备份表,创建一个表与某个表相同 create table +表1 like +表2 2.备份数据,把一个表的数据插入到另一个表 insert into +表名 select * from +表名 注意点:插入的表必须要存在 3.把一个表的某些字段插入到一个新表中 insert into +表1(字段1,字段2) select 字段1,字段2 from 表2 注意点 1. 插入的表必须存在 2.插入的表是新表,没有数据。 4.备份数据库 mysqldump -uroot -p 数据库名 >脚本名 5还原数据库 mysql -uroot -p +数据库 <脚本名 五、数据库用户权限操作如何给普通的数据库用户赋予相应的权限(如增删改查): 1.进入mysql数据库: use mysql; 2.查询mysql数据库服务器已经创建了哪些用户: select host,user from user; 3.创建用户但是未授权(方法一) insert into user (host,user,password)values('localhost','wang' ,password('123456')); 创建用户后需要刷新下:flushprivileges; 4.创建用户后进行授权(方法二) grant select,update,delete,drop on *.* to'wang'@'localhost' identified by '123456’ 5.创建用户同时授权 grant all privileges on *.* to'xiaowang'@'%' identified by '123456'; 授予一个普通用户xiaowang及密码为123456,允许其可以通过所有客户机 访问本数据库下所有的库及所有的表,假如为localhost只能在本地进行访问。 其下面所有的表,权限为所有权限。 6.flush privileges ---刷新 show grants for 'wang'@'%'; //查看数据库的指定授权用户的权限 revoke all on *.* from 'dcs'@'%' ;//取消所有权限 delete from user where user= 'zhongguo'andhost= 'localhost';删除用户 update user set password=password('123456')where user= 'root';修改root用户的密码
|