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 库名;
相关推荐
雨中风华4 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos
·云扬·4 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
野生技术架构师4 小时前
SQL语句性能优化分析及解决方案
android·sql·性能优化
爱吃生蚝的于勒4 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
The森4 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
翼龙云_cloud5 小时前
腾讯云代理商: Linux 云服务器搭建 FTP 服务指南
linux·服务器·腾讯云
纤纡.5 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
好好学习天天向上~~5 小时前
6_Linux学习总结_自动化构建
linux·学习·自动化
冉佳驹5 小时前
Linux ——— 静态库和动态库的设计与使用
linux·动态库·静态库·fpic