MySQL数据库数据表的创建和修改

创建数据库

判断数据库是否存在,不存在则创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名;

	CREATE DATABASE IF NOT EXISTS YK_YPCGZD;

查看当前连接的数据库有哪些

show databases;

	#查看当前连接中的数据库都有哪些
	SHOW DATABASES;

切换数据库

use 数据库名;

	#切换数据库
	USE YK_YPCGZD;

当前数据库中保存的数据表

show tables from 数据库名;

	#当前数据库中保存的数据表
	SHOW TABLES;
	SHOW TABLES FROM yk_ypcgzd;

查看当前使用的数据库

select database() from dual

	#查看当前使用的数据库
	SELECT DATABASE() FROM DUAL;

创建数据表

create table if not exists 数据表名(
字段名1 数据类型(),
字段名2 数据类型()
);

	create table IF NOT EXISTS YK_YPCGZD1(
	xh 	INT(20) ,
    czyh VARCHAR(20),
  	cjrq INT
);
CREATE TABLE IF NOT EXISTS student(
	id INT PRIMARY KEY auto_increment, #PRIMARY KEY 主键,就是not null和unique结合,不能为空且唯一,一般搭配:auto_increment;
	NAME VARCHAR(20) NOT NULL,
	number BIGINT NOT NULL UNIQUE,   #unique 唯一约束,不能插入相同的值
	qq_mail VARCHAR(20) DEFAULT '[email protected]', #default 若无则默认赋值[email protected]
	classes_id INT,
	FOREIGN KEY(classes_id) REFERENCES classes(id)
#使用id为主键,classes_id为外键,关联班级表id
一个学生对应一个班级,一个班级对应多个学生。
);

特殊数据类型:
decimal:decimal(5,2)表示共存5位数,小数占2位
字段约束:check(),用法例如
sex VARCHAR(1),CHECK(sex=‘男’ or sex=‘女’)

查看表结构

desc 数据表名;

	#查看表结构
	DESC yk_ypcgzd1;

创建数据表,基于现有数据表。

create table 新数据表名 as select 字段名1,字段名2 from 旧数据表名(where 1=2);

	#创建数据表,基于现有数据表(包括表数据)
	CREATE TABLE yk_ypcgzd2 AS SELECT xh,czyh,cjrq FROM yk_ypcgzd1;
	#不包括表数据
	CREATE TABLE yk_ypcgzd3 AS SELECT xh,czyh,cjrq FROM yk_ypcgzd2 WHERE 1=2;

修改数据库

修改数据库字符集

alter database 数据库名 character set ‘字符集’;

	ALTER DATABASE yk_ypcgzd CHARACTER SET 'utf8';

添加一个字段

alter table 数据表名 add 字段 数据类型(first/after 字段名);

	ALTER TABLE yk_ypcgzd1 ADD num INT(20); -- 添加到最后
	ALTER TABLE yk_ypcgzd1 ADD numid INT(20) FIRST; -- 添加到第一个
	ALTER TABLE yk_ypcgzd1 ADD numyk INT(20) AFTER numid; -- 添加到numid之后

修改一个字段

 	#修改一个字段 数据类型、长度、默认值(略)
	ALTER TABLE yk_ypcgzd1 MODIFY numid INT(15);

重命名一个字段

alter table 数据表名 change 旧字段名 新字段名 数据类型(长度)

	ALTER TABLE yk_ypcgzd1 CHANGE numyk numyk1 INT(20);

删除一个字段

alter table 数据表名 drop column 字段名

	ALTER TABLE yk_ypcgzd1 DROP COLUMN numyk1;

重命名表名

rename table 数据表名 to 新数据表名;
alter table 新数据表名 rename to 旧数据表名

	#重命名表名
	RENAME TABLE yk_ypcgzd3 to yk_ypcgzd21;
	ALTER TABLE yk_ypcgzd21 RENAME TO yk_ypcgzd3;
	SHOW TABLES FROM yk_ypcgzd;

删除表

drop table if exists 数据表
truncate table from 数据表

	#删除表(完全删除)既删除表结构又删除表数据
	DROP TABLE IF EXISTS yk_ypcgzd3;
	SHOW TABLES FROM yk_ypcgzd;
	#清空表 清空表中所有数据,表结构保留
	TRUNCATE TABLE yk_ypcgzd2;
	DESC yk_ypcgzd2;

删除数据库

删除指定数据库

drop database if exists 数据库名;

	#如果要删除的数据库存在,则删除成功,否则,结束,不会报错
	DROP DATABASE IF EXISTS yk_ypcgzd1;
COMMIT和ROLLBACK
TRUNCATE table 和 DELETE FROM
都可以实现对表中所有数据的删除,同时保留表结构;
TRUNCATE TABLE 一旦执行,表数据全部清除,同时,数据不可以回滚;
DELETE FROM 清除全部数据,同时,数据可以回滚。

猜你喜欢

转载自blog.csdn.net/m0_72084056/article/details/125894873