创建数据表
create table
table_name
(column_name column_type);
例子:
create table cus_tb1 (
cus_id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
cus_firstname VARCHAR(100) NOT NULL,
cus_username VARCHAR(100) NOT NULL,
PRIMARY KEY (cus_id)
);
查看数据表
show tables;
查看数据表结构
desc table_name; //\G表示以美化方式查看
修改数据表
在 MySQL 中,ALTER 语句用来修改数据表名称或者数据表字段名称。也可以用来添加或者删除数据表字段。
ALTER 语句经常和 "ADD", "DROP" and "MODIFY" 命令一起使用。
添加列 (add)
alter table table_name add new_column column_defination [ first | after column_name];
参数:
table_name: 要修改的表的名称。
new_column_name: 要添加到数据表 table_name 的新字段。
column_definition: 定义新字段的数据类型,(NULL or NOT NULL, 等)。
first | after column_name: 这里是一个选项,告诉 MySQL 新字段在数据表中的位置。如果没有这个参数,新字段将被添加到数据表所有字段的末尾。
例子:往cus_tb1中添加新字段
alter table cus_tb1 add cus_age varchar(40) not null;
添加多列到数据表中 (通过逗号分离)
ALTER TABLE table_name ADD new_column_name column_definition [ FIRST | AFTER column_name ],
ADD new_column_name column_definition [ FIRST | AFTER column_name ],
...
;
例子:我们将添加两个新列 cus_address 和 cus_salary 到数据表 cus_tbl 中。 其中 cus_address 被添加到列 cus_username 之后,而 cus_salary 添加在 cus_age 列之后。
alter table cus_tb1 add cus_address varchar(100) not null after cus_username,
add cus_salary int(100) unsigned not null after cus_age;
修改数据表中的列 (modify)
MODIFY 命令被用来修改数据表中列的定义。
ALTER TABLE table_name MODIFY column_name column_definition
[ FIRST | AFTER column_name ];
例子:我们将修改列 cus_username 的数据类型为 varchar(50),并且允许为空。
alter table cus_tb1 modify cus_username varchar(50) null;
删除数据表中的列 (drop column)
ALTER TABLE table_name DROP COLUMN column_name;
例子:从数据表 cus_tbl 中删除名成为 cus_address 的列。
alter table cus_tb1 drop column cus_address;
重命名数据表的列 (change column)
ALTER TABLE table_name CHANGE COLUMN old_name new_name column_definition
[ FIRST | AFTER column_name ]
例子:将数据表中名称为 cus_username的列修改为 cus_title。
alter table cus_tb1 change column cus_username cus_title varchar(20) not null;
重命名数据表名 (rename to)
ALTER TABLE table_name RENAME TO new_table_name;
例子:将名称为 cus_tbl 的数据表重命名为 cus_table
alter table cus_tb1 rename to cus_table;
清空数据表里的数据 (truncate table)
TRUNCATE TABLE 语句可以在保留数据表结构的情况下清空数据表中的数据。
TRUNCATE TABLE table_name;
例子:清空数据表 cus_tbl 中的数据
truncate table cus_table;
彻底删除数据表 (drop table)
DROP TABLE table_name;
例子:这个例子中我们将删除数据表 cus_table
drop table cus_table;
TRUNCATE Table vs DROP Table的区别
DROP TABLE 命令彻底将数据表从数据库中删除,当需要再次使用该数据表的时候,必须重新创建。而 TRUNCATE TABLE 命令只是将数据表中的数据清空,数据表本身没有被删除,数据表的结构也没有改变。需要再次使用该数据表的时候,不需要重新创建。
创建视图view
在 MySQL 中,View 是通过连接一个或多个表来创建查询的虚拟表。
VIEW 是由 SELECT 语句创建的。SELECT 语句用于从源表获取数据以生成 VIEW。
CREATE [OR REPLACE] VIEW view_name AS
SELECT columns FROM tables [WHERE conditions];
参数:
OR REPLACE: 它是可选的。当 VIEW 已经存在时使用它。如果您没有指定此子句且 VIEW 已经存在,则 CREATE VIEW 语句将返回一个错误。
view_name: 它指定要在 MySQL 中创建的 VIEW 的名称。
WHERE conditions: 它也是可选的。它指定要将记录包含在 VIEW 中的条件。
例子:创建一个名为 "trainer" 的 VIEW。这是一个从 "courses" 表中获取数据生成的虚拟表
create view trainer as
select course_name,course_trainer from courses;
查看创建的视图view
SELECT * FROM view_name;
从上面的view中查看
select * from trainer;
更新视图view
在 MYSQL 中,ALTER VIEW 语句用于修改或更新已经创建的 VIEW,而不会删除它。
ALTER VIEW view_name AS SELECT columns FROM table WHERE conditions;
例子:下面的示例将通过添加一个新列来更改已经创建的 VIEW "trainer"。
ALTER VIEW trainer AS
SELECT course_name, course_trainer, course_id
FROM courses;
删除视图VIEW
DROP VIEW [IF EXISTS] view_name;
参数:
view_name: 它指定要删除的 VIEW 的名称。
IF EXISTS: 它是可选的。如果您没有指定此子句且 VIEW 不存在,则 DROP VIEW 语句将返回一个错误。
例子:
DROP VIEW trainer;