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!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

秒不可闫M先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值