Mysql数据库基本知识二:表的基础操作

=================================【建表】==============================
分三部分:

1.指定表名
2.定义列(),列名 数据类型 约束
3.选项 字符集  存储引擎


Create table Course
(cid CHAR(3) PRIMAARY KEY,
CNAME varchar(20) not null,
Ccredit int null,
Climit int null default 60)                          
Default charset=gbk engine=innodb


ps:列于列之间用 “,”隔开
ps:"null"可以不写 , 最后一行不加" ,"

列级约束:null    not null       default       auto_increment
表级约束:foreign key   符合主码
==============================【主码约束--实体完整性】==============================
1,实体完整性又称行完整性,要求在表中不能存在完全相同的行,而且每行都要具有一个非空且又不重复的字段值。

2,主码(PRIMARY KEY)约束
(1)一个表可以有多个候选码,但是每个表只能定义一个主码。
(2)主码值必须唯一标识表中的每一行,且不能为 NULL。唯一且非空
主码约束实现了实体完整性。(主码是从候选码中选出来的)

3,唯一性(UNIQUE)约束。
(1)每个表可以定义多个唯一键。
(2)唯一性约束确保在某一列或多个列的组合上不出现重复值。
唯一键可为空,但是最多只有一个出现NULL值。

4,空(NULL)约束和非空(NOT NULL)约束。
NULL约束是指属性的取值可以为空。
NOT NULL约束是指字段的取值不能为空。

5,自增(AUTO_INCREMENT)约束。(只能定义为列级约束)
通过自增约束,即可为新记录自动生成唯一的ID,从而实现实体完整性约束。
自增字段应该遵守下面的规则:
(1)每张表只能定义一个字增型字段。
(2)自增字段必须为数值型。
(3)自增字段必须定义为键(主键或者唯一键或者外键均可)。
(4)主码只写自增和主码,不能写unique和not null。
=============================【外码约束--参照完整性】=========================
1,含外码的表称为子表;
父表的主码和子表的外码必须定义在同一个域上。

2,外码取值:
(1)要么取空值,表示不知道不清楚。
(2)要么取对应元组中的主码值。
(3)外码的值可以重复。

3,实现:
外码约束使用的关键字是FOREIGN KEY 。
创建外码(FOREIGN KEY)之前,必须为父表定义主码。

***表与表之间用外键联系。

4,创建表-带外码约束:

[CONSTRAINT约束名]  FOREIGN KEY (字段名)  REFERENCES 父表(主码字段名)

外码约束的定义需要确定两件事情:
第一:哪个字段是外码,用关键字FOREIGN KEY指定;
第二:引用哪张表的主码,用关键字REFERENCES指定。

5,当两表既是对方的父表又是对方的子表时,要想创建成功,应该先取消外键检查约束。

步骤一:选择数据库:    USE registration;
步骤二:取消外键约束检查:    SET FOREIGN_KEY_CHECKS=0;
步骤三:建表:
            CREATE TABLE Department (
             DId char(3),
            DName varchar(10) NOT NULL UNIQUE,
             DHeader char(4),
             PRIMARY KEY (DId),
            CONSTRAINT fk_dheader FOREIGN KEY (DHeader) REFERENCES teacher (TId)
            ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
步骤四:设置外键约束检查:    SET FOREIGN_KEY_CHECKS=1;

6,外码(FOREIGN KEY)约束(只能定义为表级约束。)

字段之间用逗号隔开,表级约束也用逗号与字段定义隔开并作为独立项来定义,
最后一项后面没有逗号,以反括号定界。

选项的定义放在括号外,选项之间用空格隔开。


=============================【用户自定义完整性】================================

1,用户自定义的完整性是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。
用户自定义的完整性可以通过唯一性(UNIQUE)约束、非空(NOT NULL)、
默认值(DEFAULT)约束和检查(CHECK)约束实现。

2,默认值约束用来指定某字段的默认值,一个表可以设置多个默认值约束。默认值约束用关键字DEFAULT来实现。
为某张表的某字段设置默认值约束后,向该表中插入记录时,如果没有为该字段指定取值,该字段则采用默认值插入。


注意:有默认值约束的字段如果是字符串类型或者日期时间类型,默认值需要加单引号。
包括如下: char  varchar  date  time  datetime

3,检查约束是指对字段取值范围的约束,检查约束用关键字CHECK来实现。
MySQL不直接支持CHECK约束,在MySQL中需要用触发器来实现CHECK约束。

=============================【MySQL数据库表的命令与操作】=========================
1,MySQL作为一个专门的RDBMS,有属于自己的MySQL命令,
也支持关系数据库的标准语言——SQL(Structured query language)。

SQL语言包含4个部分: 
数据定义语言(DDL),包括CREATE、DROP、ALTER语句。 
数据操作语言(DML),包括INSERT、UPDATE、DELETE语句。
数据查询语言(DQL),SELECT语句。 
数据控制语言(DCL),包括GRANT、REVOKE、COMMIT、ROLLBACK等语句。

2,MySQL命令。
MySQL命令是指由MySQL团队开发的只能在MySQL平台运行的命令。

a.MySQL安装的命令
初始化MySQL:mysqld –initialize
安装MySQL:mysqld –install
移除MySQL:mysqld –remove

b. mysql服务的启动和停止
启动MYSQL服务:net start mysql
停止MYSQL服务:net stop mysql

c.登陆mysql
mysql -u  root -p
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP。

d.查看存储引擎:
查看MySQL支持的存储引擎:SHOW ENGINES;
查看到默认引擎:SHOW VARIABLES LIKE '%storage_engine%';

e.修改默认存储引擎。
MySQL命令:SET default_storage_engine=存储引擎名;

f.字符集和字符序的MySQL命令(前一节)

g.关于数据库的MySQL命令
显示所有数据库:SHOW DATABASES;
选择当前数据库:USE 数据库名;
显示指定数据库的信息:SHOW CREATE DATABASE 数据库名;

h.关于数据库表的MySQL命令
显示所有表:show tables;
显示某个表的信息 : show create table 表名;
查看某个表的表结构:desc 表名;
删除表:DROP TABLE 表名;   (ps:注意外码)
复制表:
第一种:CREATE TABLE 新表名 LIKE 源表名;
ps:只能复制表结构,不能复制表中的记录。


第二种,(这种方法不建议使用):CREATE TABLE 新表名 SELECT * FROM 源表名 [WHERE 条件表达式]
ps:可以复制表结构和表中的记录,但是不能复制约束!

注:如果在【复制表结构的同时还要复制表中的所有记录】就不要WHERE 条件语句。
如果【只复制表结构,不复制表中的记录】,就在WHERE 中写一个不成立的条件,如1=2或2=3等。
若一个条件成立只复制一条记录!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值