管理数据库
1.mysql开闭使用篇
mariadb在Linux中首次进入mysql(因为此时还没有创建任何用户,mysql的root并不等效于linux中的root用户)
sudo mysql
进入mysql(创建数据库用户后)
mysql -u userName -p
查看mysql是否已经在运行
ps -ef | grep mysqld
退出mysql
EXIT;
2.用户管理篇(含权限)
更改某用户密码
use mysql; set password for 'johnny'@'%' = password('test');flush privileges; # show grants for 'johnny'@'%'; # 查看数据库中具体某个用户的权限
删除数据库用户
use mysql;delete from user where user='jack' and host='%'; # or host='localhost';flush privileges;
添加数据库用户
USE mysql; # 进入mysql系统数据库# 方式0CREATE user redhat@'localhost';CREATE user redhat@'%';# 任意主机SET PASSWORD FOR redhat@'localhost'=PASSWORD('redhat');# 方式1INSERT INTO user( host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y'); # 密码:guest123 授权:SELECT,INSERT 和 UPDATE # 所有权限:Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv,Process_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv, FLUSH PRIVILEGES;# 更新mysql数据库系统的用户权限列表# 数据库用户授权方式2:mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON databaseName.* TO 'userName'@'localhost' IDENTIFIED BY 'passwordValue';# 数据库用户授权方式3: GRANT ALL PRIVILEGES ON databaseName.* TO userName;# 回收权限REVOKE DROP,UPDATE ON databaseName.* from userName;
查看当前登录用户
SELECT user();# 'johnny@localhost'
查看当前用户详细信息(权限等)
DESC USER;
查看数据库系统所有用户详细信息
SELECT * FROM USER;
查看数据库连接的所有进程
SHOW FULL PROCESSLIST
更改根用户密码
# 方式1SET PASSWORD = PASSWORD('123456');FLUSH PRIVILEGES;# 更新mysql数据库系统的用户权限列表# 方式2UPDATE mysql.user SET PASSWORD=PASSWORD('123456') WHERE user='root' and host='localhost';FLUSH PRIVILEGES;# 更新mysql数据库系统的用户权限列表
3.数据库系统与数据库管理篇
查看系统所有权限
SHOW PRIVILEGES;# 授权见用户篇
查看mysql的最大连接数
show variables like '%max_connections%';
查看服务器响应的最大连接数
show global status like 'Max_used_connections';
创建数据库
DROP DATABASE ID EXISTS databaseName;CREATE DATABASE databaseName;
使用(切换)指定数据库
USE databaseName;
删除指定数据库
# 假设已经登录数据库时DROP DATABASE databaseName;# 假设未登录数据库时mysqladmin -u root -p DROP databaseName;
修改数据库的字符集
ALTER DATABASE tableName character SET utf8;#注意:字符集不能加字符'-'
查询所有数据库名
SHOW DATABASES; # 列出数据库中所有的数据库名
查看当前数据库
SELECT database();
查看当前数据库版本
【方法1】需要进入mysql
SELECT version();
【方法2】需要进入mysql(查看数据库完整配置)
status
【方法3】command模式下
mysql --help |grep Distrib
【方法4】command模式下
mysql -V
4.数据库表与索引管理篇
显示指定数据库的所有表名
USE databaseName;SHOW TABLES
显示表的结构信息
SHOW COLUMNS FROM tableName; DESC tableName; #第二种方式
显示数据表的详细索引(含主键)
SHOW INDEX FROM;
查询当前数据库所有表的详细信息
SHOW TABLE STATUS FROM tableName; # 查询当前数据库所有表的详细信息SHOW TABLE STATUS LIKE 'xxx%'; # 表名以xxx开头的表的信息SHOW TABLE STATUS FROM tableName LIKE 'xxxx%'\G; # 加上 \G,查询结果按列打印
添加表的列
ALTER TABLE table_name ADD COLUMN columnB VARCHAR(10);
删除表的某列
ALTER TABLE table_name DROP COLUMN field_name;
修改表的表名
ALTER TABLE table_nameA RENAME table_nameB;
修改表的列名
ALTER TABLE table_name CHANGE COLUMN columnA columnB VARCHAR(30);
修改表的列
ALTER TABLE table_name MODIFY columnA CHAR(10) --修改表列类型
修改某列的值为X或者为空
UPDATE table_name SET field_name = 'X';UPDATE table_name SET field_name = '';
5.數據庫SQL常用語句
刪除
DELETE FROM table_name [WHERE Clause]
查看
SELECT column_name,column_name FROM table_name [WHERE Clause] [LIMIT N][ OFFSET M]
修改
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
新增
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );