MySQL数据库使用——MySQL值操作

在创建完数据库——表——字段之后,数据库框架基本搭建完毕,此时就进入最重要的一步,为数据库添加实际的各种数据。

数据关联

每一条数据都有这个表的唯一键值关联。id就是一个键值。

mysql> select * from zx_users;
+----+-------+----------------------------------+--------+---------------------+
| id | vname | vpwd                             | phone  | add_time            |
+----+-------+----------------------------------+--------+---------------------+
|  2 | user1 | e10adc3949ba59abbe56e057f20f883e | NULL   | 2017-11-05 10:32:15 |
|  3 | user1 | e10adc3949ba59abbe56e057f20f883e | 10086  | 2017-11-05 10:49:28 |
+----+-------+----------------------------------+--------+---------------------+
2 rows in set

建表时,设定键值就是这张表的关联值,该值唯一确定,不能重复。

查询数据:SELECT

查询一张表的所有信息

SQL命令:

SELECT <tablename>.* from <tablename>;

忽略表名

   这里面的表名可以省略:<tablename>.*
mysql> select zx_users.* from zx_users;
+----+-------+----------------------------------+--------+---------------------+
| id | vname | vpwd                             | phone  | add_time            |
+----+-------+----------------------------------+--------+---------------------+
|  2 | user1 | e10adc3949ba59abbe56e057f20f883e | NULL   | 2017-11-05 10:32:15 |
|  3 | user1 | e10adc3949ba59abbe56e057f20f883e | 10086  | 2017-11-05 10:49:28 |
+----+-------+----------------------------------+--------+---------------------+
2 rows in set

查询关键字筛选

查询数据,通过WHERE来过滤信息

mysql> select * from zx_users where phone = '10086';
+----+-------+----------------------------------+-------+---------------------+
| id | vname | vpwd                             | phone | add_time            |
+----+-------+----------------------------------+-------+---------------------+
|  3 | user1 | e10adc3949ba59abbe56e057f20f883e | 10086 | 2017-11-05 10:49:28 |
+----+-------+----------------------------------+-------+---------------------+
1 row in set

查询内容筛选

查询内容“*”为查询全部,也可以查询其中的几个,用逗号分隔。

mysql> select vname,vpwd,phone from zx_users where phone = '10086';
+-------+----------------------------------+-------+
| vname | vpwd                             | phone |
+-------+----------------------------------+-------+
| user1 | e10adc3949ba59abbe56e057f20f883e | 10086 |
+-------+----------------------------------+-------+
1 row in set

修改数据:UPDATE

SQL命令:

UPDATE <tablename> SET 

修改多个内容通过逗号间隔。

mysql> update zx_users set vname = 'user2',vpwd = MD5('654321') where phone = '10086';
Query OK, 1 row affected
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from zx_users where vname = 'user2';
+----+-------+----------------------------------+-------+---------------------+
| id | vname | vpwd                             | phone | add_time            |
+----+-------+----------------------------------+-------+---------------------+
|  3 | user2 | c33367701511b4f6020ec61ded352059 | 10086 | 2017-11-05 10:49:38 |
+----+-------+----------------------------------+-------+---------------------+
1 row in set

插入数据:INSERT

SQL命令:

INSERT INTO <tablename>(columnname,...) VALUES('value',...);

插入的多个值用逗号间隔,字段允许为空的值可以忽略不填,不允许为空的值一定要填充,不然插入失败。

mysql> INSERT INTO zx_users(vname,vpwd) VALUES('user3',MD5('qwerty'));
Query OK, 1 row affected
mysql> select * from zx_users;
+----+-------+----------------------------------+-------+---------------------+
| id | vname | vpwd                             | phone | add_time            |
+----+-------+----------------------------------+-------+---------------------+
|  2 | user1 | e10adc3949ba59abbe56e057f20f883e | NULL  | 2017-11-05 10:32:15 |
|  3 | user2 | c33367701511b4f6020ec61ded352059 | 10086 | 2017-11-05 10:49:38 |
|  4 | user3 | d8578edf8458ce06fbc5bb76a58c5ca4 | NULL  | 2017-11-07 22:40:30 |
+----+-------+----------------------------------+-------+---------------------+
3 rows in set

