mysql数据库数据类型

--创建数据库:

CREATE  DATABASE [IF NOT EXISTS] db_name   

       [create_specification [, create_specification] ...]

 

create_specification:   

 

    [DEFAULT] CHARACTER SET charset_name 

|   [DEFAULT] COLLATE collation_name

CHARACTER SET:指定数据库采用的字符集

COLLATE:指定数据库字符集的比较方式、规则,比如排序

--创建一个名称为mydb1的数据库。

mysql> create database mydb1;

Query OK, 1 row affected (0.12 sec)

--创建一个使用utf8字符集的mydb2数据库。

--如果不存在就创建,if not exists

--如果存在就不创建

mysql> create database if not exists mydb2 character set UTF8;

Query OK, 1 row affected (0.00 sec)

--创建一个使用utf8字符集,并带校对规则的mydb3数据库。

mysql> create database if not exists mydb3 character set UTF8 collate utf8_gener

al_ci;

Query OK, 1 row affected (0.00 sec)

--查看当前数据服务器有多少数据库

--show databases;(以分号结束,sql与大小写无关)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| ajax               |

| city               |

| combobox           |

| db_cityinfo        |

| db_database16      |

| db_database20      |

| db_easyui          |

| db_studentinfo     |

| demo               |

| hibernate          |

| itcast0807crm      |

| jsp                |

| mydb1              |

| mydb2              |

| mydb3              |

| mysql              |

| news               |

| page               |

| performance_schema |

| sh_pms             |

| sky                |

| student            |

| test               |

| tree               |

| xk                 |

+--------------------+

26 rows in set (0.00 sec)

--显示数据库创建

mysql> show create database mydb2;

+----------+----------------------------------------------------------------+

| Database | Create Database                                               |

+----------+----------------------------------------------------------------+

| mydb2   | CREATE DATABASE `mydb2` /*!40100 DEFAULT CHARACTER SET utf8 */ |

+----------+----------------------------------------------------------------+

1 row in set (0.00 sec)

--删除数据库

mysql> drop database if exists mydb1;

Query OK, 0 rows affected (0.06 sec)

--修改数据库编码:

mysql> alter database mydb3 character set gbk;

Query OK, 1 row affected (0.00 sec)

 

mysql> show createdatabase mydb3;

+----------+---------------------------------------------------------------+

| Database | Create Database                                              |

+----------+---------------------------------------------------------------+

| mydb3   | CREATE DATABASE `mydb3` /*!40100 DEFAULT CHARACTER SET gbk */ |

+----------+---------------------------------------------------------------+

1 row in set (0.00 sec)

CREATE TABLE table_name

(

       field1  datatype,

       field2  datatype,

       field3  datatype

)character set 字符集 collate 校对规则

field:指定列名 datatype:指定列类型

 

--为mydb3创建表

mysql> use mydb3;--使用数据库

Database changed

line 1

mysql> create table if not existsusers(name varchar(20) not null);

Query OK, 0 rows affected (0.63 sec)

mysql> insert into users(name)values('jack');

Query OK, 1 row affected (0.07 sec)

备份数据库表中的数据(退到window命令行窗口)

       mysqldump-u 用户名 -p 数据库名 > D:\文件名.sql

恢复数据库(进入mysql控制台)

       sourced:\文件名.sql

备份命令

c:\>mysqldump -u root -p mydb2 >d:\mydb2.sql

 

显示表结构

mysql> create table user(id int,

   -> name varchar(20),

    -> password varchar(6),

   -> birthday date);

Query OK, 0 rows affected (0.80 sec)

 

mysql> desc user;

+----------+-------------+------+-----+---------+-------+

| Field   | Type        | Null | Key |Default | Extra |

+----------+-------------+------+-----+---------+-------+

| id      | int(11)     | YES  |     |NULL    |       |

| name    | varchar(20) | YES  |     | NULL   |       |

| password | varchar(6)  | YES |     | NULL    |      |

| birthday | date        | YES |     | NULL    |      |

+----------+-------------+------+-----+---------+-------+

4 rows in set (0.03 sec)

mysql数据类型

分类

数据类型

说明

 

 

 

 

数值类型

BIT(M)

TINYINT [UNSIGNED] [ZEROFILL]

BOOL,BOOLEAN

SMALLINT [UNSIGNED] [ZEROFILL]

INT [UNSIGNED] [ZEROFILL]

BIGINT [UNSIGNED] [ZEROFILL]

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

位类型。M指定位数,默认值1,范围1-64

带符号的范围是-128到127。无符号0到255。

使用0或1表示真或假

2的16次方

2的32次方

2的64次方

M指定显示长度,d指定小数位数

表示比float精度更大的小数

 

 

文本、二进制类型

CHAR(size) char(20)

VARCHAR(size)  varchar(20)

BLOB   LONGBLOB

TEXT(clob)          LONGTEXT(longclob)

