MySQL中的数据类型
MySQL有三大类数据类型, 分别为数字、日期时间、字符串, 这三大类中又更细致的划分了许多子类型:
- 数字类型
- 整数: tinyint、smallint、mediumint、int、bigint
- 浮点数: float、double、real、decimal
- 日期和时间: date、time、datetime、timestamp、year
- 字符串类型
- 字符串: char、varchar
- 文本: tinytext、text、mediumtext、longtext
- 二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob
这里不能详细对这些类型进行介绍了, 篇幅可能会很长, 详细介绍参见: 《MySQL数据类型》 : http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html
MySQL命令
1、连接Mysql
格式:mysql -h 主机名 -u 用户名 -p
- -h : 该命令用于指定客户端所要登录的MySQL主机名, 登录当前机器该参数可以省略;
- -u : 所要登录的用户名;
- -p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
以登录刚刚安装在本机的MySQL数据库为例, 在命令行下输入 mysql -u root -p 按回车确认, 如果安装正确且MySQL正在运行, 会得到以下响应:
Enter password:
若密码存在, 输入密码登录, 不存在则直接按回车登录。登录成功后你将会看到 Welecome to the MySQL monitor... 的提示语。
然后命令提示符会一直以 mysql> 加一个闪烁的光标等待命令的输入, 输入 exit 或 quit 退出登录。
在本地登录时可以不用 -h 主机名。
2、修改密码
3.1、创建数据库
使用 create database 语句可完成对数据库的创建, 创建命令的格式如下:
create database 数据库名 [其他选项];
例1:建立一个名为xhkdb的数据库mysql> create database xhkdb;
例2:创建数据库并分配用户
①CREATE DATABASE 数据库名;
②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';
③SET PASSWORD FOR '数据库名' @'localhost' = OLD_PASSWORD('密码');
依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。
3.2、显示数据库
mysql> show databases;
3.3、删除数据库
命令:drop database <数据库名>
例如:删除名为 xhkdb的数据库
mysql> drop database xhkdb;
例子1:删除一个已经确定存在的数据库
mysql> drop database drop_database;
例子2:删除一个不确定存在的数据库
mysql> drop database if exists drop_database;
3.4、连接数据库
两种方式对数据库进行使用的选择:
一: 在登录数据库时指定, 命令: mysql -D 所选择的数据库名 -h 主机名 -u 用户名 -p
例如登录时选择刚刚创建的数据库: mysql -D samp_db -u root -p
二: 在登录后使用 use 语句指定, 命令: use 数据库名;
use 语句可以不加分号, 执行 use samp_db 来选择刚刚创建的数据库, 选择成功后会提示: Database changed
3.5查看当前选择的数据库和表
MySQL中SELECT命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能?
显示MYSQL的版本
mysql> select version();
显示当前时间
mysql> select now();
显示年月日
SELECT DAYOFMONTH(CURRENT_DATE);
显示字符串
mysql> SELECT "welecome to my blog!";
当计算器用
select ((4 * 4) / 10 ) + 25;
串接字符串
select CONCAT(f_name, " ", l_name)
4、创建数据表
命令:create table <表名> ( <列1> <类型1> [,..<列n> <类型n>]);
例如,建立一个名为MyClass的表,
字段名 | 数字类型 | 数据宽度 | 是否为空 | 是否主键 | 自动增加 | 默认值 |
id | int | 4 | 否 | primary key | auto_increment | |
name | char | 20 | 否 | |||
sex | int | 4 | 否 | 0 | ||
degree | double | 16 | 是 |
mysql> create table class(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default '0',
> degree double(16,2));
以 "id int(4) not null primary key auto_increment" 行进行介绍:
- "id" 为列的名称;
- "int(4)" 指定该列的类型为 int,数据长度为4位;
- "not null" 说明该列的值不能为空, 必须要填, 如果不指定该属性, 默认可为空;
- "auto_increment" 需在整数列中使用, 其作用是在插入数据时若该列为 NULL, MySQL将自动产生一个比现存值更大的唯一标识符值。在每张表中仅能有一个这样的值且所在列必须为索引列。
- "primary key" 表示该列是表的主键, 本列的值必须唯一, MySQL将自动索引该列。
5、操作MySQL数据库
向表中插入数据
insert 语句可以用来将一行或多行数据插到数据库表中, 使用的一般形式如下:
insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
其中 [] 内的内容是可选的, 例如, 要给数据库中的 class表插入一条记录, 执行语句:
mysql> insert into class values(1,'Tom',1,96.45),(2,'Joan',1,82.99), (2,'Wang', 1,96.59);
有时我们只需要插入部分数据, 或者不按照列的顺序进行插入, 可以使用这样的形式进行插入:
insert into class (name, sex, age) values("Tiny", 1, 21);
查询表中的数据
select 语句常用来根据一定的查询规则到数据库中获取数据, 其基本的用法为:
select 列名称 from 表名称 [查询条件];
mysql>select id,age from class;
也可以查看表中所有列:
mysql>select * from class;
还可以使用限定条件:
mysql>select id,age from class where degree < 90;
更新表中的数据
update 语句可用来修改表中的数据, 基本的使用形式为:
update 表名称 set 列名称=新值 where 更新条件;
mysql> update class set name='Mary' where id=1;
删除表中的数据
delete 语句用于删除表中的数据, 基本用法为:
delete from 表名称 where 删除条件;
例如:删除表 MyClass中编号为1 的记录
mysql> delete from class where id=1;
6、对创建后表的修改
alter table 语句用于创建后对表的修改, 基础用法如下:
添加列
基本形式: alter table 表名 add 列名 列数据类型 [after 插入位置];
mysql> alter table class add birthday date after age; //date的格式为: “XXXX-XX-XX”,赋值时应加上双引号“”;
修改列
基本形式: alter table 表名 change 列名称 列新名称 新数据类型;
将 name 列的数据类型改为 char(16):
alter table class change name name char(16) not null;
删除列
基本形式: alter table 表名 drop 列名称;
示例:
删除 birthday 列:
alter table class drop birthday;
重命名表
基本形式: alter table 表名 rename 新表名;
示例:
重命名 class 表为 classmates:
alter table class rename classmates;
删除整张表
基本形式: drop table 表名;
示例: 删除 classmates 表:
drop table classmates;
删除整个数据库
基本形式: drop database 数据库名;
示例: 删除 samp_db 数据库:
drop database samp_db;
专栏:MySQL进阶指南 - 博客频道 - CSDN.NET http://blog.csdn.net/column/details/mysqlnote.html
http://isky000.com/ 简朝阳
http://www.ourmysql.com/
http://www.mysqlsupport.cn/
http://imysql.cn/ 叶金荣
http://www.mysqlab.net/blog/ 谭俊青
http://www.orczhou.com/
http://www.ningoo.net/ (oracle)
http://www.taobaodba.com/ taobao dba team
http://www.alidba.net/ alidba
http://chj733.spaces.live.com/ 八神
http://www.hellodba.net/
http://www.dbanotes.net/
http://dbahacker.com/
http://www.mysqlsystems.com/
http://www.helpphp.cn/category/php-mysql
http://zhaolinjnu.blog.sohu.com/
http://hi.baidu.com/dbaeyes
http://hi.baidu.com/thinkinginlamp 老王
http://hi.baidu.com/liuzhiqun/blog/category/Mysql
http://zhaolinjnu.blog.sohu.com/
http://www.yayu.org/categroy.php?id=9
http://blog.csdn.net/radkitty/category/471279.aspx