用户管理
创建普通用户
语法
CREATE USER `user@host` [IDENTIFIED'password'];
例子
create user `teacher`@`localhost` IDENTIFIED BY '123456';
create user `student`@`localhost`;
查看用户
use mysql;
select * from user;
- %是允许远程访问的用户
创建用户并授权
- GRANT语句可实现创建用户同时授权或为已存在的用户授权
案例
不存在的用户
grant insert,select on myschool.student to
`xiaoming`@`localhost` identified by '123456';
已存在用户
grant select on myschool.student
to `student`@`localhost`;
常用操作权限
- CREATE和DROP权限
- INSERT、DELETE、SELECT和UPDATE权限
- ALTER权限
如果授予所有权限,即为ALL 为所有数据库和表授权,权限范围可使用*.*
使用mysqladmin命令修改root账户密码
不登陆状态下
语法
mysqladmin -u 账户 -p password "新密码"
案例
mysqladmin -u xiaoming -p password "0000"
然后输入原始密码
登录状态下
注意
- 只有超级管理员用户(如root用户)才能修改其他用户密码,如果是普通用户,可修改自己的密码
案例
更改自己密码
set password = password("8888");
更改其他账户密码(需要先登录root账户)
set password for teacher@localhost = password("8888");
删除用户
删除单个用户
drop user xiaoming@localhost;
删除多个用户
drop user teacher@localhost,student@localhost;
案例
#创建数据库
DROP DATABASE IF EXISTS `bankDB`;
CREATE DATABASE `bankDB`;
USE `bankDB`;
DROP TABLE IF EXISTS `userInfo`;
CREATE TABLE `userInfo` #用户信息表
(
`customerID` INT(4) PRIMARY KEY AUTO_INCREMENT COMMENT '用户编号',
`customerName` CHAR(8) NOT NULL COMMENT '用户编号',
`PID` CHAR(18) UNIQUE NOT NULL COMMENT '身份证号',
`telephone` CHAR(20) NOT NULL COMMENT '手机号码',
`address` VARCHAR(50) COMMENT '居住地址'
)ENGINE = INNODB,CHARSET=UTF8,COMMENT='用户表';
DROP TABLE IF EXISTS `cardInfo`;
CREATE TABLE `cardInfo` #银行卡信息表
(
`cardID` CHAR(19) NOT NULL PRIMARY KEY COMMENT '卡号',
`password` CHAR(6) NOT NULL DEFAULT '888888' COMMENT '密码',
`curID` VARCHAR(10) NOT NULL DEFAULT 'RMB' COMMENT '币种',
`savingID` INT NOT NULL COMMENT '存款类型',
`openDate` TIMESTAMP NOT NULL COMMENT '开户日期' ,
`openMoney` DECIMAL(20,2) NOT NULL DEFAULT 1 COMMENT '开户金额' ,
`balance` DECIMAL(20,2) NOT NULL DEFAULT 1 COMMENT '余额',
`IsReportLoss` BIT NOT NULL DEFAULT 0 COMMENT '是否挂失',
`customerID` INT NOT NULL
) ENGINE = INNODB,CHARSET=UTF8,COMMENT='银行卡信息表';
DROP TABLE IF EXISTS `tradeInfo`;
CREATE TABLE `tradeInfo` #交易信息表
(
cardID CHAR(16) NOT NULL COMMENT '卡号',
tradeDate TIMESTAMP NOT NULL COMMENT '交易日期',
tradeMoney DECIMAL(20,2) NOT NULL COMMENT '实际交易金额',
tradeType CHAR(4) NOT NULL COMMENT '交易类型',
remark TEXT COMMENT '备注'
)ENGINE = INNODB,CHARSET=UTF8,COMMENT='交易信息表';
DROP TABLE IF EXISTS `deposit`;
CREATE TABLE `deposit` #存款类型表
(
savingID INT(4) AUTO_INCREMENT PRIMARY KEY,
savingName VARCHAR(20) NOT NULL,
descrip VARCHAR(50)
)ENGINE = INNODB,CHARSET=UTF8,COMMENT='存款类型表';
/*--加约束--$*/
ALTER TABLE cardInfo
ADD CONSTRAINT FK_customerID
FOREIGN KEY(customerID)
REFERENCES userInfo(customerID),
ADD CONSTRAINT FK_savingID
FOREIGN KEY(savingID)
REFERENCES deposit(savingID);
ALTER TABLE tradeInfo
ADD CONSTRAINT FK_cardID
FOREIGN KEY(cardID)
REFERENCES cardInfo(cardID);