删除数据:DELETE

SQL语句:

DELETE FROM <tablename> where <columnname>

根据字段删除该条语句。

mysql> select * from zx_users;
+----+-------+----------------------------------+-------+---------------------+
| id | vname | vpwd                             | phone | add_time            |
+----+-------+----------------------------------+-------+---------------------+
|  2 | user1 | e10adc3949ba59abbe56e057f20f883e | NULL  | 2017-11-05 10:32:15 |
|  3 | user2 | c33367701511b4f6020ec61ded352059 | 10086 | 2017-11-05 10:49:38 |
|  4 | user3 | d8578edf8458ce06fbc5bb76a58c5ca4 | NULL  | 2017-11-07 22:40:30 |
+----+-------+----------------------------------+-------+---------------------+
3 rows in set

mysql>DELETE FROM zx_users where vname = 'user3';
Query OK, 1 row affected
mysql> select * from zx_users;
+----+-------+----------------------------------+-------+---------------------+
| id | vname | vpwd                             | phone | add_time            |
+----+-------+----------------------------------+-------+---------------------+
|  2 | user1 | e10adc3949ba59abbe56e057f20f883e | NULL  | 2017-11-05 10:32:15 |
|  3 | user2 | c33367701511b4f6020ec61ded352059 | 10086 | 2017-11-05 10:49:38 |
+----+-------+----------------------------------+-------+---------------------+
2 rows in set

MySQL函数

数据加密函数

不可逆函数

1、MD5加密

mysql> select MD5('qwerty');
+----------------------------------+
| MD5('qwerty')                    |
+----------------------------------+
| d8578edf8458ce06fbc5bb76a58c5ca4 |
+----------------------------------+
1 row in set

对用户密码进行加密

mysql> INSERT INTO zx_users(vname,vpwd,pwdtype) values ('userpwd',MD5('123456'),'MD5');
Query OK, 1 row affected
mysql> select * from zx_users where pwdtype = 'MD5';
+----+---------+----------------------------------+---------+--------+---------------------+
| id | vname   | vpwd                             | pwdtype | phone  | add_time            |
+----+---------+----------------------------------+---------+--------+---------------------+
|  4 | userpwd | e10adc3949ba59abbe56e057f20f883e | MD5     | 321654 | 2017-11-08 22:22:51 |
+----+---------+----------------------------------+---------+--------+---------------------+
1 row in set

2、SHA加密

mysql> select SHA('123456');
+------------------------------------------+
| SHA('123456')                            |
+------------------------------------------+
| 7c4a8d09ca3762af61e59520943dc26494f8941b |
+------------------------------------------+
1 row in set

对用户密码进行加密

mysql> INSERT INTO zx_users(vname,vpwd,pwdtype) values ('userpwd',SHA('123456'),'SHA');
Query OK, 1 row affected
mysql> select * from zx_users where pwdtype = 'SHA';
+----+---------+------------------------------------------+---------+-------+---------------------+
| id | vname   | vpwd                                     | pwdtype | phone | add_time            |
+----+---------+------------------------------------------+---------+-------+---------------------+
|  5 | userpwd | 7c4a8d09ca3762af61e59520943dc26494f8941b | SHA     | NULL  | 2017-11-08 22:24:43 |
+----+---------+------------------------------------------+---------+-------+---------------------+
1 row in set

3、PASSWORD

mysql> select PASSWORD('qwerty');
+-------------------------------------------+
| PASSWORD('qwerty')                        |
+-------------------------------------------+
| *AA1420F182E88B9E5F874F6FBE7459291E8F4601 |
+-------------------------------------------+
1 row in set

对用户密码进行加密

mysql> INSERT INTO zx_users(vname,vpwd,pwdtype) values ('userpwd',PASSWORD('123456'),'PASSWORD');
Query OK, 1 row affected
mysql> select * from zx_users where pwdtype = 'PASSWORD';
+----+---------+-------------------------------------------+----------+-------+---------------------+
| id | vname   | vpwd                                      | pwdtype  | phone | add_time            |
+----+---------+-------------------------------------------+----------+-------+---------------------+
|  6 | userpwd | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | PASSWORD | NULL  | 2017-11-08 22:25:24 |
+----+---------+-------------------------------------------+----------+-------+---------------------+
1 row in set

