1.ALTER TABLE 语句:用于在已有的表中批量添加、修改或删除列
(1)在表中添加列,请使用下列语法:
ALTER TABLE table_name ADD column_name datatype
例如:在User表中新添加一列age(datatype:integer),并设置默认值为0
ALTER TABLE User ADD age integer default 0
(2)在表中某一列后添加列,请使用下列语法:
ALTER TABLE table_name ADD column_name varchar(20) after column_name;
例如:在User表中的name列后面添加一列age
ALTER TABLE table_name ADD name varchar(20) after age;
(3)要删除表中的列,请使用下列语法:
ALTER TABLE table_name DROP COLUMN column_name
例如:在User表中删除一列age(datatype:integer)
ALTER TABLE User DROP COLUMN age
注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)
(4)要改变表中列的数据类型,请使用下列语法:
ALTER TABLE table_name ALTER COLUMN column_name datatype
例如:在User表中将列age数据类型修改为vercher
ALTER TABLEUser ALTER COLUMN age vercher
2.Drop语句:删除一张表
语法:DROP TABLE table_name
例如:删除数据库中的user表
DROP TABLE user;
3.Truncate语句: 清空某张表,但保留表的结构及对象
语法:TRUNCATE TABLE table_name
例如:清空user表数据
TRUNCATE TABLE user
4.Insert语句:插入数据
语法: insert into table_name(列名1,列名2,...列名n) values(值1,值2,...,值n);
例如:向user表中添加一条数据
insert into user(id,name,age) values(1,张三,18);
5.Delete语句:删除表数据
(1)删除表的部分数据:
语句: Delete from table_name where 条件;
例如:删除user表中id=1的人
Delete from user where id=1;
(2)删除表的所有数据,效果和Truncate语句一样
语句: Delete from table_name;
例如:删除user表中id=1的人
Delete from user ;
6.Update语句:修改数据
语句:updata table_nameset 列=新值 where 条件内容 ;
例如:修改user表中id=1的人的名字为张三
updata user name=张三 where id=1
7.INSERT INTO … SELECT语句:从一个表复制数据,然后把数据插入到一个已存在的表中
(1)用于创建表的备份复件或者用于对记录进行存档
(2)目标表中任何已存在的行都不会受影响,目标表为要插入数据的表(这里指:table2)
(3)可以从一个表中复制所有的列插入到另一个已存在的表中:
语句:INSERT INTO table2 SELECT * FROM table1;
(4)只复制希望的列插入到另一个已存在的表中:
语句:INSERT INTO table2(column_name(s)) SELECT column_name(s) FROM table1;
8.SELECT INTO 语法:用于创建表的备份复件或者用于对记录进行存档
(1)可以把所有的列插入新表:
SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename
例如:制作 "User" 表的备份复件
SELECT * INTO User_backup FROM User
(2)或者只把希望的列插入新表:
SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename
(3)IN 子句可用于向另一个数据库中拷贝表:
例如:SELECT * INTO User IN 'Backup.mdb' FROM User
(4)可以添加 WHERE 子句
//通过从 "User" 表中提取居住在 "Beijing" 的人的信息
例如:SELECT LastName,Firstname INTO User_backup FROM User WHERE name='张三'
(5)从一个以上的表中选取数据也是可以做到的
//创建一个名为 "Persons_Order_Backup" 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息
例如:SELECT Persons.LastName,Orders.OrderNo INTO Persons_Order_Backup
FROM Persons INNER JOIN Orders ON Persons.Id_P=Orders.Id_P
注意:
(1)mysql 数据库是不支持 SELECT INTO FROM 这种语句的
(2)可以使用以下两种语句代替
<1>CREATE TABLE new_table_name (SELECT * FROM old_table_name );
例如:Create table User_backup (Select * from User)
其中:User_backup表在数据库中必须不存在,否则报错提示:Table 'User_backup ' already exists
<2>INSERT INTO new_table_name SELECT * FROM old_table_name
8.注意事项:
(1)在进行数据Delete,Update操作时,如果不是用主键当where语句,会报错
(2)因为MySql运行在safe-updates模式下,会导致非主键条件下无法执行update/delete命令
(3)执行命令SET SQL_SAFE_UPDATES = 0;修改下数据库模式
(4)想要提高数据库安全等级,可以恢复回原有的设置,
(5)执行命令:SET SQL_SAFE_UPDATES = 1