做酒水网站陕西有哪些,微信小程序如何生成二维码,手机端制作游戏的app,能不能把wordpress程序转到帝国目录 创建数据表语法列类型字段属性SQL示例创建学生表 查看表和查看表的定义表类型设置表的类型 面试题#xff1a;MyISAM和InnoDB的区别设置表的字符集删除表语法示例 修改表修改表名语法示例 添加字段语法示例 修改字段语法示例 删除字段语法示例 数据完整性实体完整性域完整… 目录 创建数据表语法列类型字段属性SQL示例创建学生表 查看表和查看表的定义表类型设置表的类型 面试题MyISAM和InnoDB的区别设置表的字符集删除表语法示例 修改表修改表名语法示例 添加字段语法示例 修改字段语法示例 删除字段语法示例 数据完整性实体完整性域完整性引用完整性解决方案语法唯一约束主键PRIMARY KEY数据库主键的作用数据库主键的选择规则语法 删除约束语法示例 创建数据表
语法 CREATE TABLE [ IF NOT EXISTS ] 表名 (字段名1 列类型 [ 字段属性 | 约束] [ 索引 ] [注释] ,字段名2 列类型 [ 字段属性 | 约束] [ 索引 ] [注释] , … … 字段名n 列类型 [字段属性 | 约束] [ 索引 ] [注释] ) [ 表类型 ] [ 表字符集 ] [注释] ;反引号用于区别MySQL保留字全部大写与普通字符而引入的。多个字段也称为列之间使用逗号分隔最后一个字段后无须逗号。
列类型
规定数据库中该列存放的数据类型包括数值类型、字符串类型、日期和时间型数值类型等
字段属性 SQL示例
创建学生表 #1.创建学生表
CREATE TABLE IF NOT EXISTS STUDENT(STUDENTNO INT(4) UNSIGNED NOT NULL COMMENT 学号,LOGINPWD VARCHAR(20) NOT NULL COMMENT 密码,STUDENTNAME VARCHAR(50) NOT NULL COMMENT 学生姓名,SEX CHAR(1) NOT NULL DEFAULT 男 COMMENT 性别,GRADEID INT(4) UNSIGNED COMMENT 年级编号,PHONE VARCHAR(50) COMMENT 联系电话,ADDRESS VARCHAR(255) DEFAULT 地址不详 COMMENT 家庭住址,BORNDATE DATETIME COMMENT 出生年月,EMAIL VARCHAR(50) COMMENT 邮箱账号,IDENTITYCARD VARCHAR(18) COMMENT 身份证号
)DEFAULT CHARSETutf8mb4 COMMENT 学生表;#2.创建年级表
CREATE TABLE IF NOT EXISTS GRADE(GRADEID INT(4) UNSIGNED NOT NULL COMMENT 年级编号,GRADENAME VARCHAR(50) NOT NULL COMMENT 年级名称
) DEFAULT CHARSETUTF8MB4 COMMENT 年级表;#3.创建课程表
CREATE TABLE IF NOT EXISTS SUBJECT(SUBJECTNO INT(4) UNSIGNED NOT NULL COMMENT 课程编号,SUBJECTNAME VARCHAR(50) NOT NULL COMMENT 课程名称,CLASSHOUR INT(4) UNSIGNED COMMENT 学时,GRADEID INT(4) UNSIGNED COMMENT 年级编号
) DEFAULT CHARSETUTF8MB4 COMMENT 课程表;#4.创建成绩表
CREATE TABLE IF NOT EXISTS RESULT(STUDENTNO INT(4) UNSIGNED NOT NULL COMMENT 学号,SUBJECTNO INT(4) UNSIGNED NOT NULL COMMENT 课程编号,EXAMDATE DATETIME NOT NULL DEFAULT NOW() COMMENT 考试日期,STUDENTRESULT INT(4) UNSIGNED NOT NULL COMMENT 考试成绩
) DEFAULT CHARSETUTF8MB4 COMMENT 成绩表;查看表和查看表的定义
创建表之后如果需要查看一下该表是否存在可以使用查看表的SQL命令。SHOW TABLES;创建表之后如果需要查看一下该表是否存在可以使用查看表的SQL命令。DESCRIBE 表名或DESC 表名
表类型
MySQL属于关系型数据库管理系统其他包括数据库以及用于数据库访问管理的接口系统。数据库负责存储数据接口系统负责管理数据库。由于不同用户对数据的容量、访问速度、数据安全性有不同的要求为了满足不同用户的业务需求MySQL数据库采用多种存储引擎进行数据存储。表的存储引擎也称为表类型。MySQL5.5支持的存储引擎有MyISAM、InnoDB 、HEAP、BOB、CSV等。SHOW ENGINES#查看系统所支持的存储引擎常用的存储引擎MyISAM和InnoDB 。MySQL5.5以上版本默认的存储引擎是InnoDB。
设置表的类型
CREATE TABLE student(
……) ENGINE InnoDBCREATE TABLE student(
……) ENGINE MyISAM面试题MyISAM和InnoDB的区别 适用场合
使用MyISAM: 节约空间及相应速度适合以访问为主的应用。使用InnoDB: 安全性事务处理及多用户操作数据表。
设置表的字符集
创建时通过命令来设置
CREATE TABLE 表名(#省略一些代码
)CHARSET utf8;修改配置文件my.iniWindows系统中的参数
character-set-sever utf8 删除表
语法
DROP TABLE [IF EXISTS] 表名示例
#6.删除课程表
DROP TABLE IF EXISTS SUBJECT;修改表
修改表名
语法 ALTER TABLE 旧表名 RENAME AS 新表名示例
#7.把result表改名为studentresult
ALTER TABLE RESULT RENAME AS STUDENTRESULT;
ALTER TABLE STUDENTRESULT RENAME AS RESULT;添加字段
语法 ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ] 示例
#8.给result表添加一个id字段
ALTER TABLE RESULT ADD ID INT(4) UNSIGNED NOT NULL COMMENT成绩编号;修改字段
语法
1. ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ] #修改列的数据类型
2. ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]#修改列的数据类型及名称示例
#9.修改result表中的id字段改为字符串类型允许有符号允许为空注释改为成绩编码
ALTER TABLE RESULT MODIFY ID VARCHAR(16) COMMENT 成绩编码;#10.修改result表中的ID字段ID名称改为rid类型为int(4),零填充默认值1
ALTER TABLE RESULT CHANGE ID RID INT(4) ZEROFILL DEFAULT 1;删除字段
语法 ALTER TABLE 表名 DROP 字段名示例
#11.删除result表中的id字段
ALTER TABLE RESULT DROP RID;数据完整性
数据库中的数据是从外界输入的而数据的输入由于种种原因会发生输入无效或错误信息。保证输入的数据符合规定成为了数据库系统尤其是多用户的关系数据库系统首要关注的问题。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性主要分为三类实体完整性、域完整性、引用完整性。
实体完整性
实体完整性是指保证表中所有的行唯一。
域完整性
域完整性是指数据库表中的列必须满足某种特定的数据类型或约束。其中约束又包括取值范围、精度等规定。
引用完整性
引用完整性是指保证主关键字被引用表和外部关键字引用表之间的参照关系。它涉及两个或两个以上表数据的一致性维护。
解决方案
使用约束实现数据完整性。数据库采用多种方法来保证数据完整性包括约束、规则和触发器。
语法
ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束关键字 具体的约束说明
约束名的取名推荐采用约束类型_约束字段
主键Primary Key约束如 PK_stuNo唯一Unique 约束如 UQ_stuID外键(Foreign Key)约束如 FK_stuNo
唯一约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名)
#12、给学生表的联系电话字段设置为唯一约束
ALTER TABLE STUDENT ADD CONSTRAINT UQ_PHONE UNIQUE(PHONE);
ALTER TABLE STUDENT ADD CONSTRAINT UQ_STUDENTNAME UNIQUE(STUDENTNAME);主键PRIMARY KEY
数据库主键指的是一个列或多列的组合其值能唯一地标识表中的每一行通过它可强制表的实体完整性一个表只能有一个主键并且主键列不允许出现空值。尽管有的表中允许没有主键但是通常情况下建议为表设置主键。
数据库主键的作用
保证实体的完整性;加快数据库的操作速度添加新记录时DBMS会自动检查新记录的主键值不允许该值与其他记录的主键值重复DBMS自动按主键值的顺序显示记录。如果没有定义主键则按输入记录的顺序显示记录。
数据库主键的选择规则
最少性是指列数最少的键。如果可以从单个主键和复合主键中选择应该选择单个主键这是因为操作一列比操作多列要快。当然该规则也有例外例如两个整数类型的列的组合比一个很大的字符类型的列操作要快。稳定性是指列中数据的特征。由于主键通常用来在两个表之间建立联系所以主键的数据不能经常更新。理想情况下应该永远不变
如果两列或多列组合起来唯一地标识表中的每个行则该主键叫做“复合主键”。
语法
ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(列名1,列名2,…列名n)
#13、给学生表设置主键主键列为studentno
ALTER TABLE STUDENT ADD CONSTRAINT PK_STUDENTNO PRIMARY KEY(STUDENTNO);#14、设置组合主键案例设置课程表中的课程编号和年级编号为组合主键
ALTER TABLE SUBJECT ADD CONSTRAINT PK_SUBJECTNO_GRADEID PRIMARY KEY(SUBJECTNO,GRADEID);删除约束
语法
ALTER TABLE 表名 DROP PRIMARY KEY; #删除主键约束 ALTER TABLE 表名 DROP KEY 唯一约束名; #删除唯一约束 ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名; #删除外键约束
示例
#15、删除主键索引不需要指定名称因为一个表中只能有一个主键
ALTER TABLE SUBJECT DROP PRIMARY KEY;#16、删除唯一索引必须指定唯一索引的名称因为一个表中可以有多个字段的唯一索引
ALTER TABLE STUDENT DROP KEY UQ_STUDENTNAME;