mysql基本常用语法,MYSQL常用语法

1.登录 mysql -uuser -ppassword [-hhostip]

2.常用命令

show databases;

use databasename;

show tables;

desc tablename;

命令不是大小写敏感的,数据库对象名字是大小写敏感的

3.语法:

创建数据库

create database databasename;

create database databasename default character set utf8;

常用字段类型:

数值类类型:int  bigint decimal(4,2)

日期类型:date datatime  timestamp  time  year  其中datetime格式为yyyy-MM-dd HH:ss:mm  timestamp格式为yyyyMMddHHssmm

文本类型:varchar(50) text(1000)/text

数值函数:

round(‘3.64’,0)--->4  四舍五入  第二个参数表示要留几位小数

floor(3.64)--->3  取整

日期常用函数:

year(...)

month(...)

dayofmonth(...)

curdate(); sysdate();

last_day(date) 返回该月最后一天

dayofweek(日期)

to_days(日期)  距离0000-00-00多少天

DATE_FORMAT(date,format)

根据 format 字符串格式化 date 值。

下列修饰符可以被用在 format

字符串中: %M 月名字(January......December)

%W 星期名字(Sunday......Saturday)

%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。

)

%Y 年, 数字, 4 位

%y 年, 数字, 2 位

%a 缩写的星期名字(Sun......Sat)

%d 月份中的天数, 数字(00......31)

%e 月份中的天数, 数字(0......31)

%m 月, 数字(01......12)

%c 月, 数字(1......12)

%b 缩写的月份名字(Jan......Dec)

%j 一年中的天数(001......366)

%H 小时(00......23)

%k 小时(0......23)

%h 小时(01......12)

%I 小时(01......12)

%l 小时(1......12)

%i 分钟, 数字(00......59)

%r 时间,12 小时(hh:mm:ss [AP]M)

%T 时间,24 小时(hh:mm:ss)

%S 秒(00......59)

%s 秒(00......59)

%p AM 或 PM

%w 一个星期中的天数(0=Sunday ......6=Saturday )

%U 星期(0......52), 这里星期天是星期的第一天

%u 星期(0......52), 这里星期一是星期的第一天

%% 一个文字“%”

%a - 星期几的简写

%A - 星期几的全写

%b - 月份的简写

%B - 月份的全写

%c - 日期时间 06/12/05 11:15:10

%C - 世纪时间

%d - 一个月的第几号(从 01 到 31)

%D - 同 %m/%d/%y

%e - 一个月的第几号,号为单数则前面加一空格 (从 1 到 31)

%g - 世纪

%G - 世纪 [0000,9999]

%h - 同%b

%H - 24 小时形式的小时(从 00 到 23)

%I - 12 小时形式的小时(从 01 到 12)

%j - 一年中的第几天(从 001 到 366)

%k - 24 小时形式的小时,单数字前面加空格. (从 0 到 23)

%l - 12 小时形式的小时,单数字前面加空格.(range 1 to 12)

%m - 月份 (range 01 to 12)

%M - 分

%n - 换行符

%p - 显示早上还是下午`am' 或 `pm'

%r - a.m. 或 p.m.形式的时间

%R - 24 小时形式的时间

%S - 秒

%t - tab 符号

%T - 同%H:%M:%S

%u - 用 [1,7],表示星期几

%U - 计算是该年的第几个星期,从该年的第一个星期天开始计算

%V - 计算是该年的第几个星期, 从 01 到 53, 第一个星期必须

至少有 4 天在这一年, 星期天作为这个星期的第一天

%w - 用数字的形式表示是星期的第几天, 星期天 为 0

%W - 用数字的形式是该年的第几个星期,从该年的第一个星期一开

始计算

%x - 显示日期:月/日/年

%X - 显示时间:小时:分钟:秒

%y - 不包括世纪的年份

%Y - 包括世纪的年份

%Z - 时区

%% - 输出%

创建表

create table table_name(

filed_name filed type,

...

);

create table table_name select ... from ...;

插入数据:

insert into tablename(columns...) values(....);

load ...

删除数据

delete from table.... where  ....

修改表

update table_name

set filed=value,...

where ....

删除表

drop table tablename;

查询数据

select ....

from ....

where ....

group by....

having ....

order by....   desc asc

组函数

count() sum( ) avg( ) max( ) min( )

表连接

内连接

select .... a.xxx, b.xxx...

from a inner join b

on a.id=b.id;

等价于

select .... a.xxx, b.xxx...

from a , b

where a.id=b.id;

外连接:

select .... a.xxx, b.xxx...

from a left|right outerjoin b

