数据库创建修改表的基础语法

数据库创建修改表的基础语法

数据库的基础语法
1.创建数据库
create database 数据库名称;
2.删除数据库
drop database 数据库名称;
3.查询数据库
show databases;
4.切换数据库
use 数据库名称;
表的基础语法
1.创建表 
create table if not exists 表名(
	字段名1 列类型[属性][索引][注释],
	字段名2 列类型[属性][索引][注释],
	...
	字段名n 列类型[属性][索引][注释],
)[表类型][表字符集][注释];
列类型:规定数据库中该列存放的数据类型
	a.数值类型
	b.字符串类型
	c.日期和时间型数值类型
	d.NULL值
2.删除表 
drop table 表名;
3.显示表
	desc 表名
4.显示创建表名
	show create table 表名
数值类型
类型 说明 取值范围 存储需求
tinyint 非常小的数据 有符值:-2^7~ 2^7 -1;无符号值:0~2^8-1 1字节
smallint 较小的数据 有符值:-2^15~ 2^15 -1;无符号值:0~2^16-1 2字节
mediumint 中等大小的数据 有符值:-2^23~ 2^23 -1;无符号值:0~2^24-1 3字节
int 标准整数 有符值:-2^31~ 2^31 -1;无符号值:0~2^32-1 4字节
bigint 较大的整数 有符值:-2^63~ 2^63 -1;无符号值:0~2^64-1 8字节
float 单精度浮点数 ± 1.1754351e-38 4字节
double 双精度浮点数 ± 2.2250738585072014e-308 8字节
decimal 字符串形式的浮点数 decimal(m,d) m个字节
字符串类型
类型 说明 最大长度
char[(M)] 固定长字符串,检索快但费空间,0<=M<= 255 M字符
varchar[(M)] 可变字符串,0<=M <= 65535 变长度
tinytext 微型文本串 2^8-1字节
text 文本串 2^16-1字节
日期和时间型数值类型
类型 说明 取值范围
date YYYY-MM-DD,日期格式 1000-01-01~9999-12-31
time Hh:mm:ss,时间格式 -838:59:59~838:59:59
datetime YY-MM-DD hh:mm:ss 1000-01-01 00:00:00至9999-12-31 23:59:59
timestamp YYYYMMDDhhmmss格式表示的时间戳 197010101000000~2037年的某个时刻
year YYYY格式的年份值 1901~2155
NULL值
理解为"没有值"或"未知值"
不要用NULL进行算术运算,结果仍为NULL
数据字段属性
1.unsigned 无符号的,声明数据列不允许负数
2.zerofill 0填充的,不足为数的用0来填充,如int(3),5则为005
3.auto_increment 自动增长的,每添加一条数据,自动在上一个记录数上加1,
通常用于设置主键,且为整数类型,可定义起始值和步长
4.NULL和NOT NULL,即没有插入该列的数值,如果设置为NOT NULL,则该列必须有值
5.default 默认的,用于设置默认值.
eg:性别字段,默认为"男",否则为"女";若无指定该列的值,则默认为"男"的值
6.comment='测试表'; 用来注释对于表或列的描述
表类型
MySQL的数据表的类型: MyISAM、InnoDB、HEAP、BOB、CSV等
常见的MyISAM与InnoDB类型
     名称      MyISAM            InnoDB
   事务处理     不支持             支持
  数据行锁定    不支持             支持
  外键约束      不支持             支持
  全文索引       支持             不支持
  表空间大小     较小               较大,两倍
数据表字符集
设定方法:
create table 表名(
	#省略一些代码
)charset=utf8;
如无设定,则根据MySQL数据库配置文件my.ini
	(Windows系统)中的参数设定
	eg:character-set-sever=utf8
创建表1

在这里插入图片描述

CREATE TABLE IF NOT EXISTS student(
	StudentNo INT(4) NOT NULL DEFAULT 0 COMMENT'学号',
	LoginPwd VARCHAR(20),
	StudentName  VARCHAR(20)  COMMENT'学生姓名',
	Sex tinyint(1)  COMMENT'性别,取值0或1',
	GradeId INT(11) COMMENT'年纪编号',
	Phone VARCHAR(50) NOT NULL DEFAULT '' COMMENT'联系电话,允许为空,即可选输入',
	Address VARCHAR(255) NOT NULL DEFAULT '' COMMENT'地址,允许为空,及可选输入',
	BornDate datetime COMMENT'出生时间',
	Email VARCHAR(50) NOT NULL DEFAULT '' COMMENT'邮箱账号,允许为空,即可选输入',
	IdentityCard VARCHAR(18) COMMENT'身份证号'
)ENGINE=INNODB ,COMMENT='学生表',CHARSET=utf8;
desc student;   -- 用来查看student表
结果

在这里插入图片描述

创建表2

在这里插入图片描述

CREATE TABLE IF NOT EXISTS `subject`(
	SubjectNo INT(11) NOT NULL  DEFAULT 0 COMMENT '课程编号',
	SubjectName VARCHAR(50) COMMENT '课程名称',
	ClassHour INT(4) COMMENT '学时',
	GradeID INT(4) COMMENT'年纪编号'
)ENGINE=MyISAM,COMMENT='课程表',charset=utf8;
DESC `subject`;
结果

在这里插入图片描述

修改表的基础语法
1.修改表名
alter table 旧表名 rename as 新表名;
2.添加字段
alter table 表名 add字段名 列类型[属性]
3.修改字段
alter table 表名 modify 字段名 列类型[属性]
alter table 表名 change 旧字段名 新字段名 列类型[属性]
4.删除字段
alter table 表名 drop 字段名
-- 修改表名
ALTER TABLE `subject` RENAME AS studentsubject;

在这里插入图片描述

-- 添加字段
ALTER TABLE studentsubject ADD SubjectTeacher VARCHAR(50) NOT NULL;
DESC studentsubject;

在这里插入图片描述

-- 修改字段
ALTER TABLE studentsubject CHANGE SubjectNo SubjectID INT(11) NOT NULL DEFAULT 0;
DESC studentsubject;

在这里插入图片描述

--  删除字段
ALTER TABLE studentsubject DROP SubjectTeacher;
DESC studentsubject;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_51717449/article/details/115407461
今日推荐