SQL语句备忘录
1. 创建授权用户
1.1 创建用户
命令 :
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.例子:
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; |
1.2 授权
命令 :
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用
*
表示, 如*.*
例子:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; |
注意 : 用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION; |
1.3 设置与更改用户密码
命令 :
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登陆用户用
SET PASSWORD = PASSWORD("newpassword");
例子:
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456"); |
1.4 撤销用户权限
命令 :
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
说明: privilege, databasename, tablename - 同授权部分.
例子:
REVOKE SELECT ON *.* FROM 'pig'@'%'; |
注意: 假如你在给用户'pig'@'%'
授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%'
, 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';
命令并不能撤销该用户对test数据库中user表的SELECT 操作.
相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';
则REVOKE SELECT ON test.user FROM 'pig'@'%';
命令也不能撤销该用户对test数据库中user表的Select 权限.
具体信息可以用命令SHOW GRANTS FOR 'pig'@'%';
查看.
1.5 删除用户
命令:
DROP USER 'username'@'host';
例子:
DROP USER pig |
2. 增删修改数据库
2.1 显示所有数据库
2.3 创建数据库
CREATE DATABASE dbname;
2.4 删除数据库
DROP DATABASE dbname;
3 数据表增删改
3.1 创建数据表
create table <表名>(<列名> <数据类型>[列级完整性约束] [,<列名> <数据类型>[列级完整性约束]]…); |
3.2 删除数据表
DROPTABLE tbname;
3.3 修改数据表内容
设置主键
ALTER TABLE `table_name` ADD PRIMARY KEY(`field_name`); |
添加列
mysql> alter table test add(tage int(3)); |
删除列:
alter table testtable drop column name; |
修改列的类型:
alter table testtable modify address char(40) |
修改表列名
alter table testtable change column address address1 varchar(30) |
3.4 向表中插入数据
-- 插入顺序要与实际存储顺序严格一致 |
3.5 更新数据表的内容
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 |
3.6 删除某条数据
DELETE FROM 表名称 WHERE 列名称 = 值 |
4 数据查询
4.1 最简单的查询
SELECT 列名 FROM [dbname.]tbname WHERE 条件 |
4.2 union 查询
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) FROM table_name1 |
4.3 join查询
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。
数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。
引用两个表
我们可以通过引用两个表的方式,从两个表中获取数据:
谁订购了产品,并且他们订购了什么产品?
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo |