数据表插入新字段(新增列):使用alter table NAME add column COLUMN_NAME TYPE;可以在名为NAME的数据表最后添加一个名为COLUMN_NAME、类型为TYPE的字段。如果在数据表的中间加入新字段(新列),使用alter table NAME add column COLUMN_NAME TYPE after ORIGIN_COLUMN;可以将新字段添加到指定原字段ORIGIN_COLUMN的后面,如果要插入在表格最前面,使用first来替代after ORIGIN_COLUMN即可。
向数据表中插入数据记录(新增数据记录):使用命令insert into TABLE1 values('Peter','Edward','2020-02-02',....);可以向数据库中的数据表中添加数据记录。插入的数据需要按照创建数据表时的顺序和类型要求,进行输入。如果插入数据记录是全的,可以用上面一种形式,如果插入乱序或者不全的数据记录,使用insert into TABLE1(field1,field2,......,fieldN) values(value1,value2,......,valueN);,其中只需前后括号中的字段和字段值的N相等即可,N和数据表的字段总数可以不一致(前提是不书写的字段可以默认是空)(即插入数据记录时,只需填写不能为空的字段)。
也可以使用set关键字进行数据插入,使用insert into TABLE1 set field1=value1, field2=value2,......,fieldN=valueN;。
set和insert into的主要区别在于:insert能一次插入多条数据记录:insert into TABLE1(field1,field2,......,fieldN) values(value1,value2,......,valueN①),(value1,value2,......,valueN②),(value1,value2,......,valueN③);
复制数据表(新增数据记录):复制已有的数据表,用两个语句实现:①create table TABLE2 like TABLE1;复制数据表格式;②insert into TABLE2 select * from TABLE1;复制数据表数据记录。如果数据表在不同的数据库中,在use DB2;的情况下,将上文的TABLE1改成DB1.TABLE1即可。
如果需要再已有空表中复制进另一张数据表,可以先删除表,再用之前的名字新建一张数据表。
查询数据库服务器中的数据库:使用命令show databases;可以将数据库服务器中的数据库列在终端上。
进一步,要知道数据库使用的字符编码,使用show create database DB01;就可以看到DB01使用的字符编码。
查看数据库中的数据表:使用命令show tables;可以得到选中数据库中所有的数据表。
查看数据表单的详情:使用命令describe TABLE1;或desc TABLE1可以查看创建好的数据表的结构。其中数据表中的字段和其相应属性等会列在输出中。Field表示字段,Type表示变量类型,Null表示是否支持空值,Key表示约束条件相关内容,Default表示默认值,Extra表示备注。
另外,可以使用show create table TABLE1 \G;查看更全面的表定义信息,如数据库存储引擎和字符集编码。
查询表单内容(查数据记录):使用命令select * from TABLE1 [where header1=1];可以在选中数据库后查看数据库中的表单。中括号中可以添加查询条件,也可以不加。(这里的一个*表示一条数据记录的全部内容)如果只需要部分字段的字段值,可以将*改成指定的字段名,多个字段名之间用逗号分隔。
利用as或空格可以进行别名。如select COL1 A1,COL2 A2 from TABLE1;或select COL1 as A1,COL2 as A2 from TABLE1;就可以将COL1和COL2列的字段名称变成A1和A2。
完整的select语法如下:select [all/distinct] COL/* [as XXX] from TABLE where CONDITION group by CONDITION having CONDITION order by CONDITION limit CONDITION;要按照相对顺序进行书写,不然会报错。如果别名有MySQL保留关键字或者有空格,必须加引号,MySQL中单引号和双引号等效。XXX表示字段别名,并不修改字段名,只是将字段或者字段表达式在显示时使用别名。同样,更改显示顺序也只需要将COL1和COL2等字段的顺序在上述查询语句中掉换即可。
下面重点说说select查操作的附加条件子句:
COL1和COL2这些字段可以进行运算,换而言之,select后可以跟的不止字段本身,也可以是和字段有关或无关的字段表达式(及函数)。
all/distinct:表示查询显示的数据记录是否显示重复数据,distinct表示去重;all或者不加此选项表示不去重,显示重复数据。
order by COL asc/desc:表示展示数据的顺序是按照COL字段进行升序/降序排列,desc表示降序排列,asc或只用order by表示(默认)升序排列。
limit:表示展示数据记录的条数,limit的语法为limit offset_start,row_count两个参数表示从第offset_start行开始,取row_count条数据记录。如果只写一个参数,表示取row_count条数据记录。