linux中mysql服务的数据类型和约束,以及常用的sql语句

数据类型和sql语句

数据类型和完整性约束

字符串类型

复制代码
字符串类型
char:列的长度固定为创建表时声明到长度:0-255
varchar:列中的值为可变字符串,长度:0-65535
在检索时,char列删除了尾部空格,而varchar则保留这些空格
					
binary和varbinary类似于char和varchar,
不同的是他们包含二进制字符,而不包含非二进制字符串
					
枚举型字符类型:enum:单选,只能在给定的范围选一个值				
集合型字符类型:set:多选,在给定的范围选一个或多个以上的值

数值类型

复制代码
数值类型
整数类型:int
tinyint(有符号型最大值127)
int整型的宽度仅显示为宽度,不是限制,因此建议整形无需指定宽度
整型的宽度仅为显示宽度,不是限制。因此建议整型无须指定宽度。
						
浮点数类型:float
浮点数和定点数都可以用类型名称后面加(M.D)的方式来表示(M.D)表示一共显示M位数字(总数位+小数位)
其中D位于小数点后面,M和D又称为精度和标度
float经常会出现小数部分数据丢失情况,原因是小数部分十进制转换二进制不能完全匹配,只能就近匹配,所以会造成数据丢失情况,小数位数多的建议使用double和decaimal
						
float:浮点型,含字节数4,32bit
double:双精度实型,含字节数8,64bit
decimal:数字型,128bit

时间和日期类型

复制代码
data:年月日
time:时分秒
datatime:年月日 时分秒
year:年份

注意:
插入年份时,尽量使用4位值
插入两位年份时,以69为分界线,<=69,是20开头
						 > 69,是19开头

完整性约束

复制代码
约束又称索引。用于保证数据的完整性和一致性
				
primary key(pk):标识该字段为该表的主键,可以唯一的标识记录,不可以为空
foreign key(fk):表示该字段为该表的外键,实现表与表(父表主键/子表1外键/子表2外键)之间的关联
unique key(uk):标识该字段的值是唯一的,可以为空,一个表中可以有多个uk
auto_increment:标识该字段值自动增长,(整数类型,而且为主键)
default:为该字段设置默认值
not null:标识该字段不能为空值
unsigned:无符号型
zerofill:使用0填充
			
主键处理可以写在某一列的后面,也可以在独立一行声明
多列做主键称为复合主键

sql语句

增加

创建数据库

sql 复制代码
create database 数据库名;

create database 数据库名 default charset 'UTF8';      //创建数据库并制定字符类型

mysql创建用户

sql 复制代码
grant all on *.* to '用户名'@'%' identified by "密码";

建表

sql 复制代码
create table 表名(表头 字段类型(字符长度),表头 字段类型);

create table 表名 (表头,表头) values("内容","内容")engine =innodb;   //建表时候指定引擎


例:create table 表名(name varchar(50),age int);

插入数据

sql 复制代码
insert into  表名 values  ("内容","内容"); 
insert into 表名 (表头,表头) values("内容","内容");

例:insert into 表名 (name,age) values("xiaonan","21");

给表新增字段

复制代码
alter table 表名 add 新增字段名 新增字段类型 新增字段约束 插入哪里;

after 某个字段    //在某个字段后插入
first            //加入到最开始
不写             //默认加入到最后

修改

修改表名

复制代码
rename table 原表名  to  新表名;

alter table 原表名 rename to 新表名;

修改字段名称以及约束、字段类型

复制代码
alter table 表名 change 原字段名 修改后的字段名 字段类型 约束;

修改字段类型以及约束条件

复制代码
alter table 表名 modify 字段名 字段类型 约束;

修改字段

sql 复制代码
alter table 表名 change  旧字段  新字段 修饰符;    //change修改字段名称,类型,约束,顺序

alter table 表名 modify  字段  属性 修饰符;       //modify 不能修改字段名称

查询

查询当前数据库时间

复制代码
select now();

查询当前登录数据库的用户

复制代码
select user();

查询当前用户权限

复制代码
show grants;       //查询用户创建语句

查询数据库

sql 复制代码
show databases;

查询当前所在库

复制代码
select database();

查询表

复制代码
show tables;

查询建造过程

复制代码
show create table 表名;     //查询建表过程

show create database 库名;   //查询建库过程

查询表内容

复制代码
select * from 表名;

查询表结构

复制代码
desc 表名;

删除

删除字段

复制代码
alter table  表名  drop  字段;  

删除数据

复制代码
delete from  表名 where  主键字段=' ';  

delete from 表名;   //删除表中所有数据

删除表

复制代码
drop table 表名;

删除库

复制代码
drop database 库名;
相关推荐
Gauss松鼠会18 分钟前
【GaussDB】使用MySQL客户端连接到GaussDB的M-Compatibility数据库
数据库·mysql·gaussdb
YouEmbedded36 分钟前
解码Linux文件IO之系统IO
linux·服务器·文件io·系统io接口
半桔43 分钟前
【网络编程】从数据链路层帧头到代理服务器:解析路由表、MTU/MSS、ARP、NAT 等网络核心技术
linux·运维·服务器·网络
fanstuck43 分钟前
开源项目重构我们应该怎么做-以 SQL 血缘系统开源项目为例
数据库·sql·重构·数据挖掘·数据治理
先知后行。44 分钟前
MySQL常用API
数据库·mysql
程序猿小三7 小时前
Linux下基于关键词文件搜索
linux·运维·服务器
虚拟指尖8 小时前
Ubuntu编译安装COLMAP【实测编译成功】
linux·运维·ubuntu
刘某的Cloud9 小时前
parted磁盘管理
linux·运维·系统·parted
啊?啊?9 小时前
4 解锁 Linux 操作新姿势:man、grep、tar ,创建用户及添加权限等 10 大实用命令详解
linux·服务器·实用指令
程序员老舅9 小时前
干货|腾讯 Linux C/C++ 后端开发岗面试
linux·c语言·c++·编程·大厂面试题