MySQl之基础二
一 安装
a. 版本
社区版
GPL
企业版
集群版
集群管理器,自动扩展,跨域复制
b.端口
TCP 3306
c.主配置文件
/etc/my.cnf
d.数据目录
/var/lib/mysql
e.登录配置
#yum -y install mysql mysql-server #mysql:连接和管理数据库的工具; mysql-server:提供服务器端的主程序 #service mysqld start (两个 OK) 1.设置管理员密码 mysqladmin -uroot password '123' 2.登录选项 u 用户 p 密码 P 端口 S 套接字 h 登录地址 3.创建用户 create user '用户'@'登录地址' identified by ‘123456’; 登录地址:“IP、localhost、%” # %任意远端地址,不能本地 4.密码设置 set password=password(“新密码”) 为登录用户修改密码 set password for ‘用户’@‘登录地址’=password(“新密码”) 为其他用户修改密码 5.管理员密码找回 service mysqld stop vim /etc/my.cnf skip-grant-tables service mysqld start mysql update mysql.user set password=password('123') where user='root'; vim /etc/my.cnf 删除 skip-grant-tables service mysqld restart 6.数据库结构 DBMS 数据库管理系统 数据库 数据表 数据记录 段、类型、值、主键……
二 SQL语句
A.增删改查
增 create database 数据库 创建数据库 create table 表名 (字段1 类型1,字段2 类型2, ……) 创建数据表 insert into 表名 (字段1,字段2,……) values (值1,值2,……) 插入数据
删 drop database 数据库 删除数据库 delete from 数据表 where 主键=值 删除数据 between 值1 and 值2 匹配区域数据
改 update 表名 set 字段=新值 where 主键=值 修改数据 alter table 数据表 操作类型 操作类型: rename 改表名 modify 改类型 change 修改字段名称 add 添加字段 drop 删除字段 first 添加到第一列 after 添加到某字段后
查 show databases 查看所有数据库 use 数据库 使用数据库 show tables 查看所有数据表 select 字段 from 数据表 查看指定数据表中的数据记录
示例一(数据库):
#-- 1.创建数据库(在磁盘上创建一个对应的文件夹) create database [if not exists] db_name [character set xxx] #-- 2.查看数据库 show databases;查看所有数据库 show create database db_name; 查看数据库的创建方式 #-- 3.修改数据库 alter database db_name [character set xxx] #-- 4.删除数据库 drop database [if exists] db_name; #-- 5.使用数据库 切换数据库 use db_name; -- 注意:进入到某个数据库后没办法再退回之前状态,但可以通过use进行切换 查看当前使用的数据库 select database();
示例二(数据表):
#-- 1.创建表(类似于一个excel表) create table tab_name( field1 type[完整性约束条件], field2 type, ... fieldn type )[character set xxx]; -- 创建一个员工表employee create table employee( id int primary key auto_increment , name varchar(20), gender bit default 1, -- gender char(1) default 1 ----- 或者 TINYINT(1) birthday date, entry_date date, job varchar(20), salary double(4,2) unsigned, resume text -- 注意,这里作为最后一个字段不加逗号 ); /* 约束: primary key (非空且唯一) :能够唯一区分出当前记录的字段称为主键! unique not null auto_increment 主键字段必须是数字类型。 外键约束 foreign key */ #-- 2.查看表信息 desc tab_name 查看表结构 show columns from tab_name 查看表结构 show tables 查看当前数据库中的所有的表 show create table tab_name 查看当前数据库表建表语句 #-- 3.修改表结构 -- (1)增加列(字段) alter table tab_name add [column] 列名 类型[完整性约束条件][first|after 字段名]; alter table user add addr varchar(20) not null unique first/after username; #添加多个字段 alter table users2 add addr varchar(20), add age int first, add birth varchar(20) after name; -- (2)修改一列类型 alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名]; alter table users2 modify age tinyint default 20; alter table users2 modify age int after id; -- (3)修改列名 alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名]; alter table users2 change age Age int default 28 first; -- (4)删除一列 alter table tab_name drop [column] 列名; -- 思考:删除多列呢?删一个填一个呢? alter table users2 add salary float(6,2) unsigned not null after name, drop addr; -- (5)修改表名 rename table 表名 to 新表名; -- (6)修该表所用的字符集 alter table student character set utf8; #-- 4.删除表 drop table tab_name; #---5 添加主键,删除主键 alter table tab_name add primary key(字段名称,...) alter table users drop primary key; eg: mysql> create table test5(num int auto_increment); ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key create table test(num int primary key auto_increment); -- 思考,如何删除主键? alter table test modify id int; -- auto_increment没了,但这样写主键依然存在,所以还要加上下面这句 alter table test drop primary key;-- 仅仅用这句也无法直接删除主键 #-- 唯一索引 alter table tab_name add unique [index|key] [索引名称](字段名称,...) alter table users add unique(name)-- 索引值默认为字段名show create table users; alter table users add unique key user_name(name);-- 索引值为user_name -- 添加联合索引 alter table users add unique index name_age(name,age);#show create table users; -- 删除唯一索引 alter table tab_name drop {index|key} index_name
B.权限修改
MYSQL的权限如何分布,就是针对表可以设置什么权限,针对列可以设置什么权限等等,可用一个表来说明:

权限修改 grant 权限1,权限2…… on 数据库.数据表 to 用户@‘登录地址’ identified by '密码' show grants for '用户'@'登录地址' revoke 取消权限1,取消权限2,…… on 数据库.数据表 from '用户'@'登录地址'
示例 :
mysql> grant drop,update on db.* to tom@'localhost' identified by '123456'; #设置drop,update权限 mysql> show grants for 'tom'@'localhost'; #查看 GRANT UPDATE, DROP ON `db`.* TO 'tom'@'localhost' mysql> revoke drop on db.* form 'tom'@'localhost'; #删除

浙公网安备 33010602011771号