秘钥函数

对于MySQL秘钥函数的存储,不能用字符型进行存储,需要创建二进制blob型进行存储。
创建二进制字段存储密码:
SQL命令:

ALTER TABLE zx_users ADD COLUMN npwd tinyblob NULL DEFAULT NULL AFTER vpwd;
mysql> ALTER TABLE zx_users ADD COLUMN npwd tinyblob NULL DEFAULT NULL AFTER vpwd;
Query OK, 0 row affected
Records: 0 Duplicates: 0 Warnings: 0

1、ENCODE与DECODE,加密与解密

mysql> select ENCODE('123456','name');
+-------------------------+
| ENCODE('123456','name') |
+-------------------------+
| m���<                 |
+-------------------------+
1 row in set
mysql> select DECODE(encode('123456','name'),'name');
+----------------------------------------+
| DECODE(encode('123456','name'),'name') |
+----------------------------------------+
| 123456                                 |
+----------------------------------------+
1 row in set

对用户密码进行加密

mysql> INSERT INTO zx_users(vname,bpwd,pwdtype) values ('userpwd',ENCODE('123456','userpwd'),'ENCODE');
Query OK, 1 row affected
mysql> select * from zx_users where pwdtype = 'ENCODE';
+----+---------+------+-------+---------+-------+---------------------+
| id | vname   | vpwd | bpwd  | pwdtype | phone | add_time            |
+----+---------+------+-------+---------+-------+---------------------+
|  8 | userpwd | NULL | [虾?? | ENCODE  | NULL  | 2017-11-08 22:49:09 |
+----+---------+------+-------+---------+-------+---------------------+
1 row in set

2、AES_ENCRYPT与AES_DECRYPT,加密与解密

加密

mysql> select AES_ENCRYPT('123456','name');
+------------------------------+
| AES_ENCRYPT('123456','name') |
+------------------------------+
| /O�as�\���               |
+------------------------------+
1 row in set

解密

mysql> select AES_DECRYPT(AES_ENCRYPT('123456','name'),'name');
+--------------------------------------------------+
| AES_DECRYPT(AES_ENCRYPT('123456','name'),'name') |
+--------------------------------------------------+
| 123456                                           |
+--------------------------------------------------+
1 row in set

对用户密码进行加密

mysql> INSERT INTO zx_users(vname,bpwd,pwdtype) values ('userpwd',AES_ENCRYPT('123456','userpwd'),'AES_ENCRYPT');
Query OK, 1 row affected
mysql> select * from zx_users where pwdtype = 'AES_ENCRYPT';
+----+---------+------+---------------+-------------+-------+---------------------+
| id | vname   | vpwd | bpwd          | pwdtype     | phone | add_time            |
+----+---------+------+---------------+-------------+-------+---------------------+
|  9 | userpwd | NULL | 魓?盉?殸?帤n2 | AES_ENCRYPT | NULL  | 2017-11-08 22:51:15  |
+----+---------+------+---------------+-------------+-------+---------------------+
1 row in set

时间函数

获取时间

1、now()

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2017-11-11 10:36:46 |
+---------------------+
1 row in set

2、current_timestamp()

mysql> select current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2017-11-11 10:36:50 |
+---------------------+
1 row in set

3、curtime()

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 10:36:57  |
+-----------+
1 row in set

时间格式转换

date_format

mysql> SELECT date_format(current_timestamp, '%Y%m%d%H%i%s');
+------------------------------------------------+
| date_format(current_timestamp, '%Y%m%d%H%i%s') |
+------------------------------------------------+
| 20171111103930                                 |
+------------------------------------------------+
1 row in set
mysql> SELECT date_format(current_timestamp, '%Y%m%d');
+------------------------------------------+
| date_format(current_timestamp, '%Y%m%d') |
+------------------------------------------+
| 20171111                                 |
+------------------------------------------+
1 row in set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值