首页 > 代码库 > MySQL入门

MySQL入门

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、修改密码

格式:mysqladmin -u用户名 -p 旧密码 password 新密码

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、显示数据库

命令:show databases (注意:最后有个s)
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 database();

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;

 

 

 

 

 

 

21分钟 MySQL 入门教程 - wid - 博客园 

Mysql命令大全 - 宁静.致远 - 博客园 

专栏:MySQL进阶指南 - 博客频道 - CSDN.NET http://blog.csdn.net/column/details/mysqlnote.html

国内MYSQL 技术博客

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

 

MySQL入门