create命令格式:create database <数据库名>;
注意:创建数据库之前要先连接Mysql服务器。
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('密码');
2、show databases命令用于显示所有数据库。
show databases命令格式:show databases; (注意:最后有个s)
例如:mysql> show databases;
3、drop命令用于删除数据库。
drop命令格式:drop database <数据库名>;
例如,删除名为 xhkdb的数据库:
mysql> drop database xhkdb;
4、use命令可以让我们来使用数据库。
use命令格式: use <数据库名>;
例如,如果xhkdb数据库存在,尝试存取它:
mysql> use xhkdb;
屏幕提示:Database changed
5、select命令表示当前选择(连接)的数据库。
select命令格式:mysql> select database();
MySQL中SELECT命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能呢?
6、create table命令用来创建数据表。
create table命令格式: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 MyClass(
> 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));
7、desc命令用于获取数据表结构。
desc命令格式:
desc 表名;
同样
show columns from 表名;
也能获取数据表结构。
举例如下:
mysql> desc MyClass;
mysql> show columns from MyClass;
8、drop table命令用于删除数据表。
drop table命令格式:drop table <表名>;
例如,删除表名为 MyClass 的表:
mysql> drop table MyClass;
DROP TABLE用于删除一个或多个表。您必须有每个表的DROP权限。所有的表数据和表定义会被取消,所以使用本语句要小心!
9、insert into命令用于向表中插入数据。
insert into命令格式:insert into <表名> [(<字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )];
例如:往表 MyClass中插入两条记录,这两条记录表示:编号为1的名为Tom的成绩为96.45,编号为2 的名为Joan 的成绩为82.99,编号为3 的名为Wang 的成绩为96.5。
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
10、select from命令用来查询表中的数据。
1) 查询所有行
命令格式: select <字段1, 字段2, ...> from < 表名 > where < 表达式 >;
例如,查看表 MyClass 中所有数据:
mysql> select * from MyClass;
2) 查询前几行数据
例如,查看表 MyClass 中前2行数据:
mysql> select * from MyClass order by id limit 0,2;
11、select一般配合where使用,以查询更精确更复杂的数据。
delete from命令用于删除表中的数据。
delete from命令格式:delete from 表名 where 表达式
例如,删除表 MyClass中编号为1 的记录:
mysql> delete from MyClass where id=1;
12、update set命令用来修改表中的数据。
update set命令格式:update 表名 set 字段=新值,… where 条件;
举例如下:
mysql> update MyClass 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];
13、alter add命令用来增加表的字段。
alter add命令格式:alter table 表名 add字段 类型 其他;
例如,在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0:
mysql> alter table MyClass add passtest int(4) default '0';
1) 加索引
mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
例子: mysql> alter table employee add index emp_name (name);
2) 加主关键字的索引
mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);
3) 加唯一限制条件的索引
mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique emp_name2(cardnumber);
4) 删除某个索引
mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;
5) 增加字段
mysql> ALTER TABLE table_name ADD field_name field_type;
6) 修改原字段名称及类型
mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
7) 删除字段
MySQL ALTER TABLE table_name DROP field_name;
rename命令格式:rename table 原表名 to 新表名;
例如,在表MyClass名字更改为YouClass:
mysql> rename table MyClass to YouClass;
当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。
如果在多表更名中,MySQL 遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。
RENAME TABLE 在 MySQL 3.23.23 中被加入。
15、mysqldump命令用来备份数据库。
mysqldump命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目录下执行。
1) 导出整个数据库(导出文件默认是存在mysql\bin目录下)
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql
2) 导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql
3) 导出一个数据库结构
mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
4) 带语言参数导出
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql
例如,将aaa库备份到文件back_aaa中:
[root@test1 root]# cd /home/data/mysql
[root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa