MySQL之基本操作语法

基本SQL命令

sql命令的使用规则
  • 每条命令以分号结尾
  • 命令不区分大小写
库的管理

查看所有的库:

show databases;

创建数据库(指定字符集):

create database 库名 [character set 字符集(一般使用utf8)];
create database stuinfo character set utf8;

查看创建库的语句:

show create database 库名;

查看当前所在库:

select database();

切换库:

use 库名;(这个可以不加分号,但最好写)

查看库中所有的表:

show tables;

删除数据库:

drop database 库名;
表的管理

创建表:

create table 表名(
字段名 数据类型,
字段名 数据类型,
...
)[character set 字符集];

查看创建表的语句(包括字符集、存储引擎)

show create table 表名;

查看表结构

desc 表名;

删除表

drop table 表名;
表记录管理

插入语句

insert into 表名 values(记录1),(记录2)....
insert into 表名(字段名1,字段名2...) values(记录1)...

eg:insert into stuinfo values(1, 'zhangsan', 28), (2, 'lisi', 25);
insert into stuinfo(id, name) values(3, 'Tom'), (4, 'Lucy');

查询语句

select 字段名列表 from 表名;
select 字段名列表 from 表名 where 条件;

eg:select name from stuinfo;
select id from stuinfo where name='lisi';
字段的数据类型

数值类型:整型、浮点型

  • 整型
    • int 大整形(占4个字节)取值范围:0~(2^32-1)
    • tinyint 微小整型(占1个字节)
      • 有符号:signed为默认,取值范围:-128~127
      • 无符号:unsigned,取值范围:0~255
  • 浮点型
    • float:占4个字节,最多显示7位
      • float(m,n) 其中m表示总位数,n表示保留的小数位数
    • double:占8个字节,不常用
    • decimal:详见紧挨着的注释
      注释:decimal(m, n)比较常用
      它的存储比较特殊,整数和小数部分分开存储
      存储规则:将9的倍数包装成4个字节,余数详见如下表
余数字节
00
1-21
3-42
5-63
7-84

举个栗子:
decimal(19, 9)
分析:
整数部分:10 / 9 = 1余1—-> 4字节+1字节=5字节
小数部分:9 / 9 = 1 余0—–>4字节+0字节=4字节
所以共占9个字节

字符类型:char、varchar、text / longtext

  • char:定长(固定长度),范围:1~255
  • varchar:变长(不固定),范围:1~65535
  • text / longtext:存放文本,可存放4G
    char和varchar的特点:
    char:浪费存储空间,性能高
    varchar:节省存储空间,性能低

字符类型的宽度和数值类型的宽度的区别:

  1. 数值类型宽度为显示宽度,只用于select查询时显示,和占用存储空间无关,可用zerofill查看效果
  2. 字符类型的宽度超过后无法存储

枚举类型:单选、复选

  • enum:单选
    • 如:sex enum(‘男’,‘女’)
  • set:复选
    • 如:hobby set(‘篮球’,‘足球’,‘乒乓球’)

单选在插入记录时只能选择其中的一个,并且只能插入enum里的内容,否则会报错,如:

insert into stuinfo(sex) values('男') --正确
insert into stuinfo(sex) values('man') --错误

复选在插入记录时可选择一个或多个,但只能选择set有的内容,否则会报错,多个使用逗号隔开,并且都在一个引号内,如

insert into stuinfo(hobby) values("篮球,足球")   --正确
insert into stuinfo(hobby) values("篮球""足球")   --错误
insert into stuinfo(hobby) values("篮球,足球,羽毛球")   --错误
日期时间函数

data、datatime、timestamp、time

  • data:’YYYY-MM-DD ’ 年月日
  • datatime:’YYYY-MM-DD HH:MM:SS’ 年月日时分秒
  • timestamp:’YYYY-MM-DD HH:MM:SS’ 年月日时分秒
  • time:’HH:MM:SS’ 时分秒
    注意:datatime不给默认值返回的是NULL
    timestamp不给默认值返回的是当前系统的时间
日期时间函数
  • now() 服务器当前日期
  • curdata() 当前日期
  • data(“1999-09-09 09:09:09”) 提取 年月日 1999-09-09
  • time(“1999-09-09 09:09:09”) 提取 时分秒 09:09:09
  • year(“1999-09-09 09:09:09”) 提取 年 1999
日期时间运算

语法格式:

select 字段 from 表名 where 字段名 运算符(now()-interval 时间间隔单位)

时间间隔单位:
2 day | 3 hour | 1 minute | 2 year | 3 month
示例:

1. 查询1天内的充值记录
select * from t2 where cztime>=(now()-interval 1 day);

2. 查询1年以前的充值记录
select * from t2 where cztime<(now()-interval 1 year);

3. 查询1天前、3天以内的充值记录
select * from t2 where cztime>=(now()-interval 1 day) 
and cztime<=(now()-interval 1 day);
表字段的操作

语法格式:

alter table 表名 ...
  • 添加字段(add),默认添加到最后
    • 添加到最后:alter table 表名 add 新字段名 数据类型;
    • 添加到第一个 :alter table 表名 add 新字段名 数据类型 first;
    • 添加到某个字段后边:alter table 表名 add 新字段名 数据类型 after 字段名;
  • 删除字段(drop)
    • alter table 表名 drop 字段名;
  • 修改字段数据类型(modify)
    • alter table 表名 modify 字段名 新数据类型;
表记录的操作
  • 删除表记录(delete)
    • delete from 表名 where 条件;
  • 更新表记录(update)
    • update 表名 set 字段1=值1 where 条件;
      注意:对表记录的操作一定要加where条件,不然会对整张表操作
运算符操作
  • 数值比较:=、!=、>、>=、<、<=
  • 字符比较:==、!=
  • 逻辑比较:and、or
  • 范围内比较
    • 在值1与值2之间:between 值1 and 值2
    • 在某些值中:in(值1,值2,值3….)
    • 不在某些值中:not in(值1,值2,值3….)
  • 匹配空和非空
    • 空:is null
    • 非空:is not null
  • 模糊查询:like
    • _:匹配单个字符
    • %:匹配0到多个字符
      模糊查询案例:
select name from stuinfo where name like "_%_"; ----匹配两个及以上姓名
select name from stuinfo where name like "%"; ----匹配全部的姓名
select name from stuinfo where name like "___"; ----匹配三个字符的姓名
select name from stuinfo where name like "赵%"; ----匹配姓赵的姓名
表字段和表记录的操作
功能表字段(alter table 表名 + )表记录
addinsert into 表名 values…
dropdelete from 表名 where…
modifyupdate 表名 set…
desc 表名select 字段 from 表名…

The end!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秒不可闫M先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值