MySQL数据库基本用法(一)-增删改查 数据类型及相关函数

SQL:Structured Query Language 结构化查询语言,用于程序员和数据库管理系统进行交流的语言.
数据库相关SQL
1.查看所有数据库
show databases;
2.创建数据库
create database 数据库名;
3.查看数据库详情
show create database 数据库名;
4.创建数据库指定字符集
create database 数据库名 character set utf8/gbk;
5.删除数据库
drop database 数据库名;
6.使用数据库
use 数据库名;
表相关的SQL
1.查询所有表
show tables;
2.创建表
create table 表名(字段1名 字段1类型,字段2名 字段2类型);
3.查看表详情
show create table 表名;
4.创建表指定引擎和字符集
create table 表名(字段1名 字段1类型,字段2名 字段2类型) engine=myisam/innodb charset=utf8/gbk;
表引擎:
innodb:支持数据库的高级操作包括:事务、外键等
myisam:只支持数据基础的增删改查操作
5.查看表字段
desc 表名;
6.删除表
drop table 表名;
7.修改表名
rename table 原名 to 新名;
8.修改表引擎和字符集
alter table 表名 engine=myisam/innodb charset=utf8/gbk;
9.添加表字段
最后面添加格式: alter table 表名 add 字段名 字段类型;
最前面添加格式: alter table 表名 add 字段名 字段类型 first;
xxx后面添加格式: alter table 表名 add 字段名 字段类型 after xxx;
10.删除表字段
alter table 表名 drop 字段名;
11.修改字段名和类型
alter table 表名 change 原名 新名 新类型;
12.修改字段类型和位置
alter table 表名 modify 字段名 新类型 first/after xxx;
数据相关的SQL
1.插入数据
全表插入格式:
insert into 表名 values (值1,值2,值3);
指定字段格式:
insert into 表名 (字段1,字段2) values(值1,值2);
批量插入:
insert into 表名 values (值1,值2,值3),(值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
2.查询数据
select 字段信息 from 表名 where 条件;
3.修改数据
update 表名 set 字段名=值,字段名=值 where 条件;
4.删除数据
delete from 表名 where 条件;
注释 comment
注释:对表的字段进行描述
数据冗余 通过拆分表解决
数据冗余:如果数据库中的表设计不够合理,随着数据量的增长出现大量的重复数据,这种重复数据的现象称为数据冗余,通过拆分表的形式解决

数据类型
整数:常用类型int(m) 和 bigint(m), m代表显示长度,需要结合zerofill关键字使用
例:create table emp(id int(5) zerofill);
浮点数:常用类型 double(m,d) m代表总长度 d代表小数长度 25.321 m=5 d=3 decimal超高精度浮点数,当涉及超高精度运算时使用
字符串: char(m)固定长度 执行效率高 最大长度255 varchar(m)可变长度 节省资源 最大65535 超高255建议使用text, text可变长度 最大65535
日期:date 只能保存年月日 ,time 只能保存时分秒 ,datetime 最大值 9999-12-31 默认值为null,timestamp 最大值2038-1-19 默认值 当前的系统时间
去重 distinct
例:select distinct 字段名 from 表名;
比较运算符 > < = >= <= !=和<>
and和or
and 并且&& 需要同时满足多个条件时使用
or 或|| 需要满足多个条件中的某一个条件时使用
between x and y 包括xy
模糊查询 like
代表单个未知字符
%代表0或多个未知字符
–举例:
以a开头 a%
以b结尾 %b
包含c %c%
第一个字符是a 倒数第二个字符是b a%b

匹配163邮箱 %@163.com
任意邮箱 %@%.com
排序
order by 字段名 asc(升序)/desc(降序);
分页查询
limit 跳过的条数,请求的条数(每页的条数)
limit (页数-1)每页的条数,每页的条数
concat()函数
可以将字符串进行拼接
select concat(‘a’,‘b’);
数值计算 + - * / % 7%2 = mod(7,2)
日期相关函数
1.获取当前日期+时间
select now();
2. 获取当前年月日 和 时分秒
select curdate(),curtime();
3. 从完整的年月日时分秒中 提取年月日 和 提取时分秒
select date(now());
select time(now());
4. 从完整的年月日时分秒中提取时间分量 extract
 select extract(year/month/day/hour/minute/second from now());
5. 日期格式化 date_format()
date_format(时间,格式);
-格式:
%Y 四位年 %y 两位年
%m 两位月 %c 一位月
%d 日
%H 24小时 %h 12小时
%i 分
%s 秒
把默认的时间格式转成 年月日时分秒
select date_format(now(),’%Y年%m月%d日 %H时%i分%s秒’);
6. 把非标准时间格式转成标准格式 str_to_date()
str_to_date(字符串时间,格式)
14.08.2019 08:00:00
select str_to_date(‘14.08.2019 08:00:00’,’%d.%m.%Y %H:%i:%s’);
ifnull()
age = ifnull(x,y) 如果x值为null则age=y 如果x不为null则age=x
聚合函数
对多行数据进行统计查询:
1. 求和 sum(求和的字段)
2.平均值  avg(字段)
3. 最大值  max(字段)
4.最小值  min(字段)
5. 计数 count(字段) 一般写count(
) 只有涉及null值时才使用字段名
字符串相关函数
1. char_length(str)获取字符串的长度
2. instr(str,substr) 获取substr在str中出现的位置 从1开始
3.insert(str,start,length,newstr)
4.lower(str) upper(str)
5.trim(str) 去两端空白
6.left(str,index) 从左边截取
7. right(str,index) 从右边截取
8.substring(str,index,?length) 从指定位置截取
9.repeat(str,count) 重复
10.replace(str,old,new) 替换
11.reverse() 反转
数学相关的函数
1. floor(num) 向下取整
2. round(num) 四舍五入
3. truncate(num,m) 非四舍五入
4.rand() 随机数0-1
  例:
  获取 0-5的随机整数
  select floor(rand()*6);
  获取3-6的随机整数 0-3 + 3
  select floor(rand()*4)+3;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值