MySQL 连接
从命令行中连接mysql服务器
mysql -u root -p
Enter password:******
创建数据库
CREATE DATABASE 数据库名;
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:
- username:你将创建的用户名
- host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
例子:
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123';
CREATE USER 'pig'@'%' IDENTIFIED BY '123';
授权
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
- privileges:用户的操作权限,如
SELECT, INSERT, UPDATE
等,如果要授予所的权限则使用ALL - databasename:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用
*
表示,如*.*
例子:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';
添加唯一约束和联合唯一约束
单列唯一约束
- 建表时加上唯一性约束
CREATE TABLE `t_user` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(18) NOT NULL unique,
`password` varchar(18) NOT NULL,
PRIMARY KEY ( `Id` )
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;
- 给已经建好的表加上唯一性约束
ALTER TABLE `user` ADD unique( `username` );
多列联合唯一约束
如果业务中要求两个字符联合起了是唯一的, 比如“地址”+“名称”是唯一的, 这就需要对两列, 甚至多列添加联合唯一约束, 具体命令如下:
ALTER TABLE user
ADD UNIQUE KEY(username, address);
注意:唯一键约束添加后, 在建表的元数据中, 默认的唯一键约束名称为第一列的名称, 示例中的 username
删除唯一约束
ALTER TABLE user DROP INDEX `username` ;
注意:唯一键约束添加后, 实际上建立了一个索引, 将该索引删除后, 就等于删除了联合唯一约束