sql常用语句总结一

创建数据表

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;  
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容