一、连接数据库:mysql -u root -p
mysql -h 192.168.100.1 -u ceshi -p
查看数据库当前版本、时间 : select version(), current_date
二、数据库操作
1、创建数据库
命令:create database <数据库名>
例如:建立一个名为xhkdb的数据库
create database xhkdb;
2、显示所有的数据库
命令:show databases;(注意:最后有个s)
另有: show tables; (显示当前数据库包含的表)
3、删除数据库
命令:drop database <数据库名>
例如:删除名为 xhkdb的数据库 mysql> drop database xhkdb;
4、使用数据库
命令:use <数据库名> 屏幕提示:Database changed
查看当前使用的数据库 select database();
三、数据表操作,操作前应连接某个数据库
1、修改数据表名称
命令 :alter table <旧表名> rename <新表名>
2、建立新的数据表
命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
即:create table table_name (column_name column_type);
表名后需加上字段与类型,否则会语法错误,提示A table must have at least 1 column
例如:在数据库test下建立新表test
命令:create table test (user varchar(15) , sex varchar(10));
此时通过 show tables可发现表test已建立成功;通过命令 describe <数据表名>可查看test数据表结构,如下:
MariaDB [test]> describe test;
+——-+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+————-+——+—–+———+——-+
| user | varchar(15) | YES | | NULL | |
| sex | varchar(10) | YES | | NULL | |
+——-+————-+——+—–+———+——-+
3、插入表内容
例如:往test表中插入单行命令如下
Insert into test (user, sex) values(“yu”,”male”);
MariaDB [test]> select * from test;
+——+——+
| user | sex |
+——+——+
| yu | male |
+——+——+
若插入多行
insert into 表名(字段名1,字段名2)values(值a1,值b1), (值a2,值b2),
删除数据表某行
delete from test where 字段=”值”;
删除数据表多行
delete from test where id=”002″;
4.数据表修改列操作
1)新增单列:不指定默认会追加到末尾
命令:alter table table_name add column column_name CHAR(10) ;
例如:MariaDB [test]> alter table test add column name char(10);
first指定列首
命令:alter table table_name add column_name char(10) FIRST;
例如:MariaDB [test]> alter table test add column passwod char(10) first;
指定某列后
命令:alter table table_name add column column_name varchar(10) not null after somecolumn;
注:tablename是要修改的表名,columnname是新增列,varchar(10) 是新增字段类型,
not null是指新增字段不能为空值,somecolumn是原来的列
例如:MariaDB [test]> alter table test add column age char(10) not null after user;
增加以上name、passwod、age列后test表如下:
MariaDB [test]> select * from test;
+———+——+—–+——+——+
| passwod | user | age | sex | name |
+———+——+—–+——+——+
| NULL | yu | | male | NULL |
+———+——+—–+——+——+
2)修改列名
命令:alter table table_name change column旧列名 新列名 varchar(20);
例如修改上述passwod列:alter table test change column passwod password varchar(20);
3)删除列
命令:alter table table_name drop column column_name;
例如删除上述age列: alter table test drop column age
MariaDB [test]> select * from test;
+———-+——+——+——+
| password | user | sex | name |
+———-+——+——+——+
| NULL | yu | male | NULL |
+———-+——+——+——+
删除一列时:
alter table TableName drop column 列名;
删除多列时:
alter table TableName drop column 列名1, drop column 列名2;
更改字段长度
alter table wpsmtlk modify column 字段 varchar(100);
更新表
Update tablename set 字段=“” where 字段=“”;
四、删除与清空数据表
1)删除数据表命令:drop table table_name; 例如删除表ttest drop table ttest;
2)清空数据表命令:delete from table_name; 例如清空表ttest delete from ttest;
五、mysql修改密码方法
1)一般命令格式为:mysql> set password for 用户名@localhost = password(‘新密码’);
例子:mysql> set password for root@localhost = password(‘123’);
2) mysql> use mysql;
mysql> update user set password=password(‘123′) where user=’root’ and host=’localhost’;
mysql> flush privileges;
3)alter user ‘root’@’localhost’ identified by ‘Mtlk@666′;
创建本地新用户wps密码为Mtlk@666,权限是all针对库ceshi表test
grant all on ceshi.test to wps@localhost identified by “Mtlk@666”;
找回密码——>重置密码
配置文件 /etc/ my.cnf找到mysqld,在他的下一行,添加skip-grant-tables
use mysql;
> update user set authentication_string=password(“你的密码”) where user=’root’; #(无password字段的版本,也就是版本<=5.7的)
> update user set password=password(‘你的密码’) where user=’root’; #(有password字段的版本,版本>5.7的)
> update user set plugin=”mysql_native_password”;
> flush privileges;
> exit;
二、刷新权限
对用户做了权限变更之后,一定记得重新加载一下权限,将权限信息从内存中写入数据库。
mysql> flush privileges;
三、查看用户权限
mysql> grant select,create,drop,update,alter on *.* to ‘yangxin’@’localhost’ identified by ‘yangxin0917’ with grant option;
mysql> show grants for ‘yangxin’@’localhost’;
回收用户权限
revoke create on *.* from ‘yangxin@localhost’;
权限类型
1. usage
连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。
mysql> grant usage on *.* to ‘p1′@’localhost’ identified by ‘123′;
该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。