MySQL基本对表操作语句

本文详细介绍如何使用SQL进行表的创建、修改、删除及重命名等操作,包括使用CREATE TABLE语句创建表,通过ALTER TABLE添加或删除列,定义外键约束,以及如何使用DROP TABLE和RENAME TABLE进行表的删除和重命名。

创建表

CREATE TABLE customers(cust_id INT NOT NULL,cust_name CHAR(50) NOT NULL,cust_address CHAR(50) NULL, PRIMARY KEY(cust_id));

可以使用IF NOT EXISTS在表不存在时创建

CREATE TABLE IF NOT EXISTS customers(cust_id INT NOT NULL,cust_name CHAR(50) NOT NULL,cust_address CHAR(50) NULL, PRIMARY KEY(cust_id));

设置AUTO_INCREMENT 来让列自动增值(+1),此列必须被索引(比如使其成为主键),可以使用last_insert_id()查看上一次自增到哪里了。
接收设置默认值DEFAULT,但是只能是常量

更改表

ALTER TABLE vendors ADD vend_phone CHAR(20);//加一列
ALTER TABLE vendors DROP COLUMN vend_phone;//删除一列
ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_order FOREIGN KEY(order_num) REFERENCES orders (order_num);//定义外键

删除表

DROP TABLE customers;

重命名表

RENAME TABLE customers TO cus;

接收多个表,逗号隔开

MySQL 中,`GRANT` 语句用于为用户授予对数据库的特定权限。如果需要对某张进行授权,则可以使用以下语法格式: ```sql GRANT 权限类型 ON 数据库名.名 TO '用户名'@'主机名' [IDENTIFIED BY '密码'] [WITH GRANT OPTION]; ``` ### 常见权限类型 - `SELECT`: 允许用户查询数据。 - `INSERT`: 允许用户插入新记录。 - `UPDATE`: 允许用户更新中的记录。 - `DELETE`: 允许用户删除中的记录。 - `CREATE`: 允许用户创建新(即使未指定具体)。 - `DROP`: 允许用户删除(即使未指定具体)。 - `ALL PRIVILEGES` 或 `ALL`: 授予所有权限。 ### 授权示例 #### 1. 对某个用户授予特定的查询权限 ```sql GRANT SELECT ON mydatabase.mytable TO 'user1'@'localhost'; ``` 此语句允许用户 `user1` 查询数据库 `mydatabase` 中的 `mytable` 的数据[^2]。 #### 2. 授予某个用户对特定的增删改查权限 ```sql GRANT SELECT, INSERT, UPDATE, DELETE ON mydatabase.mytable TO 'user2'@'%' IDENTIFIED BY 'password123'; ``` 此语句将授予用户 `user2` 在任何主机上连接时对 `mydatabase.mytable` 执行查询、插入、更新和删除操作的权限,并设置其密码为 `password123`[^2]。 #### 3. 授予某个用户对整个数据库中所有的全部权限 ```sql GRANT ALL PRIVILEGES ON mydatabase.* TO 'admin_user'@'localhost' WITH GRANT OPTION; ``` 此语句赋予用户 `admin_user` 对数据库 `mydatabase` 中所有的所有权限,并且允许该用户将其拥有的权限授予其他用户[^1]。 #### 4. 刷新权限以确保更改立即生效 ```sql FLUSH PRIVILEGES; ``` 在执行完 `GRANT` 操作后,通常需要运行 `FLUSH PRIVILEGES;` 以确保权限更改立即生效。 ### 注意事项 - **主机名限制**:`'用户名'@'主机名'` 中的主机名部分用于限制用户从哪些主机连接到 MySQL 服务器。例如: - `'user'@'localhost'` 示只能从本地主机连接。 - `'user'@'%'` 示可以从任意主机连接。 - **WITH GRANT OPTION**:如果添加了 `WITH GRANT OPTION`,则被授权的用户可以将自己的权限授予其他用户,但需要注意权限管理的安全性问题[^1]。 - **撤销权限**:可以通过 `REVOKE` 语句撤销已授予的权限,例如: ```sql REVOKE DELETE ON mydatabase.mytable FROM 'user1'@'localhost'; ``` 此语句将撤销用户 `user1` 对 `mydatabase.mytable` 的删除权限[^2]。 ### 查看用户权限 要查看用户的当前权限,可以使用以下命令: #### 查看当前用户的权限 ```sql SHOW GRANTS; ``` #### 查看特定用户的权限 ```sql SHOW GRANTS FOR 'user1'@'localhost'; ``` 此命令会列出用户 `user1` 所拥有的所有权限信息[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值