Mysql 数据库管理 ----- 基础操作命令

一、数据库基本操作

  • 查看数据库列表信息
show databases;
  • 查看库中表的信息
use mysql;      ###先使用数据库
show tables;
  • 显示数据表的结构
语法:
describe [库名.表名]
     或者    
use 库名;
describe 表名;

(describe 简写 desc)
  • 刷新数据库
flush privileges;

二、SQL语句

SQL简介

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

SQL语句分类

DDL

DDL(Data Definition Languge 数据定义语言):用来建立数据库、数据库对象和定义其列。如 create 、alter 、drop

DML

DML(Dara Manipulation Languge 数据操纵语言):用来插入、删除、修改数据库中的数据。如 insert 、delete 、update

DCL

DCL(Data Control Language 数据控制语言):用来控制数据库组件的存取许可、存取权限等。如 commit 、rollback 、grant 、revoke

DQL

DQL:数据查询语言。只有一个 select

三、SQL语句操作

DDL语句

create 创建数据库、表

  • 创建数据库
语法:
create database 库名;
  • 创建数据表
use 库名;
语法:
create table 表名 (定义字段1,定义字段2,primary key (定义字段);

示例:
create table info (id char(5) not null,name varchar(48) not null,primary key (id));

drop 删除数据库、表

  • 删除指定的数据库
语法:
drop database 库名;

示例:
drop database auth;
  • 删除指定的数据表
语法:
drop table 库名.表名;

示例:
drop table auth.users;

alter 创建索引

语法:
alter table 表名 add index 索引名 (列名);

示例:
alter table info add index index_id (id);

DML语句

  • DML 语句用于对表中的数据进行管理

insert 插入新数据

格式:
insert into 表名(字段1,字段2......) VALUES(字段1的值,字段2的值,......)

示例:
insert into user(user_name,user_passwd) values('zhangsan',password('123456'));

insert into user values('lisi',password('123456'))('zhaoliu',password('456123'));

update 修改数据记录

格式:
 update 表名 set 字段名1=1[,字段名2=2] WHERE 条件表达式

示例:
update auth.users set user_passwd=password('abc123') where user_name='lisi';
flush privileges;      ###刷新

delete 删除指定的数据记录

格式:
delete from 表名 where 条件表达式

示例:
delete from auth.users where user_name='lisi';

DQL语句

select 查询表中的数据记录

格式1:
select 字段名1,字段名2 ...... from 表名;

示例:
select * from auth.users;      ###查看users表中所有记录信息

格式2:查询时指定条件
select 字段名1,字段名2 ...... from 表名 where 条件表达式;

示例:
elect user_name,user_passwd from auth.users where user_name='zhangsan';

DCL语句

  • DCL 用于数据库用户授权(用户不存在时,则新建用户)

grant 设置用户权限

格式:
grant 权限列表 on 数据库名.表名 to '用户'@'来源地址 ' [identified by '密码'];

示例1:
grant select on auth.* to 'xiaoqi'@'localhost' identified by '123456";
示例2:
grant all on *.* to 'root'@'%' identified by 'abc123456';
grant all on *.* to 'root'@'localhost' identified by 'abc123456';

查看用户权限

格式:
show grant for '用户名'@'来源地址';

示例:
show grants for 'dbuser'@'192.168.100.1';

revoke 撤销用户权限

格式:
revoke 权限列表 on 数据库名.表名 from '用户名'@'来源地址';

示例:
revoke all on bdqn.* from 'xiaoqi'@'localhost';      ####本地来源
revoke all on bdqn.* from 'dbuser'@'192.168.100.1';   ####来源地址

数据表高级操作

清空表

格式1delete from 表名;   ###可以加 where子句对删除的结果集进行过滤选择
格式2:
truncate table 表名;       ####清空表中所有记录

格式1示例1:
mysql> create database bbs;
mysql> use bbs;
mysql> create table ky (user_name CHAR(16) NOT NULL, user passwd CHAR(48) DEFAULT ''; level CHAR(16) NOT NULL, PRIMARY KEY (user name));
mysql> select * from ky;
mysql> delete from ky where level >=45;

格式1示例2:
mysql>create table tmp like player;              ######通过LIKE方法,复制player表生成tmp表
mysql>insert into tmp select * from player;         #######通过player表生成tmp表内数据记录
mysql>delete from tmp where level >= 45;             #####delete from  +where 过滤删除
mysql>delete from tmp;

格式2示例:
truncate table tmp;

临时表

  • MySQL的临时表,顾名思义,就是临时建立的表,并不会长期存在,主要用于保存一些临时数据。临时表有个特性,就是只在当前连接可见,当前连接下可执行增删改查等操作,当连接被关闭后,临时表就会被MysQL删除,相关的资源也会被释放。
mysql> CREATE TEMPORARY TABLE`mytmp` (`id` int(10) NOT NULL AUTO_INCREMENT,`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT
NULL, `level` int(10) NOT NULL, PRIMARY KEY (id)ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> insert into mytmp(name,level) values('aa',10);
mysql> select * from mytmp;
mysql> exit
mysql -u root -p 密码
mysql> use auth;
mysql> select * from mytmp;

克隆表

  • 在MySQL的开发和维护过程中,会有原样拷贝某个数据表的需求。能才能够快速、完整的拷贝数据表。

    • LIKE方法:从 mytmp 完整复制结构生成 test 表,再导入数据
    mysql> create table test like mytmp;
    mysql> insert into test select * from mytmp;
    mysql> select * from mytmp;
    
    • SHOW CREATE TABLE 方法:先查看 mytmp 完整结构,根据此结构创建名字不同结构相同的表 test,再导入数据。
    mysql> drop table tmp;
    mysql> create table tmp as select *from player;
    mysql> select count(*) from tmp;
    mysql> create table test like mytmp;              ###通过LIKE方法,复制mytmp表生成test表
    mysql> show create table test\G
    mysql> create table test (id hit(5) not null primary key,name varchar(10) not null) engine=InnoDB;
    mysql> select * from test;
    mysql> insert into test select * from mytmp;        ##将mytmp表的数据写入test表
    

到底结束,感谢浏览

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值