时间:2021-07-01 10:21:17 帮助过:8人阅读
可以发现,在上面的列表中除了刚刚创建的 test1 外,还有另外 4 个数据库,它们都是安装MySQL 时系统自动创建的,其各自功能如下。
information_schema:主要存储了系统中的一些数据库对象信息。比如用户表信息、列信息、权限信息、字符集信息、分区信息等。
cluster:存储了系统的集群信息。
mysql:存储了系统的用户权限信息。
test:系统自动创建的测试数据库,任何用户都可以使用。
在查看了系统中已有的数据库后,可以用如下命令选择要操作的数据库:USE dbname
然后再用以下命令来查看 test1 数据库中创建的所有数据表:mysql> show tables;
2.删除数据库
删除数据库的语法很简单,如下所示:drop database dbname;
例如,要删除 test1 数据库可以使用以下语句:mysql> drop database test1;
注意:数据库删除后,下面的所有表数据都会全部删除,所以删除前一定要仔细检查并做好相应备份。
3.创建表
在数据库中创建一张表的基本语法如下:
1 2 3 4 5 | CREATE TABLE tablename ( column_name_1 column_type_1 constraints, column_name_2 column_type_2 constraints , …… column_name_n column_type_n constraints) |
因为 MySQL 的表名是以目录的形式存在于磁盘上,所以表名的字符可以用任何目录名允许的字符。column_name 是列的名字,column_type 是列的数据类型,contraints 是这个列的约束条件。
例如,创建一个名称为 emp 的表。表中包括 3 个字段,ename(姓名),hiredate(雇用日期)、sal(薪水),字段类型分别为 varchar(10)、date、int(2):
1 2 3 4 5 | mysql> create table emp( ename varchar(10), hiredate date, sal decimal(10,2),deptno int(2)); Query OK, 0 rows affected (0.02 sec) |
表创建完毕后,如果需要查看一下表的定义,可以使用如下命令:DESC tablename
虽然 desc 命令可以查看表定义,但是其输出的信息还是不够全面,为了查看更全面的表定义信息,有时就需要通过查看创建表的 SQL 语句来得到,可以使用如下命令实现:mysql> show create table emp \G;
1 2 3 4 5 6 7 8 9 10 11 12 13 | *************************** 1. row *************************** Table: emp Create Table: CREATE TABLE ‘emp‘ ( ‘ename‘ varchar(20) DEFAULT NULL, ‘hiredate‘ date DEFAULT NULL, ‘sal‘ decimal(10,2) DEFAULT NULL, ‘deptno‘ int(2) DEFAULT NULL, KEY idx_emp_ename‘ (‘ename‘) ) ENGINE=InnoDB DEFAULT CHARSET=gbk 1 row in set (0.02 sec) ERROR: No query specified mysql> |
从上面表的创建 SQL 语句中,除了可以看到表定义以外,还可以看到表的 engine(存储引擎)和 charset(字符集)等信息。“\G”选项的含义是使得记录能够按照字段竖着排列,对于内容比较长的记录更易于显示。
4.删除表
表的删除命令如下:DROP TABLE tablename
例如,要删除数据库 emp 可以使用以下命令:mysql> drop table emp;
5.修改表(重要)
对于已经创建好的表,尤其是已经有大量数据的表,如果需要对表做一些结构上的改变,我们可以先将表删除(drop),然后再按照新的表定义重建表。这样做没有问题,但是必然要做一些额外的工作,比如数据的重新加载。而且,如果有服务在访问表,也会对服务产生影响。因此,在大多数情况下,表结构的更改一般都使用 alter table 语句,以下是一些常用的命令。
(1) 修改表类型,语法如下:
ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
例如,修改表 emp 的 ename 字段定义,将 varchar(10)改为 varchar(20):mysql> alter table emp modify ename varchar(20);
(2) 增加表字段,语法如下:
ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]
例如,表 emp 上新增加字段 age,类型为 int(3):mysql> alter table emp add column age int(3);
(3)删除表字段,语法如下:
ALTER TABLE tablename DROP [COLUMN] col_name
例如,将字段 age 删除掉:mysql> alter table emp drop column age;
(4)字段改名,语法如下:
ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name]
例如,将 age 改名为 age1,同时修改字段类型为 int(4):mysql> alter table emp change age age1 int(4) ;
注意:change 和 modify 都可以修改表的定义,不同的是 change 后面需要写两次列名,不方便。但是 change 的优点是可以修改列名称,modify 则不能。
(5)修改字段排列顺序。
前面介绍的的字段增加和修改语法(ADD/CNAHGE/MODIFY)中,都有一个可选项 first|after column_name,这个选项可以用来修改字段在表中的位置,默认 ADD 增加的新字段是加在表的最后位置,而 CHANGE/MODIFY 默认都不会改变字段的位置。
例如,将新增的字段 birth date 加在 ename 之后:mysql> alter table emp add birth date after ename;
修改字段 age,将它放在最前面:mysql> alter table emp modify age int(3) first;
注意:CHANGE/FIRST|AFTER COLUMN 这些关键字都属于 MySQL 在标准 SQL 上的扩展,在其他数据库上不一定适用。
(6)表改名,语法如下:ALTER TABLE tablename RENAME [TO] new_tablename
例如,将表 emp 改名为 emp1,命令如下:mysql> alter table emp rename emp1;
详解MySQL第一篇—MySQL简要介绍及DDL语句
标签:udp 删除数据库 技术支持 nim erro 一段 实现 输入密码 lib