上回说道MySQL数据库的一些基本操作今天,给大家分享的是MySQL的一些命令结构和类型
MySQL名词解释:
DB:DataBase
数据库: 依靠某种数据模型进行组织并存放到存储器的数据集合
DBMS
数据库管理系统:用来操纵和管理
DBS
带有数据库,数据库管理系统的服务器
管理数据库是使用sql命令: (结构化查询语言)
MySQL指令:换及环境切换,看状态,退出等控制
SQL指令: 数据库定义,查询,操纵,授权语句
注意事项:
不区分大小写(密码,变量值除外)
分类:
DDL 数据定义语言
DML 数据操作语言
DCL 数据控制语言
DTL 数据事物语言
##基本操作命令:
create database 库名; #创建库
show databases; #查看已有库
drop database 库名; #删除库
use 库名; #切换库
show tables; #查看库里已有的表
select database(); #查看当前所在的库
select * from 库名.表名; #查看表内容
desc 库名,表名 #查看表结构
##建表命令:
create table 库名.表名(字段名 字符类型,
字段名 数字类型,
......
);
例:create table dc.xx(name char(5),nianling int);
库名.表名 (名 文字类型(5),第二列名 数字类型);
insert into 库名.表名 values(值列表)一个括号一行 #插入表记录
例:insert into gamedb.stu values("jim",21),("tom",29);
库名.表明 (值列表,),(值列表);
delete from 库名.表名 #删除表记录
drop table 表名 #删除表
数据库类型:分为整型,浮点型,字符型,日期时间型,枚举型.
整型(整数)
根据存储数值的范围类型有,小整型,微小整型
tinyint 1字节 -128~127 0~255无符号
smallint 2字节 -32768~32767 0~65535
mediumint 3字节 -2
int
bigint
一般在整型方面基本用int足够,看个人喜好.
浮点型,分为单精度和双精度
float 单精度浮点数(n,m)
double 双精度浮点数(n,m)
n表示:总位数
m表示:小数位的位数
字符类型:定长 变长 大文本
char varchar blob/text
定长: 最大长度为255字节
变长:按数据实际大小分配储存空间
大文本:字符数大于65535存储时使用
日期时间类型:
年 year 年 2017 YYYY
日期 DATE 年月日 20171220 YYYYMMDD
时间 time 时分秒 155145 HHMMSS
日期时间:
datetime 年月日时分秒 YYYYMMDDHHMMSS
timestamp 年月日时分秒 YYYYMMDDHHMMSS
例:
mysql> create table dc.cc(
-> name char(10),
-> nianling tinyint,
-> nian year,
-> shijian time,
-> shengri date,
-> yuehui datetime
-> );
atetime/timestamp区别:
当位给timestamp字段赋值时,自动以当前系统时间赋值,而DA字段默认赋值位NULL
使用时间函数给日期时间类型的字段赋值:
now() year() month() day() date() time()
例:
insert into dc.cc values("tom",19,year(now()),time(now()),date(now()),now());
枚举类型: 字段的值只能在列举的范围内选择
字段名 enum(值列表) 单选值
字段名 set(值列表) 多选
设置字段约束条件:作用限制如何给字段赋值。
null 允许为空,默认位置
not null 不允许为空
注##### 姓名不能设置默认值为空.
例:mysql> create table t2( name char(10) not null, age tinyint default 23, sex enum("my","you") not
名字 类型(10) 不为空 , 年龄 类型 不为空 23 , 性别 单选值 ("我","你") 不为
null default "my" );
空 默认值 "my");
表结构调整:::
格式:
mysql> alter table 表名 执行动作(做什么操作);
mysql> alter table 表名 执行动作; }#添加新字段,默认在最后。
alter table q3 add stu_id int first;
表名 添加 字段名 类型 前面;
add 字段名 类型(宽度) 约束条件, }
add 字段名 类型(宽度) 约束条件 first; #所有字段的前面
add 字段名 类型(宽度) 约束条件 after 字段名; #在什么字段后面添加
alter table drop 字段名; #删除字段
alter table q3 drop stuid;
表名 字段名
alter table modify 字段 类型(宽度) 约束条件 #修改字段类型
alter table change 原字段名 新字段名 类型(宽度) 约束条件 #修改字段名
alter table 原表名 rename 新表名; #修改表名
综合例子:
mysql> create table zonghe.banji(
库名.表名(
-> xingming char(5),
项 文件类型(参数)
-> nianling int,
数字类型
-> xingbie enum("nan","nv"),
枚举类型
-> rexue datetime,
时间类型
-> xuefei float(5,2)
浮点类型
-> );