博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day2-mysql基本命令和数据类型
阅读量:4514 次
发布时间:2019-06-08

本文共 3907 字,大约阅读时间需要 13 分钟。

库和表

库是用来存表的。一个数据库管理系统中可能包含若干个数据库。一个库中可以存放多个表,表类似于一个表格,有规律和格式的存储数据。

mysql安装好后系统自带的库有

information_schema:是一个信息数据库,它保存着关于MySQL服务器所维护的所有其他数据库的信息。(如数据库名,数据库的表,表栏的数据类型与访问权 限等。) 

mysql:mysql的核心数据库,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。(常用的,在mysql.user表中修改root用户的密码)。 

performance_schema:主要用于收集数据库服务器性能参数。

sys:Sys库所有的数据源来自:performance_schema。目标是把performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容。让DBA更快的了解DB的运行情况。 

 

操作库的命令

查询库

show databases;

新增库

create database 
<数据库名>
;

删除库

drop database 
<数据库名>
;

使用库

use 
<数据库名>
;

 

操作表命令

查询库中的表

show tables;

创建表

CREATE TABLE student (  stu_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,  stu_name varchar(20) NOT NULL COMMENT '学生姓名',  stu_age int(3) NOT NULL DEFAULT NULL COMMENT '学生年龄',  stu_weight decimal(5,2) DEFAULT '0.00' COMMENT '体重',  create_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间') ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='学生信息表';
 

  相关字段描述

NOT NULL 字段不能为空
AUTO_INCREMENT 自动增长
PRIMARY KEY 主键,唯一用来标识数据行的,它是不能为空的,最好每个表都要设置一个主键
COMMENT  字段描述
DEFAULT  默认值
CURRENT_TIMESTAMP    当前时间戳
ENGINE=InnoDB 数据库储存引擎
UNIQUE 数据内容不能重复
UNSIGNED 无符号,主要是用在数值字段上修饰,不能为负数

 

 

 

 

 

 

 

 

 

查看表结构信息

desc 
<表名>
;

  查看表创建

show create table 
<表名>
;

  删除表

drop table 
<表名>
;

  表重命名

RENAME TABLE 原名 TO 新名;ALTER TABLE 原名 RENAME 新名;ALTER TABLE 原名 RENAME TO 新名;

  修改表字段

#添加一列ALTER TABLE 表名字 ADD 列名字 数据类型 约束; #删除一列ALTER TABLE 表名字 DROP 列名字; #修改一列ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束; #改变数据类型ALTER TABLE 表名字 MODIFY 列名字 新数据类型;

 

操作数据命令

     添加数据

#根据列插入数据 insert into student (stu_name, stu_age) values (’李贵’,20); #根据表字段插入输入insert into student values (1,’李贵’,20,60.70,’2019-05-16 00:26:16’);

删除数据

#删除所有字段delete from student; #删除符合条件字段delete from student where id = 1;

  查询语句

#查询所有表数据select * from student;    #查询指定字段的所有数据select stu_name, stu_age from student; #条件查询select * from student where stu_sex = '男';select * from student where stu_age > 20;注意:* 代表所有字段

  修改数据

update student set stu_age=20,stu_name='张三' where id = 1; 注意:没有where条件会将该表所有数据都修改

 

  添加约束

  添加主键约束

alter table 表名 add constraint pk_student primary key 表名(主键字段);

删除主键约束

alter table 表名 drop primary key;

 

添加唯一约束

alter table 表名 add unique key 约束名 (字段);

 

 

数据类型

 整数型

  

  小数型

float         浮点型,数值范围为-3.4E38~3.4E38(7个有效位)

double     双精度实型,数值范围-1.7E308~1.7E308(15个有效位)

decimal    数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)

  例如:price decimal(5,2) 该表达式的取值范围是-999.99~999.99

 

字符串类型

char         长度255

varchar    长度65535

CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符。 CHAR列的长度固定为创建表时声明的长度。当保存CHAR值时,

在它们的右边填充空格以达到指定的长度,而varchar是根据字符串实际长度保存。如果varchar都不够存可以使用text和longtext

 

时间类型

时间类型DATE, DATETIME

MySQL以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值
比较日期的大小可以使用比较运算符

select * from student where s_begin > '2004-01-01';

 

select sysdate() '系统时间';select now()    '当前时间';select curdate() '当前日期';select curtime() '当前时分秒';

 

sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了:

select now(), sleep(3), now();select sysdate(), sleep(3), sysdate ();

 

被格式化的时间

select DATE_FORMAT(now(),'%Y/%m/%d %T') ;

 

根据format字符串格式化date值:

%S, %s   两位数字形式的秒( 00,01, ..., 59)
%I, %i     两位数字形式的分( 00,01, ..., 59)
%H          两位数字形式的小时,24 小时(00,01, ..., 23)
%h          两位数字形式的小时,12 小时(01,02, ..., 12)
%k          数字形式的小时,24 小时(0,1, ..., 23)
%l           数字形式的小时,12 小时(1, 2, ..., 12)
%T         24 小时的时间形式(hh:mm:ss)
%r          12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)
%p         AM或PM
%W        一周中每一天的名称(Sunday, Monday, ..., Saturday)
%a         一周中每一天名称的缩写(Sun, Mon, ..., Sat)
%d         两位数字表示月中的天数(00, 01,..., 31)
%e         数字形式表示月中的天数(1, 2, ..., 31)
%D        英文后缀表示月中的天数(1st, 2nd, 3rd,...)
%w        以数字形式表示周中的天数( 0 = Sunday, 1=Monday, ..., 6=Saturday)
%j          以三位数字表示年中的天数( 001, 002, ..., 366)
%U        周(0, 1, 52),其中Sunday 为周中的第一天
%u         周(0, 1, 52),其中Monday 为周中的第一天
%M        月名(January, February, ..., December)
%b         缩写的月名( January, February,...., December)
%m        两位数字表示的月份(01, 02, ..., 12)
%c         数字表示的月份(1, 2, ...., 12)
%Y        四位数字表示的年份
%y         两位数字表示的年份

 

 

 

转载于:https://www.cnblogs.com/lisglg/p/10873124.html

你可能感兴趣的文章
C#高级编程(第7版) Professional C# 4 and .NET 4 - 读书笔记
查看>>
ipad4自动下载了ios8的安装包,好几个G啊,不想更新,怎么删了呢?
查看>>
JS中的Navigator 对象
查看>>
Android 开源控件与常用开发框架开发工具类
查看>>
记录一次网站打开卡--排故障过程
查看>>
第四章小结
查看>>
Windows7下python2.7.6环境变量配置
查看>>
java设计模式------代理模式
查看>>
WPF学习笔记----注释标记,使用自定义资源字典(style)文件的流程
查看>>
元素定位的八大法则
查看>>
Sublime Text 3 使用小记
查看>>
总结Pycharm里面常用的快捷键
查看>>
util.promisify 的那些事儿
查看>>
配置phpstudy+phpstorm+xdebug环境
查看>>
BZOJ 1079 [SCOI2008]着色方案
查看>>
[Win8.1系统]双系统
查看>>
HDU 3899 树形DP
查看>>
继承上机作业
查看>>
设计模式 4/23 建造者模式
查看>>
Logging in Java
查看>>