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 库名;
相关推荐
念白4432 分钟前
智能病历xml提取
数据库·sql·oracle
菲兹园长22 分钟前
表的设计(MYSQL)
数据库·mysql
Java Fans37 分钟前
MySQL数据库常用命令大全(完整版——表格形式)
数据库·mysql
白萝卜弟弟1 小时前
【MySQL】MySQL函数之JSON_EXTRACT
数据库·mysql·json
gjh12081 小时前
MySQL常见面试题
数据库·mysql
我的K84091 小时前
Flink整合Hive、Mysql、Hbase、Kafka
hive·mysql·flink
Biomamba生信基地1 小时前
Linux也有百度云喔~
linux·运维·服务器·百度云
new_abc2 小时前
Ubuntu 22.04 ftp搭建
linux·运维·ubuntu
flying robot2 小时前
RPM的使用
linux