您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

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

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

数据库的基础语法
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-11字节
smallint较小的数据有符值:-2^15~ 2^15 -1;无符号值:0~2^16-12字节
mediumint中等大小的数据有符值:-2^23~ 2^23 -1;无符号值:0~2^24-13字节
int标准整数有符值:-2^31~ 2^31 -1;无符号值:0~2^32-14字节
bigint较大的整数有符值:-2^63~ 2^63 -1;无符号值:0~2^64-18字节
float单精度浮点数± 1.1754351e-384字节
double双精度浮点数± 2.2250738585072014e-3088字节
decimal字符串形式的浮点数decimal(m,d)m个字节
字符串类型
类型说明最大长度
char[(M)]固定长字符串,检索快但费空间,0<=M<= 255M字符
varchar[(M)]可变字符串,0<=M <= 65535变长度
tinytext微型文本串2^8-1字节
text文本串2^16-1字节
日期和时间型数值类型
类型说明取值范围
dateYYYY-MM-DD,日期格式1000-01-01~9999-12-31
timeHh:mm:ss,时间格式-838:59:59~838:59:59
datetimeYY-MM-DD hh:mm:ss1000-01-01 00:00:00至9999-12-31 23:59:59
timestampYYYYMMDDhhmmss格式表示的时间戳197010101000000~2037年的某个时刻
yearYYYY格式的年份值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;

在这里插入图片描述


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进