--创建数据库:
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;