欢迎来到 Franklin-Qi 的世界

Max
Min

MySQL操作

Ubuntu 下载mysql

sudo apt install mysql-server mysql-common

已root用户通过mycli 补全tab进入MySQL命令行进行操作。

$ sudo pip3 install mycli
% sudo mycli -uroot mysql
> create user '用户名'@'访问主机' identified by '密码';
mysql> grant 权限列表 on 数据库 to '用户名'@'访问主机' ;(修改权限时在后面加with grant option)

 

字段操作

添加字段

ALTER TABLE table_name ADD COLUMN Name VARCHAR(128) DEFAULT NULL COMMENT '姓名';
 修改原字段名称及类型
ALTER TABLE table_name CHANGE old_name new_name field_type;
删除字段
ALTER TABLE table_name DROP field_name;

 INSERT 中的子查询

考虑与 CUSTOMERS 表拥有相似结构的 CUSTOMERS_BKP 表。现在要将 CUSTOMER 表中所有的数据复制到 CUSTOMERS_BKP 表中,用于复制表数据,克隆数据库。

SQL> INSERT INTO CUSTOMERS_BKP
     SELECT * FROM CUSTOMERS 
     WHERE ID IN (SELECT ID 
                  FROM CUSTOMERS) ;

 UPDATE中的子查询

mysql出现You can’t specify target table for update in FROM clause 这个错误的意思是不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表。 select的结果再通过一个中间表select多一次,就可以避免这个错误。

注意,只有mysql会有这个问题,mssql与oracle都没有这个问题。

update worknote set endtime = 1595211930 where id in  (select id from (select id from worknote ) as a);

 

导出表结构和表数据

mysqldump 导出表结构和表数据

mysqldump -h localhost -uroot -p123456 (-d) dbname  (table) ( --ignore-table=dbname.tablename) > dump.sql

-d: 导出时不包含数据

table: 导出时指定单个表

--ignore-table=dbname.tablename: 导出时排除某个表

所以上面不包括括号内容时代表着,导出整个daname数据库所有的表结构和表数据。

时间戳转换

mysql> SELECT FROM_UNIXTIME(1560739226, '%Y-%m-%d %H:%m:%s') as time;
+---------------------+
| time                |
+---------------------+
| 2019-06-17 10:06:26 |
+---------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_FORMAT(1560739226, '%Y-%m-%d %H:%m:%s') as time;
+------+
| time |
+------+
| NULL |
+------+
1 row in set, 1 warning (0.00 sec)

时间格式('%Y-%m-%d %H:%m:%s')字符串%s直接存进数据库中,需要UNIX_TIMESTAMP('%s')进行转换成时间戳,这样可以组SQL语句进行比较时间大小范围。

 MySQL的limit m,n

SELECT * FROM table_name LIMIT [m],n;
SELECT * FROM stu LIMIT 2,4; //取stu表中第3至第6条,共4条记录。

m: [m]为可选,如果填写表示skip步长,即跳过m条。

n:显示条数。指从第m+1条记录开始,取n条记录。

SQLDriveConnect报错

连接到驱动程序

参考

SQL文档

C教程

配置MySQL驱动程序

极客学院SQL进阶

posted on 2019-06-12 15:10  yusq77  阅读(182)  评论(0编辑  收藏  举报

导航