mysql里的增删改查简述
插入:insert
删除:delete
修改:update
查询:select
select命令
select * from 表名 –》查询某表的所有的列
select * from 表名 where 列x 条件1 –》实现对某些行的查询
select 列1,列2 from 表名 –》查询特定的某些列
select 列1,列2 from 表名 where 列x 条件1 –》实现对某些行在某些列的特定查询
select 列的一些常规语法
算术计算:select 3*8;
列别名:select name as 姓名;
字符串连接:
①
mysql>select NAME concat (TOWN,' ',STREET,' ',HOUSENO) "player address" from PLAYERS;
②
mysql> set @@session.sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT';
mysql> select NAME,TOWN||STREET||HOUSENO "player address" from PLAYERS;
(提示:如果直接执行带管道的命令,是不行的!!如下图:)
注意:concat 里面如果有null,则形成的表为空:
怎么改善这种情况:
用CONCAT_WS,里面加逗号:
eg:mysql>select id,CONCAT_WS(‘,’,First,last) “Full Name” from t1;
【提示:
concat_ws(‘,’)–》指定逗号作为分隔符;
“full name”–》指定联合显示的列的名字】
例子2:
很明显,用逗号作为分隔符了,并且连接显示的列名为指定的“pLAYER HOME ADDRESS” FROM PLAYERS”了。
使用help去学习和使用select函数
mysql>help contents;--》看help有哪些函数
mysql>help functions;--》看功能函数有哪些
eg:
mysql>select user();–》当前实际登录的用户;
mysql>select database();–》当前在使用mysql里的哪个数据库;
MySQL的常量及数据类型
- 常量:整数、小数、浮点数、字符串、日期、布尔(真和假)、16进制、位
mysql>help data types;--》查看所有数据类型
- 小数:
mysql>create table t3(d1 dec(10,2));--》一共10位,小数最多2位。
- 浮点数:
mysql>create table t4(f1 FLOAT);--》 10e3
- 布尔型:
或者
- 16进制:
mysql>select 0x62;
MySQL中date数据类型的输入
日期:
年月日:901101或者19901101
(既:月日必须写!年可以四位可以两位!)
显示系统的日期:
mysql> select CURDATE();
或者 select CURRENT_DATE();
显示当前时间 :select CURRENT_TIME();
将字符串转换为日期:
select STR_TO_DATE('01,5,2013','%d%m%Y');
time 数据类型的输入
mysql> create table t14(t1 time);
mysql>insert into t14 values(191001);
(time(3)):在秒后面加三位小数:
用str_to_date(’xx:xx:xx’,’%H%i%s’)添加时间:
添加年月日时分秒:
mysql>insert into t15 values('1990-10-01','19:01:01');
用str_to_date();来添加年月日时分秒:
date和time的显示方法
①select * from t15;
②select date_format(d1,’%W,%M,%d,%Y,%T’) from t15;
(补:%W:星期几 %M:月份 %d:日子 %Y:年 %T:时间)
操作系统时区的概念
操作系统的时区:
cat /etc/sysconfig/clock
cat /usr/share/zoneinfo/Asia/Shanghai
MySQL时区
(mysql装完后有)系统时区:
show variables like ‘system%’;
( CST就是东八区 )
(覆盖最广的) 全局时区:
select @@global.time_zone;
会话时区:
select @@session.time_zone;
修改time_zone: (time_zone能够反映mysql服务器的位置)
设置时区(time_zone):
set @@global.time_zone='+8:00';
set @@global.time_zone='Asia/shagnhai';
- 在/etc/my.cnf 里加上:
default_time_zone=Asia/Shanghai
(修改后要重启mysql)
加载时区:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -p7777777 mysql;
(把操作系统的时区传递到mysql)
select * from mysql.time_zone_name;
set time_zone='Asia/Shanghai';
MySQL 时区正确使用规则
(mysql存进去的时候,在里面是以零时区存着的,取出的时候再转换成对应的时区)
数据表里面的列(为timestamp类型)
会话进来
MySQL 时区例子实践
在终端1里:
设置为东八区,建立一个表t16,插入时间为19:00:
mysql>create table t16(t1 timestamp);
然后在终端2里:
设置会话的时区为东时区,再次查看表t16,会发现时间多了2小时: