五、表的基本操作
1、创建表
语法:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
例:
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));
2、删除表
语法:drop table <表名>
mysql> drop table Class;
DROP TABLE用于删除一个或多个表。你必须有每个表的DROP权限。所有的表数据和表定义会被删除,属于DDL操作,所以使用本语句要小心!
注意:对于一个带分区的表,DROP TABLE会永久性地删除表定义,删除各分区,并删除储存在这些分区中的所有数据。DROP TABLE还会删除与被删除的表有关联的分区定义(.par)文件。
对于不存在的表,使用IF EXISTS用于防止错误发生。当使用IF EXISTS时,对于每个不存在的表,会生成一个NOTE。
RESTRICT和CASCADE可以使分区更容易。目前,RESTRICT和CASCADE不起作用。
3、向表中插入数据
语法:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
mysql> insert into Class values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
注意:insert into每次只能向表中插入一条记录。
4、查询表中的数据
1.查询所有行
命令: select <字段1,字段2,...> from < 表名 > where < 表达式 >
例如:查看表 Class 中所有数据
mysql> select * from MyClass;
2.查询前几行数据
例如:查看表 Class 中前2行数据
mysql> select * from MyClass order by id limit 0,2;
select一般配合where使用,以查询更精确更复杂的数据。
5、删除表中的数据
语法:delete from 表名 where 表达式
mysql> delete from Class where id=1;
注意:delete删除数据时,要有where条件,否则会删除掉所有数据。最好先将delete换成select查看下要删除的内容。
6、修改表中的数据
语法:update 表名 set 字段=新值,… where 条件
mysql> update Class set name='Mary' where id=1;
例1:单表的MySQL UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
例2:多表的UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]
UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有的行。如果指定了ORDER BY子句,则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。
7、增加/删除字段
语法:alter table 表名 add 字段名 类型 其他;
语法:alter table 表名 drop 字段名 ;
mysql> alter table Class add passtest int(4) default '0'
mysql> alter table Class drop passtest
修改原字段名称及类型:
mysql> ALTER TABLE Class CHANGE old_field_name new_field_name field_type;
加索引
mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
例: mysql> alter table employee add index emp_name (name);
加主关键字的索引
mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);
加唯一限制条件的索引
mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique emp_name2(cardnumber);
删除某个索引
mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;
8、修改表名
语法:rename table 原表名 to 新表名;
mysql> rename table Class to YClass;
当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。
如果在多表更名中,MySQL 遭遇到任何错误,它将对所有被更名的表进行回退更名,将每件事物退回到最初状态。