MySQL数据库管理


SQL语言
·Structured Query Language的缩写,即结构化查询语言
·关系型数据库的标准语言
·用于维护管理数据库(包括数据查询、数据更新、访问控制、对象管理等功能)

查看数据库结构
SHOW DATABASES

查看数据库中的表信息
USE 数据库名
SHOW TABLES

显示数据表的结构(字段)
DECRIBE [数据库名.]表名

删除数据库的结构(字段)
ALTER TABLE 表名 DROP 字段



SQL分类
·DDL:数据定义语言
·DML:数据操纵语言
·DQL:数据查询语言
·DCL:数据控制语言



DDL语句可用于创建数据库对象,如库、表、索引

创建数据库和表
·使用DDL语句新建库、表
创建数据库: CREATE DATABASE 数据库名
创建数据表: CREATE TABLE 表名 (字段定义…)

删除数据库和表
·使用DDL语言删除库、表
删除指定的数据库:DROP DATABASE 数据库名
删除指定的数据表:DROP TABLE [数据库名.]表名


DML语句用于对表中的数据进行管理
·INSERT:插入新数据
·UPDATE:更新原有数据
·DELETE:删除不需要的数据

向数据表中插入新的数据记录
INSERT INTO 表名(字段1,字段2,…)VALUES(字段1的值,字段2的值,…)

修改、更新数据表中的数据记录
UPDATE 表名 SET 字段名1=值1 [,字段名2=值2] WHERE 条件表达式

更新后刷新一下
flush privileges;

在数据表中删除指定的数据记录
DELETE FROM 表名 WHERE 条件表达式


DQL是数据查询语句,只有SELECT,用于从数据表中查找符合条件的数据记录,查询时可不指定条件

从数据表中查找符合条件的数据记录
SELECT 字段名1,字段名2…FROM 表名 WHERE 条件表达式



以上就是数据库的“增删改查”操作。




数据库用户授权

DCL语句设置用户权限,(用户不存在时,则新建用户)
GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [IDENTIFIED BY ‘密码’]
例:grant select on auth.* to ‘zhangsan’ @’localhost’ identified by ‘123456’;

查看用户的权限
SHOW GRANTS FOR 用户名@来源地址
例:show grants for ‘dbuser’@’localhost’;

撤销用户的权限
REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址
例:revoke all on auth.* from ‘dbuser’@’localhost’;



数据表高级操作

清空表
清空一个数据表就是删除这个表内的所有数据,通过DELETE FROM语句,可以删除表内的数据,除此之外还可以使用TRUNCATE TABLE语句实现清空表内记录。DELETE FROM语句可以使用WHERE子句对删除的结果集进行过滤选择,这样更方便、更灵活。TRUNCATE TABLE语句是删除表中所有记录数据,没法定制,灵活性上稍差。

·DELETE FROM tablename [WHERE 条件表达式]
例:delete from temp where level >=45; (删除temp表内level值大于等于45的数据记录)

·TRUNCATE TABLE tablename
例:truncate table tmp; (清空tmp表内所有数据)

DELETE和TRUNCATE的区别
·DELETE在不加WHERE子句的时候,和TRUNCATE是一样的效果,清空整个表内的数据记录。不过不同的是,DELETE返回的结果内有删除的记录条目,而TRUNCATE没有返回被删除的记录条目。
·TRUNCATE工作时是将表结构按原样重新建立,而DELETE工作时是一行一行的删除数据记录的,在速度上TRUNCATE会快很多,尤其在数据量比较大的时候,表现更为明显。另外如果一个表中有自增字段时,使用DELETE FROM删除所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录。使用TRUNCATE TABLE清空表内数据后,ID会从1开始重新记录。



临时表
·临时建立的表,用于保存一些临时的数据,不会长期存在,连接一旦断开,临时表就会被删除。
例:CREATE TEMPORARY TABLE `mytm` (



)…;



克隆表
在MySQL的开发和维护过程中,会有原样拷贝某个数据表的需求,可以通过以下两种方法实现完整复制。

·LIKE方法
LIKE方法可以将源表完全一样的复制生成一个新表,包括表的备注、索引、主键、存储引擎等,但是不会复制源表内数据记录。然后,再通过INSERT INTO …SELECT方法,将源表内的数据写入新表内。
语句:
mysql> create table text like mytemp; (通过LIKE方法,复制mytemp表生成test表)
mysql> show create table test\G (查看生成的test表)
mysql> select * from test; (查看一下表内)
mysql> insert into test select * from mytemp; (将mytemp表的数据写入test表)
mysql> select * from test; (查看写入数据后的test表)

·SHOW CREATE TABLE方法
先使用SHOW CREATE TABLE来获取源表的表结构、索引等信息。然后,复制源表结构并修改表名为目标名字,再执行创建新表的语句,通过这步操作,可以获得一个和源表结构一样的克隆表。最后,执行INSERT INTO …SELECT语句,从源表复制数据到新表内。
语句:
mysql> show create table mytmp\G (获取表的表结构、索引等信息)
mysql> create table ‘test’; (改名后创建新表)
mysql> insert into test select * from mytemp; (导入源表数据)
mysql> select * from mytemp; (查看导入数据后的test表)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值