V0W's Blog

SQL语句备忘录

字数统计: 1,231阅读时长: 5 min
2018/09/04 Share

SQL语句备忘录

1. 创建授权用户

1.1 创建用户

  • 命令 : CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

  • 例子:

1
2
3
4
5
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';

1.2 授权

  • 命令 : GRANT privileges ON databasename.tablename TO 'username'@'host'

  • 说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*

    例子:

1
2
GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; 
GRANT ALL ON *.* TO 'pig'@'%';

注意 : 用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

1
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

1.3 设置与更改用户密码

  • 命令 : SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

  • 如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

  • 例子:

1
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

1.4 撤销用户权限

  • 命令 : REVOKE privilege ON databasename.tablename FROM 'username'@'host';

  • 说明: privilege, databasename, tablename - 同授权部分.

  • 例子:

1
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';

  • 例子:

1
DROP USER pig

2. 增删修改数据库

2.1 显示所有数据库

  • 命令: Show Databases;

  • 查看表结构

    1
    mysql> desc test;

2.2 使用某个库

  • USE dbname;

2.3 创建数据库

CREATE DATABASE dbname;

2.4 删除数据库

DROP DATABASE dbname;

3 数据表增删改

3.1 创建数据表

1
2
3
create table <表名>(<列名> <数据类型>[列级完整性约束]  [,<列名> <数据类型>[列级完整性约束]]…);

Create TABLE tbname(col1 int not null, col2 varchar(20));

3.2 删除数据表

DROPTABLE tbname;

3.3 修改数据表内容

设置主键

1
2
3
4
5
ALTER TABLE `table_name` ADD PRIMARY KEY(`field_name`);

ALTER TABLE `table` CHANGE `field` `field_new_name` INT(4) NOT NULL DEFAULT '0' FIRST;
-- 然后这里有个坑, id 必须反引号,不然报错。
alter table fuck change id `id` int(4) not null defualt '0' frist;

添加列

1
mysql> alter table test add(tage int(3));

删除列:

1
alter table testtable  drop  column name;

修改列的类型:

1
2
3
4
5
alter table testtable modify address char(40)

或者这样:

alter table testtable change address address char(40)

修改表列名

1
alter table testtable change  column address address1 varchar(30)

3.4 向表中插入数据

1
2
3
4
5
-- 插入顺序要与实际存储顺序严格一致
INSERT INTO 表名称 VALUES (值1, 值2,....)

-- 插入顺序不需要与实际存储顺序严格一致,但是要与前面的列名顺序一致。
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

3.5 更新数据表的内容

1
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

3.6 删除某条数据

1
DELETE FROM 表名称 WHERE 列名称 = 值

4 数据查询

4.1 最简单的查询

1
2
SELECT 列名 FROM [dbname.]tbname WHERE 条件
mysql> select * from users where username='v0w';

4.2 union 查询

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

SQL UNION 语法

1
2
3
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

4.3 join查询

有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。

数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

引用两个表

我们可以通过引用两个表的方式,从两个表中获取数据:

谁订购了产品,并且他们订购了什么产品?

1
2
3
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P
CATALOG
  1. 1. SQL语句备忘录
    1. 1.1. 1. 创建授权用户
      1. 1.1.1. 1.1 创建用户
      2. 1.1.2. 1.2 授权
      3. 1.1.3. 1.3 设置与更改用户密码
      4. 1.1.4. 1.4 撤销用户权限
      5. 1.1.5. 1.5 删除用户
    2. 1.2. 2. 增删修改数据库
      1. 1.2.1. 2.1 显示所有数据库
      2. 1.2.2. 2.2 使用某个库
      3. 1.2.3. 2.3 创建数据库
      4. 1.2.4. 2.4 删除数据库
    3. 1.3. 3 数据表增删改
      1. 1.3.1. 3.1 创建数据表
      2. 1.3.2. 3.2 删除数据表
      3. 1.3.3. 3.3 修改数据表内容
      4. 1.3.4. 3.4 向表中插入数据
      5. 1.3.5. 3.5 更新数据表的内容
      6. 1.3.6. 3.6 删除某条数据
    4. 1.4. 4 数据查询
      1. 1.4.1. 4.1 最简单的查询
      2. 1.4.2. 4.2 union 查询
      3. 1.4.3. 4.3 join查询