SQL:ansi sql 标准定义的时间
SQL-86,SQL-89,SQL-92,SQL-92,SQL-99,SQL-03
mysql的数据类型:
- 字符型(商品信息 籍贯 姓名 生产厂家)
- 数值型(成绩 年龄 工资)
- 日期时间型(注册时间 约会时间 开会时间 入职时间 生日)
- 枚举类型(插入记录 记录的值 在例子的范围内选择)
- 内建型
字符型:
char(255字节),binary #固定长数据类型
varchar(65532字节),varbinary #变长数据类型 需要结束符(占有1个空间)
区别:
- 前不区分大小写后区分
- 实际上char必须满足存储的数量,不满足会自动用空格补充上,varchar是有多少存储多少不会自动空格补上
- char的性能优于varchar
大文本类型(音频文件 视频文件 图片文件)
TEXT:tinttext,text,mediumtext,longtext
BLOB:tintblob,blob,mdeiumblob,longblob
#区分:(极小2^8,中2^16,大2^32)
数值型:
精确数值型
整数:tinyint,smallint,mediumint,int,bigint
十进制型:decimal
近似数值型
浮点数:
float(M,N)
double(M,N)
M 设置总位数
N 设置小数位置数位
bit
日期时间型
date(日期) YYYYMMDD 2017.11.12
time(时间) HHMMSS 20:15:25
datetime(日期时间) YYYYMMDDHHMMSS 2017.11.11-20:20:20
timestamp #时间戳(格林制)
year #日期时间
mysql来获取时间
mysql> select now() #获取当前系统的时间
mysql> select year(now()) #获取指定时间中的日年
mysql> select moth(now()) #获取指定时间中的月份
mysql> select day(now()) #获取指定时间中的天
mysql> select time(now()) #获取指定时间中的时间
例子(一):
CREATE TABLE t5(name char(15),age tinyint(3)unsigned,pay float(7,2),email varchar(30),birthday date,up_time time,start_year year,party datetime); #创建表
insert into t5 values('jingjing',day(now()),18000,"jingjing@13.com",date(now()),time(now()),year(201110806),now()); 利用函数给表中赋予数值
insert into t5(pay) values(12345); #单独对某一个索引赋予值,然后其余都是null
例子(二):
create table t6(metting datetime,party timestamp);
insert into t6values(now(),now());
insert into t6(party) values(20180101020202);
insert into t6(metting) values(20200202030303);
select * from t6;
字符类型修改饰符
not null #非空约束
null:
default 'string' #指明默认值
character set''
unsigned #不使用负数
枚举类型
enum 只能选择一个
set 选择一个或多个
例如:
create table t7(name char(15),sex enum('boy','girl','no'),likes set('woman','game','money','flim','eat','fuck'));
inset into t7 values('aa','girl','eat,fuck');
SQL语句结构
- 1.数据查询语言(DQL:data query language)
where,order by,grounp by,having - 2.数据操作语言(DML:data maniputation language)
insert,updata,delete - 3.事务处理语言(YPL)
类似于shell脚本,begin,transaction,commit,rollback - 4.数据控制语言(DCL)
确定单个用户和用户组对数据库对象的访问 - 5.数据定义语言(DDL)
- 6.指针控制语言(CCL)
查询数据库版本:
mysql -V
关于数据库的操作
查询:
mysql -e 'show databases;' -uroot -p123456 #不登入数据库实现查询数据
mysqlshow -uroot -p123456 #简写的不登入数据库实现查询数据
创建:
create databases 数据库名
登入数据库后:create databases HA;
- 查看mysql的配置文件:cat /etc/my.cnf
- 查看数据库的存放位置:ls /usr/local/
- 查看当前所在的库位置:select database()
选择数据库:
use 库名称;
NULL意味着没有选择数据库!
未登入库选择使用的库:
mysql -u -p 库名称
删除数据库:
drop database `HA-test`;
修改数据库密码
set password for root@localhost =password('123456');
也可以直接在mysql目录文件下删除。
选择一个库创建一个表:
create table student(id int(20),name char(40),age int)
设置默认编码为utf8:
set names utf8;
导入导出数据库
导入时必须有个空的数据库
mysql -e "create databases 库名字" -u root -p password
导入数据①:
mysql -u root -p password 库名字</文件路径.sql
或在交互界面使用:
create database 库名字;
导入数据②:
use 库名字;
source /文件路径.sql
show tables;
I believe you have mentioned some very interesting points , thankyou for the post.