mysql的一点点札记

mysql的一点点札记

mysql的一点点笔记

——————————–

创建数据库:

create database dbname

显示数据库

Show databases

——————————–

选择数据库:use dbname

——————————–

删除数据库:drop database dbname

——————————–

表的创建、复制、删除、和修改

1、创建表:create table tname 字段名 字段类型 字段约束

字段类型有:

int:整形数 

double :双精度浮点数

char :最大长度不超过255个字符的定长字符串

varchar :最大长度不超过255个字符的变长字符串

text :最大长度为65535的字符串

blob :可变数据的二进制类型

date :YYYYMMDD格式表示的日期值

字段约束

1、null or not null指定允许(或不允许)某字段为空,默认为null

2、default 为某字段指定一个默认值

3、auto_increment 自动为某个int字段生成一个递增加1的整数

表级约束

1、primary key:为表指定主键

2、foreign key:为表指定外键

3、index:创建索引

4、unique:为某个字段建立索引,该字段的值必须惟一

5、fulltext:为某个字段建立全文索引

表类型

1、myisam:具有很多优化和增强的特性,是mysql默认的表类型

2、isam:类似myisam,但是功能较少

3、heap:保存在内存中,存取速度快,但存储容量较小,一旦失败就无法恢复

4、bdb:支持事物和页锁定

5、innodb:支持事物、外键和行锁定,它是mysql中最完善的表格式

6、merge:可把多个myisam表构建为一个虚拟表,使得对这些表的查询仿佛在一个表上进行,提高了查询速度和修复效率,并节省了磁盘空间。

——————————————

describe tname 查看所创建表的结构。

注意1、mysql默认将表中第一个字段设为 主键(不变的、惟一的标识符)

2、mysql默认表的类型为myisam

——————————————

复制表

create 新表名 like 源表名;

show tables(显示当前数据库中所有的表)

——————————————

删除表

drop table 表名称

——————————————

修改表

alter table 表名称 更改动作1,更改动作2···

1、增加字段:

例:在表 xtable 中增加一个字段 saddress

alter table xtable add saddress varchar(25);

2、更改字段名和字段类型:

例:将表xtable中字段saddress名称改为sremark

alter table xtable change saddress sremark varchar(25)

注意,即使仅仅改变xtable中的字段名称而不改变字段类型,change子句后也必须给出该字段的字段类型

3、删除字段:

例:要删除表xtable中的字段sremark

(命令)alter table xtable drop sremark;

4、更改表名称:

例:将student表的名称更改为xs

(命令)alter table student rename to xs;

———————————————–

表中数据的插入、删除和修改

1、插入记录

在mysql中插入记录

例:在表student中插入一组数据

命令:insert into student (字段名1,字段名2···) values(字段1的值,字段2的值,···)

需要注意的几个问题:

@1:如果在insert语句中给出了要插入记录的各个字段名,那么各字段值的顺序只需与各个字段名的顺序相一致,与表中的顺序(可以用describe命令查看)可以不同。但是当使用缩写格式时,各字段值的顺序则必须与表中的顺序相一致。

在插入与前面相同的记录,可以直接使用insert into student values (字段1的值,字段2的值···)

@2:如果字段名列表中没有给出表中的某些字段,当然在字段值列表中也不应给出这些字段的值,那么这些字段的值将会自动设置为默认值。

@3:在一个单独的insert语句中使用多个values子句,可插入多条记录。

2、删除记录

(命令):delete from 表名称 where 条件表达式

例:删除表student中,sno字段,值为‘0321002’的记录

delete from student where sno=‘0321002’;

使用带where子句的delete语句可以删除与制定条件相匹配的记录。只要满足条件,被删除的记录可能只有一条,也可能有多条。

例:从表student中删除sno字段值的前4位为‘0322’的所有记录。

可以使用:delete from student where left(sno,4)=‘0322’

此外如果想删除表中所有记录,则可以不带where子句的delete命令。

(命令):delete from student;

另外一种删除表中所有记录的方法是使用truncate命令

(命令):truncate table student;

相比之下truncate命令比delete命令要快,特别是在表中记录非常多时尤为明显。

3、修改记录

(命令):update 表名称 set 字段1=字段1值,字段2=字段2值··· where 条件表达式;

例:要修改表student中的sno字段值为‘0321002’的记录,将其sbirthday字段值改为19871112、sdepa字段值改为‘math’。

(命令):update student set sbirthday=19871112,sdepa=‘math’ where sno=‘0321002’;

小心!

使用时千万不要忘掉使用where限制语句,否则可能会发生严重后果。

———————————————–

索引的创建与删除

1、在创建表的同时创建索引

在使用create table 语句创建表student时,使用primary key 子句为该表指定了一个主键sno,mysql就会自动为该表的sno字段创建索引。此外,在创建表时,还可以用index子句或unique子句来创建索引。

例:要创建一个选课课程表course,将课程编号cno字段定义为主键,同时为课程名称cname字段创建一个名为cna的索引。

(命令):create table cource(

->cno varchar (5) not null,

->cname varchar (30) not null,

->teacher varchar (20),

->primary key (cno),

->index cna (cname)

->);

此外如果将index cna (cname)改为unique(cname),则创建的是unique索引,该索引要求索引字段中的值必须是唯一的。也就是说,表中各条记录中该字段的值不能相同。

2、向已存在的表添加索引

使用create index语句:

create (unique)or index 索引名 on

mysql的一点点札记

相关文章:

你感兴趣的文章:

标签云: