MySQL数据库常用基本语句及管理

一、数据库基本操作

1.数据库基本操作

查看数据库信息

mysql>	show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

查看数据库中的表信息

mysql>	use 数据库名;
mysql>	show tables;
+------------------+
| Tables_in_school |
+------------------+
| info             |
+------------------+
1 row in set (0.00 sec)

显示数据表的结构

mysql>	describe [数据库名.]表名;		===>可以使用desc [数据库名.]表名;

2.SQL语句概述

SQL语言

Structured Query Language的缩写,即结构化查询语言

关系型数据库的标准语言

用于维护管理数据库 包括数据查询、数据更新、访问控制、对象管理等功能

SQL分类

DDL: 数据定义语言—create(创建数据库,表)、alter(添加表字段)、drop(删除数据库,表)

DML: 数据操纵语言—insert(添加数据)、update(更新数据)、delete(删除数据,可单独删除一条数据)

DQL: 数据查询语言—select(查看)

DCL: 数据控制语言—grant(加权)、revoke(撤权)、commit、rollback

3.创建数据库和表

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

使用DDL语句新建库、表

创建数据库

mysql>	create database 数据库名;

创建数据表

mysql>	create table 表名(字段1 名称类型,字段2 名称类型...,PRIMARY KEY(主键名));
mysql>	create table users(user_name char(16) not null, user_passwd char(48)default'',PRIMARY KEY(user_name))
create table 表名 (字段01名称 字段01类型 字段01约束,字段02名称 字段02类型 字段02约束,......)存储引擎,字符集;
字段01名称:	属性名称,自定义
字段01类型:
	int(4):				整型			0000-9999
	double				浮点型			8字节
	decimal(5,2)		有效数字是5位,小数点后面保留2位		100.00	099.50
	float				单精度浮点		4字节
	char(10)			固定长度字符串
	varchar(50)			可变长度字符串		可以超出
字段01约束:
	非空约束(not null)				内容不允许为空
	主键约束(primary key)			非空且唯一		标识
	默认值(default '未知')			加入没有填数据,默认预先设定的值填写
	自增特性(auto_increment)		id		从1开始
存储引擎:				innodb
字符集:				 UTF-8

4.删除数据库和表

使用DDL语句删除库、表

删除指定的数据表

mysql>	drop table [数据库名.]表名;

删除指定的数据库

mysql>	drop database 数据库名;
drop table 表名;			#删除当前库内的表

5.管理表中的数据

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

包括的操作

insert: 插入新数据

update: 更新原有数据

delete: 删除不需要的数据

向数据表中插入新的数据记录

mysql>	insert into 表名(字段1,字段2,字段3,......) values (字段1的值,字段2的值,字段3的值,.....);

修改、更新数据表中的数据记录

mysql>	update 表名 set 字段名1=值1[,字段名2=值2] where 条件表达式;

修改数据库密码

update aa.test set authentication_string=PASSWORD('123457') where user='root';
[root@www ~]# mysqladmin -u root -p '123457' password '123456'

在数据表中删除指定的数据记录

mysql>	delete from 表名 where 条件表达式;

不带where条件的语句标识删除表中所有记录

mysql>	delete from [数据库名.]表名;		===>在当前数据库里面就可以不写数据库名

DQL是数据查询语句,只有select

用于从数据表中查询符合条件的数据记录

查询时可不指定条件

mysql>	select 字段名1,字段名2,...... from 表名;

查询时指定条件

mysql>	select 字段名1,字段名2,...... from 表名 where 条件表达式;

二、数据库用户授权

1.数据表高级操作

清空表(DML)

mysql>	delete from table_name;			
mysql>	truncate table table_name;
mysql>	truncate table test;	#清空test表内所有数据

临时表(DDL)

临时建立的表,用于保存一些临时数据,不会长期存在.

#连接断开,临时表被删除
create temporary table mytest (
	id int(3) not null auto_increment,
    name varchar(10) character set utf8 collate utf8_bin notnull,
    score decimal(5,2) not null,
    address varchar(50) default '未知',
    )
    engine=innodb default charset=utf8;

克隆表(DDL)

mysql>	create table newtest as select * from test;
#	like方法
mysql>	create table newtest like test;						===>从test完整复制表的结构涩会给生成到newtest
mysql>	insert into newtest select * from test;				===>导入数据
#	show create table方法
mysql>	show create table test\G;				===>查看表的完整结构			\G===>表示以列显示
#	创建表newtest
mysql>	create table newtest(......);
#	导入数据
mysql>	insert into newtest select * from test;

2.数据库用户授权

DCL语句进行数据库授权管理

设置用户权限(用户不存在时,则新建用户)

mysql>	grant 权限列表 on 数据库名.表名 to 用户名@@来源地址 [identified by '密码'];
#示例
mysql>	grant select on auth.* to 'test'@'localhost' identified by '123456';

查看用户的权限

mysql>	show grants for 用户名@来源地址;
#示例
mysql>	show grants for 'test'@'20.0.0.20';

撤销用户的权限

mysql>	revoke 权限列表 on 数据库名.表名 from 用户名@来源地址;
#示例
mysql>	revoke all privileges on auth.* from 'test'@'192.168.0.10';   ##撤销用户所有权限

三、忘记数据库密码如何修改

#配置文件里面设置语句进行跳过验证
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
......
skip-grant-tables			===>添加一条代码

#进入mysql数据库
mysql> use mysql;
mysql> update mysql.user set authentication_string=password('123456') where user='tom';
#修改好之后记得将之前添加的代码删除

猜你喜欢

转载自blog.csdn.net/weixin_49780168/article/details/111569019