固定长度字符串

可变长度字符串

二进制数据

大文本

时间日期

DATE/DATETIME/TimeStamp(登录时间)

日期类型(YYYY-MM-DD)  (YYYY-MM-DD HH:MM:SS),TimeStamp表示时间戳,它可用于自动记录insert、update操作的时间

l      VARCHAR、BLOB和TEXT类是变长类型。每个类型的存储需求取决于列值的实际长度。

(1)Date/Datetime/TimeStamp,定界符使用''或"",但部份数据库可能不支持"",优先推荐''作为定界符,对于日期类型,                                    MySQL数据库有一个的判段-功能

   (2)varchar(变长)/char(定长)

   (3)Text(大于65536字符的数据)/Blob(存储二进制多媒体数据,例如Mp3等),该二类型都有四个子类型,根据存储内容的大                                      小进行选择

   (4)INT型有带符号和无符号之分,int(5)表示int默认为5位,如果插入id值,小于5位,左补空格,如果插入id值,大于5位,按                               照插入值,但必须满足int类型的大小确定

   (5)FLOAT(M,D),D表示小数点后的D位,按四舍五入计算,M表示除小数点外的所有位数总和 

--插入日期数据:date,定界符使用' '或" ",oracle使用' ',优先推荐' '作为定界符

mysql> insert into uservalues(1,'jack','aaa','1990-02-12');

Query OK, 1 row affected (0.07 sec)

 

mysql> select * from user;

+------+------+----------+------------+

| id  | name | password | birthday   |

+------+------+----------+------------+

|   1 | jack | aaa      | 1990-02-12|

+------+------+----------+------------+

1 row in set (0.00 sec)

--日期类型不带引号会出错

mysql> insert into uservalues(1,'jack','aaa',1990-02-12);

ERROR 1292 (22007): Incorrect date value:'1976' for column 'birthday' at row 1

--删除表:

mysql> drop table user;

Query OK, 0 rows affected (0.74 sec)

--datetime数据类型:

mysql> create table user(id int,

   -> name varchar(20),

   -> password varchar(6),

    -> birthday datetime);

Query OK, 0 rows affected (1.10 sec)

mysql> insert into uservalues(1,'jack','aaa','1990-02-12 13:56:34');

Query OK, 1 row affected (0.13 sec)

 

mysql> select * from user;

+------+------+----------+---------------------+

| id  | name | password | birthday           |

+------+------+----------+---------------------+

|   1 | jack | aaa      | 1990-02-1213:56:34 |

+------+------+----------+---------------------+

1 row in set (0.00 sec)

--timestamp(登录时间,用得比较多)类型:

mysql>

mysql> create table user(id int,namevarchar(20), password varchar(6),birt

imestamp);

Query OK, 0 rows affected (1.13 sec)

--显示表信息

mysql> desc user;

+----------+-------------+------+-----+-------------------+---------------

--------+

| Field   | Type        | Null | Key |Default           | Extra

       |

+----------+-------------+------+-----+-------------------+---------------

--------+

| id      | int(11)     | YES |     | NULL              |

       |

| name    | varchar(20) | YES  |     | NULL              |

       |

| password | varchar(6)  | YES |     | NULL              |

       |

| birthday | timestamp  | NO   |     | CURRENT_TIMESTAMP | on update CURR

MESTAMP |

+----------+-------------+------+-----+-------------------+---------------

--------+

4 rows in set (0.01 sec)

--各种数据类型综合

mysql> create table employee(id int,

   -> name varchar(20),

   -> sex varchar(20),

   -> birthday date,

   -> entry_date date,

   -> job varchar(20),

   -> salsay float(5,1),

    -> resume text);

Query OK, 0 rows affected (0.87 sec)

mysql> insert into employeevalues(1,'jack','aaa','2013-11-09','2013-12-17','sof

tware',5000.1,'hello');

Query OK, 1 row affected (0.06 sec)

mysql> select * from employee;

+------+------+------+------------+------------+----------+--------+--------+

| id  | name | sex  | birthday   | entry_date | job      | salsay | resume |

+------+------+------+------------+------------+----------+--------+--------+

|   1 | jack | aaa  | 2013-11-09| 2013-12-17 | software | 5000.1 | hello  |

+------+------+------+------------+------------+----------+--------+--------+

1 row in set (0.00 sec)

mysql>

--MySQL解决插入中文乱码问题(WindowXP平台)

--二种解决方案:

-- a)在当前MySQL客户端修改输入和输出的MySQL环境变量为GBK或GB2312,注意,--该种方式只在当前窗口中有效

-- b)修改MySQL目录下的my.ini文件,将客户端的缺省编码方式改为GBK或GB2312,注意,需要重新启动MySQL服务

 
修改客户端输入和输出使用的编码方式,与WindowXP平台一致
set character_set_client=gbk;
set character_set_results=gbk;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值