MYSQL 笔记2 建库建表删表删库

SQL CREATE DATABASE 

语法:
CREATE DATABASE dbname;
CREATE DATABASE IF NOT EXISTS dbname;

说明:如果数据库已存在会报warning,这时可以执行 SHOW warnings; 查看

SQL CREATE TABLE + CONSTRAINT 

语法:
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,

....
);

MySQL 数据类型 参考-> https://www.runoob.com/sql/sql-datatypes.html

在 SQL 中,我们有如下约束:
NOT NULL - 指示某列不能存储 NULL 值。
UNIQUE - 保证某列的每行必须有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识。
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
CHECK - 保证列中的值符合指定的条件。
DEFAULT - 规定没有给列赋值时的默认值。

/*主键为某一列*/
CREATE TABLE sys_conf
(
fun_id int NOR NULL PRIMARY KEY,
module varchar(30) NOT NULL,
parameter varchar(30) NOT NULL,
value varchar(255) DEFAULT NULL,
unit varchar(30) DEFAULT NULL
)

/*主键为两列联合的值*/
CREATE TABLE sys_conf
(
module varchar(30) NOT NULL,
parameter varchar(30) NOT NULL,
value varchar(255) DEFAULT NULL,
unit varchar(30) DEFAULT NULL,
CONSTRAINT mod_para PRIMARY KEY (module,parameter)  /*或者 PRIMARY KEY (module,parameter)*/
)

当表已被创建,使用ALTER语句

/*主键为某一列*/
ALTER TABLE sys_conf
ADD PRIMARY KEY (fun_id)

/*主键为两列联合的值*/
ALTER TABLE sys_conf
ADD CONSTRAINT mod_para PRIMARY KEY (module,parameter)

撤销 PRIMARY KEY 约束

ALTER TABLE sys_conf
DROP PRIMARY KEY

SQL CREATE INDEX 

在表中创建索引,用户无法看到索引,它们被用来加速搜索/查询。
注意:更新包含索引的表需要比更新没有索引的表花费更多的时间,理想的做法是仅仅在常常被搜索的列上创建索引。

语法:
CREATE INDEX index_name
ON table_name (column_name);

撤销索引使用 DROP INDEX
语法:
ALTER TABLE table_name DROP INDEX index_name;

删除表、删除数据库

DROP TABLE 删除表
语法:
DROP TABLE table_name;
DROP TABLE IF EXISTS table_name;

DROP DATABASE 删除数据库
语法:
DROP DATABASE database_name;
DROP DATABASE IF EXISTS database_name;

TRUNCATE TABLE 删除表内的数据,但并不删除表本身
语法:
TRUNCATE TABLE table_name;

TRUNCATE TABLE,DELETE FROM TABLE 和 DROP TABLE比较:
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同。
TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。
TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
如果要删除表定义及其数据,使用 DROP TABLE 语句。

delete from table where 直接删除表中的某一行数据,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。数据空间不释放,因为需回滚,所以 delete 相比较 truncate 更加占用资源。对 table 和 view 都能操作。
truncate table 一次性地从表中删除所有的数据(释放存储表数据所用的数据页来删除数据)并不把单独的删除操作记录记入日志保存(只在事务日志中记录页的释放),因此也不能回滚,不能恢复数据,占用资源更加少,速度更快。只能操作没有关联视图的 table。由于 不记录在日志中,所以它不能激活触发器,对于外键(foreignkey )约束引用的表,不能使用 truncate table,而应使用不带 where 子句的 delete 语句。
drop table 删除的是整个表,包括表的结构,数据,定义。永久删除,不能回滚,空间释放。对 table 和 view 都能操作。

 

 

 

 

 

 

 

ALTER TABLE 语句

用于在已有的表中添加、删除或修改列。

添加列语法:
ALTER TABLE table_name
ADD column_name datatype;

删除列语法:

ALTER TABLE table_name
DROP COLUMN column_name;

改变列的数据类型语法:
ALTER TABLE table_name
MODIFY COLUMN column_name datatype;

参考资料:菜鸟教程 https://www.runoob.com/sql/sql-create-db.html

发布了89 篇原创文章 · 获赞 1 · 访问量 4844

猜你喜欢

转载自blog.csdn.net/wy_hhxx/article/details/103111727
今日推荐