MySQL基本语句与数据类型
数据库服务软件有 MySQL Oracle SQL_Server MongoDB DB2 Maraidb
MySQL特点
- 关系型数据库(innoDB)
数据以 行和列(表) 的形式去存储的
表中行: 一条记录 列: 一个字段
表和表之间的逻辑关联叫关系 - 非关系型数据库存储(mySAM)
以字典存储, 每条字典独立, 优点查询快
数据库软件\数据库\数据仓库,概念区分
- 数据库软件
可操作, 实现数据库的逻辑功能 - 数据库
逻辑概念, 存储数据, 侧重于存储 - 数据仓库
数据量特别庞大, 主要用于数据分析, 数据挖掘
MySQL 安装
- 安装服务端
sudo apt-get install mysql-server - 安装客户端
sudo apt-get install mysql-client
安装软件时,修复依赖关系
- sudo apt-get install update
- sudo apt-get -f install
设置环境变量的方法
- vi .bash_profile
- 添加如下内容保存退出
export PATH=${PATH}:/usr/local/mysql/bin - source .bash_profile
mysql -uroot -p密码
- 查看服务状态
sudo /etc/init.d/mysql start 启动服务端
sudo /etc/init.d/mysql status客户端连接
远程连接 mysql -h主机地址 -u用户名 -p密码
本地连接 mysql -hlocalhost -uroot -p123456
本地连接 mysql -uroot -p
基本SQL命令
1. 库
- 查看所有库
show databases; - 创建库(指定字符集)
Create database 库名 character set utf8; - 查看创建库的语句(查看字符集)
show create database 库名; - 查看当前所在库
select database(); - 切换库
use 库名; - 查看库中的表
show tables; - 删除库
drop database 库名;
2. 表
- 创建表(别忘了选择库, 指定字符集)
create table 表名(
字段名 char(10),
字段名 数据类型,
字段名 数据类型
)character set utf8;
字段名与数据类型以空格分隔 - 修改表名(rename)
alter table 表名 rename 新表名; - 查看创建表的语句(字符集,存储引擎)
show create table 表名; 查看表结构
desc 表名;desc开头 describe\descend\ascend
3. 表字段
- 语法: alter table 表名 ...;
- 添加字段(add)
alter table 表名 add 字段名 数据类型; 默认位置在最后
alter table 表名 add 字段名 数据类型 first;
alter table 表名 add 字段名 数据类型 after 字段名; - 删除字段(drop)
alter table 表名 drop 字段名; - 修改
修改字段数据类型(modify)
alter table 表名 modify 字段名 新的数据类型;- 会受到表中已有数据的限制
修改字段名(change)
alter table 表名 change 原字段名 新字段名
- 会受到表中已有数据的限制
- 查看表结构(查看表中字段)
desc 表名;
4. 表记录
- 插入(insert)
- insert into 表名 values(一条记录1),(一条记录2),(..);
- insert into 表名(字段1, 字段2)values(值1), (值2);
- 删除表记录(delete)
- delete from 表名 where 条件;
- 注意
一定要加where条件, 不加where条件全部删除表记录
- 更新表记录(update,set)
- update 表名 set 字段名1=值1,字段2=值2 where 条件;
- 一定要加where
- 查询(select)
- select * from 表名 where 条件;
- select 字段1, 字段2... from 表名 where 条件;
表字段, 表记录操作
表字段(alter table 表名) | 表记录 | |
---|---|---|
增: | add | insert into 表名 .. |
删: | drop | delete from 表名 .. |
改: | modify | update 表名 set ... |
查: | desc 表名; | select * from 表名 ... |
表的复制
- create table 表名 select ... from 表名 where 条件;
- 复制表结构
create table 表名 select ... from 表名 where false;
数据类型
- 数值类型
- 字符类型
- 枚举类型
日期时间类
- 日期时间函数
- 日期时间运算
- 运算符操作
- 模糊查询(like)
1. 数值类型
- 整型
- int 大整型(4个字节) 32位
取值范围: 0~(2^32 -1) 42亿多 - tinyint 微小整型(1个字节)
1. tinyint signed(默认):-128~127
2. tinyint nusigned: 0~255
age tinyint unsigned, - smallint 小整型(2个字节)
- bigint 极大整型(8个字节)
- 浮点型
- float(4个字节,最多显示7个有效位)
字段名 float(m,n)
m: 总位数最大为7
n: 小数位位数
例: float(5,2)取值范围: -999.99 ~ 999.99 - double(8个字节)
字段名 double(m,n) - decimal(m,n)
存储空间(整数部分, 小数部分分开存储)
规则: 将9的倍数包装成4个字节
余数 | 0 | 1-2 | 3-4 | 5-6 | 7-8 |
---|---|---|---|---|---|
字节 | 0 | 1 | 2 | 3 | 4 |
例:decimal(19,9)整数部分: 10/9=1余1 4字节+1字节 = 5小数部分: 9/9=1余0 4字节+0字节 = 4总共 : 9个字节
2. 字符类型
- char() : 定长
char(宽度) 宽度取值范围: 1 - 255
name char(20)
"A" --> 占20个字节 - varchar() : 变长__一定要传宽度值__
varchar(宽度) 宽度取值范围 : 1 - 65535 限制最大字符串长度 - text / longtext(4G) /blob /longblob
- char 和 varchar的特点
- char :浪费存储空间, 性能高
- varchar: 节省存储空间, 性能低
- 字符类型的宽度和数值类型的宽度的区别
- 数值类型宽度为显示宽度, 只用于select查询时显示, 和占用存储无关, 可用zerofill设置用0填充
例 id int(3) zerofill,(不够3个数左补零) - 字符类型的宽度超过后无法存储
3. 枚举类型
- 单选enum
sex enum('值', '值',...) DEFAULT '值', - 多选set
likes set('值', '值',...)
枚举类型使用示例
create table students( id int(3) zerofill,
name char(15),
age tinyint unsigned,
sex enum('male', 'female', 'secret'),
likes set('ml','killtime','sm','kickyouass'), score float(3,1)
)character set utf8;
指定为SET('one', 'two') NOT NULL
的列可以有下面的任何值:
''
'one'
'two'
'one,two'
4. 日期时间类
- date : 'YYYY-MM-DD'
- datetime : 'YYYY-MM-DD HH:MM:SS'默认值NULL
- timestamp : "YYYY-MM-DD HH:MM:SS"默认值CURRENT_TIMESTAMP
- time : 'HH:MM:SS'
1. 日期时间函数
- now()函数, 返回服务器当前日期时间"YYYY-MM-DD HH:MM:SS"
curdate() 当前日期'YYYY-MM-DD' curtime() 当前时间'HH:MM:SS'
- date('1999-09-09 09:09:09') 提取 年月日
- time('...') 提取 时分秒
year('...') 提取 年
select * from t2 where date(cztime) > '2018-08-00' ;
select * from t2 where date(cztime) <'2018-09-01' and date(cztime) > '2018-08-00';
2. 日期时间运算
1. 语法格式
select * from 表名
where 字段名 运算符(时间-interval 时间间隔单位);
时间间隔单位:2 day | 3 hour | 1 minute | 2 year | 3 month
- 示例
- 查询1 天以内的充值记录
select * from t2 where
cztime >= (now()-interval 1 day); - 查询1年以前的充值记录
select * from t2 where cztime < (now()-interval 1 year); - 查询1天以前, 3天以内的充值记录
select* from t2 where cztime cztime <= (now()-interval 1day) and cztime >= (now() - interval 3 day );
- 查询1 天以内的充值记录
3. 运算符操作
- 数值比较&&字符比较&&逻辑比较
- 数值比较: = != > >= < <=
- 字符比较: = !=
- 逻辑比较:and or
- 范围内比较
- between 值1 and 值2
- in(值1, 值2)
- not in(值1, 值2)
- 匹配空 和 非空
- 空: is null
- 非空: is not null
- 注意
- NULL :空值 , 只能用is, is not去匹配
- "" : 空值字符串,只能用 =, != 去匹配
- 模糊查询(like)
- where 字段名 like 表达式
- 表达式
- _: 匹配单个字符
- %: 匹配0到多个字符
转载于:https://www.cnblogs.com/ravener/p/9657327.html
MySQL基本语句与数据类型相关推荐
- MySQL语法语句大全
MySQL语法语句大全 一.SQL速成 ; B/ X* Q; t/ W) v" ]结构查询语言(SQL)是用于查询关系数据库的标准语言,它包括若干关键字和一致的语法,便于数据库元件(如表 ...
- php面试专题---MYSQL查询语句优化
php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...
- linux mysql select_MySQL-Select语句高级应用
阅读目录 1.1 SELECT高级应用 1.2 select中where子句使用 1.3 select中ORDER BY子句 1.4 LIMIT子句 1.5 多表连接查询 1.6 Informatic ...
- MySQL操作之JSON数据类型操作详解
MySQL操作之JSON数据类型操作详解 这篇文章主要介绍了MySQL操作之JSON数据类型操作详解,内容较为详细,具有收藏价值,需要的朋友可以参考. 概述 mysql自5.7.8版本开始,就支持了j ...
- mysql 查询和修改组合_## 超详细MySQL常用语句,增删查改
## MySQL常用语句,增删查改,安装配置mysql服务 ***#新手博客,应届生,谢谢支持哟 记得点赞关注哟*** ***-----sql常见命令:--------*** 安装服务:mysqld ...
- mysql decimal_MySQL系列之数据类型及约束
点击关注 不迷路 前言 上篇咱们介绍了MySQL的基本情况和建库建表语句,当然必不可少的增删改查中的增删改也一并介绍了一下,此处再次强调语句,删库需谨慎,三思而后行. 内容简介 本篇会分两部分介绍: ...
- vip2-day22 MySQL 基础语句
MySQL 8 新特性 数据字典:包含一个事务数据字典,用于储存有关数据库对象的信息.在之前的版本中,字典数据存储在元数据文件和非事务表中. 原子数据定义语句:支持原子数据定义语言(DDL). DDL ...
- Mysql常用语句帅哥特供版
[TOC] Mysql常用语句帅哥特供版 没错,这里的帅哥指的就是我自己 limit命令 查询 # limit命令 有两个参数, 第一个代表起始,从第几条开始. 第二个代表步长,取多少条. # 但是部 ...
- 两小时学会MySQL查询语句(下篇)
学生表 #创建表 CREATE TABLE LX_student( studentId INT(8) PRIMARY KEY NOT NULL, studentName VARCHAR(8) NOT ...
最新文章
- java基础 知识点
- malloc 就是返回开辟内存空间的首地址
- python面向对象(part1)--类和对象
- LeetCode 984. 不含 AAA 或 BBB 的字符串(贪心)
- C++中类和对象的一些注意事项 ---继承
- Java建造者模式详解
- Swiper学习之二---swiper的配置选项 ①
- 怎么看电脑配置高不高_辣椒产量高不高?关键看播种前的种子处理,你知道怎么做吗?...
- Excel--数据分列功能
- ssh配置config文件,实现vscode免密登陆
- 山西千年古堡张壁古堡:品“地道”中国年
- 【Frobenius norm(弗罗贝尼乌斯-范数)(F-范数)】
- 如何制作Android.9图片
- DVD管理系统修改版
- 【转】欧式空间与酉空间——概念区分
- CRM(客户关系管理)项目总结
- CDH集成了Kerberos后写入数据到HBase遇到的几个问题
- 统计源期刊《国际医学放射学杂志》
- 购买商品复选框全选 单选
- 计算机与应用课程,计算机基础与应用课程的教学探讨
热门文章
- Delphi中的指针类型
- VS2012发布网站详细步骤
- 判断某个元素是否使用jquery绑定方法
- bmp类型转成Halcon的Hobject类型
- dbeaver连接mysql 驱动jar_Jmeter(七) 从入门到精通 建立数据库测试计划实战lt;MySQL数据库gt;(详解教程)...
- 已知长短轴求椭圆上任意一点的坐标_高中数学必修2:平面解析几何——椭圆(经典习题)...
- linux bios芯片型号,如何准确判断主板BIOS类型 - 怎么看bios芯片型号_查看bios芯片型号...
- java php 单点登陆,cas实现单点登录,登出(java跟php客户端)(转)
- highstock 只显示所有 不显示 月_小米34寸曲面显示器深度体验 办公体验极佳 但是还有个大弱点...
- python能处理多大的数据包-利用Python进行数据处理(更新)