mysql增删改查

一、连接数据库: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用户并不能删除用户。

 

 

上一篇 HTTP协议分析