on a.id=b.id;

子查询

select  aaa.xxxx

from (select ...  from ... where ...) aaa;

case [...]

when ....  then ...

when ...  then ...

[else ...]

end

update EMP

set SAL=

(

case

when DEPTNO=10 and JOB='MANAGER' then SAL*1.1

when DEPTNO=20 and JOB='CLERK' then SAL*1.2

when DEPTNO=30  then SAL*1.1

when DEPTNO=40  then SAL*1.2

else SAL

END

);

select ENAME,

case DEPTNO

when 10 then '后勤部'

when 20 then '财务部'

when 30 then '内务部门'

else '其他部门'

end as dept

from EMP;

limit

从index 0 开始,取5条记录

select * from tablename limit 0,5

从index 5开始,连续取10条记录

select * from table limit 5,10

字符串操作

left('',2) right('',3)

upper(..)

lower(...)

replace('asfdasdf','a','D')

length(str)  str的长度

CONCAT(str1,str2,str3,..)  拼接字符串

like  _ %

regexp

其他:

null不是值   只能用is null  is not null

约束:

非空约束

create table t10(

id int default 0,

name varchar(20) not null

);

insert into t10(name) values('aaa');

insert into t10(id) values(1); //error

ERROR 1364 (HY000):

Field 'name' doesn't have a default value

主健约束&字段自增长

create table t12(

id int primary key auto_increment,

name varchar(20) not null

);

相关表emp&dept和练习:

### 回答1: MySQL中datetime插入格式为'YYYY-MM-DD HH:MM:SS',其中YYYY表示年份,MM表示月份,DD表示日期,HH表示小时,MM表示分钟,SS表示秒钟。例如,要插入2021年7月1日下午3点30分的时间,格式应为'2021-07-01 15:30:00'。 ### 回答2: 在 MySQL 中,datetime 类型的字段是一个包含日期和时间的值。在插入 datetime 类型值时,需要将日期和时间值以特定的格式传递给 MySQL 数据库,否则会出现语法错误或插入的值与期望值不一致的问题。 datetime 类型的格式为:YYYY-MM-DD HH:MM:SS 其中: - YYYY 代表年份,范围从 1000 到 9999 年。 - MM 代表月份,范围从 01 到 12 月。 - DD 代表日期,范围从 01 到 31 日,但还取决于月份。 - HH 代表小时,范围从 00 到 23 小时。 - MM 代表分钟,范围从 00 到 59 分钟。 - SS 代表秒数,范围从 00 到 59 秒。 例如,若要在datetime类型的字段中插入当前时间,可以使用 NOW() 函数,如下所示: INSERT INTO table_name (datetime_column) VALUES (NOW()); 若要插入特定的日期和时间值,则需要按照上述格式进行传递,如下所示: INSERT INTO table_name (datetime_column) VALUES ('2022-05-30 12:30:45'); 需要注意的是,在传递 datetime 值时,日期和时间之间需要用一个空格分隔,并且日期和时间的值必须符合格式要求,否则可能会导致插入失败或数据不准确的问题。了解 datetime 插入格式的规则能够帮助开发人员更好地进行数据库操作,从而提升开发效率和代码质量。 ### 回答3: MySQL中的`datetime`类型是用来保存日期和时间信息的数据类型。在插入`datetime`类型的值时,需要按照一定的格式进行格式化,常用的格式有以下几种: 1. yyyy-mm-dd hh:mm:ss 这是最常见的格式,用于表示年份(4位)、月份(2位)、日期(2位)、小时(24小时制,2位)、分钟(2位)和秒(2位)。 例如:2022-10-15 19:25:30 2. yyyy/mm/dd hh:mm:ss 与第一种格式相似,只是使用了斜杠`/`作为分隔符。 例如:2022/10/15 19:25:30 3. yyyy-mm-ddThh:mm:ss 该格式中间以字母T分隔日期和时间,它是ISO 8601标准中的日期时间格式。 例如:2022-10-15T19:25:30 4. yyyy年mm月dd日 hh:mm:ss 这种格式在中国常用,表示年、月、日以及小时、分钟和秒,使用了中文的年、月、日等字符。 例如:2022年10月15日 19:25:30 当插入`datetime`类型的值时,必须将其包含在单引号或双引号之间,否则会出现语法错误。示例代码如下: ``` INSERT INTO table_name (datetime_column) VALUES ('2022-10-15 19:25:30'); ``` 以上就是MySQL中`datetime`类型的插入格式。为了保证数据的准确性和一致性,我们应该在插入`datetime`类型的值时,尽量使用标准的格式规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值