1.操作命令
查看当前MySQL中有哪几个数据库:show databases; 创建一个数据库:create database dbName; 如果防止数据库重名:create database if exists dbName; 删除一个数据库:drop database dbName;
如果防止删除不存在的数据库:drop database if exists dbName; 进入一个数据库:use dbName;
查看当前这个数据库中有哪几个表:show tables; 查看某一个表的表结构:desc tablename;
2. 数据类型: (1)数值型: A. 整形: 类型 大小 范围(有符号) 范围(无符号) tinyInt 1个字节 -28---28-1 0----28 smallInt 2个字节 -216---216-1 0----216 medium3个字节 -224----224-1 0----224 Int int -232-----232-1 0----232 4个字节 bigInt -264-----264-1 0-----264 8个字节
在MySQL中整形类型后可以跟一个整数,这个整数时显示宽度指示器,当从数据库中检索一个值时,可以把这个值加长到指定的长度。例如,指定一个字段的类型为int(6),就可以保证所包含的数字少于6位的时候自动在前面补0。
对于应用无符号整形时,在字段约束中加unsigned,这时所用的就是无符号整形。
如果加入zerofill约束,当位数不够时,默认以0补充。所以如果加了这个约束,就必须添加正整数的值。 B.浮点型: 类型 大小 范围 范围 用途 float 4个字节 单精度浮点值 Double或8个字节 双精度 real 浮点数值 Double precision Decimal或 decimal(m,d) 小数值 如果M>D为 M+2,否则为D+2 当定义浮点型值时,也可以用附加参数:一个显示宽度指示器和一个小数点指示器。例如,Float(5,2)规定显示的值不会超过5位数字,小数点后带有2位数。
如果小数点后面的数字个数超出了允许的数目的值,系统会自动将它四舍五入为最接近它的值,然后插入。如果插入的值长度超过了设置,则会报错。例如,如果插入1234,789,则小数点后会保留2位,单是总长度超过,会报错。小数点后不足的位数补0。
注意:如果前一个值小于后一个值则会报错,所以,M必须大于D;
Decimal 数据类型用于要求非常高的精确度的计算中。这种类型允许指定数值的精确度和计数法作为选择参数。精确度在这里是指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的个数。例如,decimal(5,2)规定了存储的值将不会超过5位数字,并且小数点后面有2位数字。
注意:MySQL在内部把数据存储为字符串,更精确地保留它们的值。
忽略decimal数据类型的精确度和技术方法修饰符将会使MySQL把所有标识为这个类型的字段的精度默认为10,计算方法默认为0。
Unsigned和zerofill修饰符也可应用在float,double,decimal类型。 C. 字符串类型 MySQL字符串类型 类型 大小 用途 char 0~28-1字节 定长字符串 varchar ? 变长字符串 tinyBlob 0~28-1字节 不超过255个字符的二进制字符串 tinyText 0~28-1字节 短文本字符串 Blob 0~216-1字节 二进制形式长文本数据 Text 0~216-1字节 长文本数据 MediumBlob 0~224-1字节 二进制形式的中等长度文本数据 MediumText 0~224-1字节 中等长度文本数据 LongBlob 0~232-1字节 二进制形式的极大文本数据 LongText 0~232-1字节 极大文本数据 (1)Char和Varchar类型:
Char 类型:用于定长字符串,必须在其后的括号中给出长度参数。例如,char(5):该字段长度为5个字符,如果不足5个则用空格从后面补充;如果超出5个则会报错。这个长度参数的大小,最大是255。
Varchar类型:可变长字符串,也必须在其后的括号中给出长度参数。
Char和varcha类型的区别是:char类型把这个值作为准确值;varchar把它视为最大值,并且只使用了存储字符串的实际上需要的字节数(增加一个额外的字节记录长度)。如果存储的值超过了长度参数的值,会报错。 (2) Text和Blob类型: Dec numeric Blob类型区分大小写;Text类型是不区分大小写。 D. 日期和时间类型: MySQL日期类型 类型 大小 范围 格式 Date 1000-01-01~ YYYY-MM-D3字节 D 9999-12-31 Time HH:MM:SS 3字节 DateTime 1000-01-01 YYYY-MM-D8字节 00:00:00~ D HH:MM:SS 9999-12-31 23:59:59 Year 1901~2155 YYYY 1字节 TimeStamp 8字节 1970-01-01 YYYYMMDDHHMMSS 00:00:00~ 2037年 用途 日期型 E. 枚举类型:
Enum类型允许从集合中选择单个值时,通常用于互斥的数据值。 用法如下:
Create table test(
Id int(5) primary key, Gender Enum('M',F') );
Insert into test values(1,'M'); Insert into test values(1,'F');
Set类型:不同于Enum的是它允许从列表中选择多个值。 Create table test(
Id int(5) primary key,
Gender Set('A' , 'B' ,'C', 'D', 'E' , 'F') );
Insert into test values(1,'A,B,C'); Insert into test values(1,'F'); Insert into test values(1,'A, E');
3. 字段约束: not null 和 null
表示这个字段是否可以为空,默认是可以为空; default
表示这个字段的默认值是什么,如,default ‘hh’;
如果没有指定这个字段默认值是多少,则会根据情况: 如果这个字段可以为空,则会赋值为null;
如果这个字段不可以为空,则会根据情况赋值默认值: (1) 如果这个字段是数值类型,则会赋值为0;
(2) 如果这个字段是字符类型,则会赋值为空字符串;
(3) 如果这个字段是时间类型,则会赋值为当前的日期和时间 (4) 如果这个字段是枚举类型,则会赋值为枚举组的第一条 Auto_increment
只适用于int 类型,表示这个字段会根据插入记录的条数自动递增。
这对于主键是非常有用的,如果主键设为Auto_increment,则在插入数 据时,可以省略主键的插入值。 Primary key
设置主键。不能为空且其值表中唯一。 Eg1:
create table tableName(
Id int(10) Auto_increment primary key, Name varchar(50) not null ); Eg2:
create table tableName(
Id int(10) Auto_increment, Host int(10) Auto_increment, Name varchar(50) not null, primary key(Id,Host) );
对于eg1,这种格式的主键设置方式,只能设置这一个字段为主键; 对于eg2, 这种格式的主键设置方式,可以设置多个字段为联合主键;
因篇幅问题不能全部显示,请点此查看更多更全内容