MySQL(注意:Windows系统下不区分大小写,Linux与Unix系统下字段名、数据库名和表名均要区分大小写,这里所说均在Windows系统下)
一.部分DDL(数据库定义语言(Data Definition Language))
1.创建数据库
create database 自定义数据库名;
2.显示所有数据库
show databases;
3.显示单个数据库
show create database 数据库名;
4.修改数据库编码
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET编码方式 COLLATE 编码方式_bin;
例如:ALTER DATABASE firstdb DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;可以处理新建的表中文乱码问题。
注意:这里的编码方式_bin中的bin是这个编码方式的一类。
5.删除数据库
DROP DATABASE 数据库名;
6.创建表
语法:create table 表名{
列名(字段名),数据类型[约束],
... ...
}
注意:在建表时应该进入数据库,并且判断数据库表是否存在。
如下:
use 数据库;
--删除已经存在的与当前即将创建的表相同名的表
drop table if exits 表名;
CREATE TABLE 表名(
列名1 INT PRIMARY KEY auto_increment,
列名2 VARCHAR(20) NOT NULL
)
例如:use firstdb;
DROP TABLE if EXISTS users;
CREATE TABLE users
(
id INT PRIMARY KEY auto_increment,
name VARCHAR(20) NOT NULL,
sex enum('男','女') NOT NULL
上面:ENGINE=INNODB DEFAULT CHARSET=utf8;可以处理在建表的时候出现的中文乱码问题。
)ENGINE=INNODB DEFAULT CHARSET=utf8;
二.数据类型
1.整数类型
tinyint:1字节,无符号(0-255),有符号(-128-127)。
smallint:2字节
mediumint:3字节
int:4字节
bigint:8字节
2.浮点型
float:4字节
double:8字节
3.定点数
decimal(数据长度,小数长度)
例:3.45445 decimal(5,3) 的结果:3.454
4.日期时间类型
(1)year:如果输入字符串'00'-'99'之间的数时,'00'-'69'的年表示2000-2069,'70'-'99'的年表示1970-1999;如果输入数字00-99之间的数时,1-69的年表示2001-2069,70-99的年表示1970-1999。
注意:需要区分字符的'0'与数字的0,'0'表示2000年,0表示值0000。
(2)date:可以存储YYYY-MM-DD和YYYYMMDD格式的字符串值或者存储YY-MM-DD和YYMMDD格式的字符串值,还可以使用YY-MM-DD和YYMMDD的数字格式。
例如:'2017-2-14'或'20170214','17-2-14'或'170214',17-02-14或170214。
注意:使用now()或者current_date表示当前系统时间(如2017-2-14)。
(3)time:可以存储'D HH-MM-SS'格式的时间,D表示日,0-34之间的值表示的小时数为D*24,例如:'2 12:32:25'表示的时间是:'60:32:25';也可以使用HHMMSS的字符串或数字格式表示时间,例如:'144025'和1440425都表示14:40:25。
注意:使用now()或者current_time表示当前系统时间(如20:49:20)。
(4)datetime:日期+时间,如可以以'YYYY-MM-DD HH-MM-SS'等格式存储。
例如:'2017-02-14 20:55:20','20170214205520'或20170214205520,'17-02-14 20:55:20'或170214205520。
注意:使用now()获取当前系统日期时间(如2017-02-14 20:55:20)。
(5)timestamp:时间戳,和datetime不同的地方是:使用current_ timestamp可以输入当前日期和时间,输入null时系统会输入当前MySQL系统的日期和时间,不输入任何数据时,系统会输入当前MySQL系统的日期和时间。
5.字符串类型
char:存储固定
varchar:存储可变
定义语法:char(长度)和varchar(长度)
例如:char(10) varchar(10)(char和varchar的区别)
'abc',在char中存储10个字节,在varchar中存储3个字节。
text:存储大文本。
tinytext:存储0-255个字节。
mediumtext
longtext
6.枚举类型
enum:只能输入枚举中的数据。