德胜云资讯,添加一些关于程序相关的内容,仅供大家学习交流(https://www.wxclwl.com)

网站地图

搜索
德胜云咨询
后端分类 爬虫 网络安全 PHP SQL
热门标签:
最新标签:

如何使用mysql创建数据表数据库基础之SQL创建和操作表mysql怎么创建数据库和表新鲜出炉,

日期:2023/04/25 08:30作者:卢志铭人气:

导读:【本文详细介绍了数据库的基础知识之SQL创建和操作表,欢迎读者朋友们阅读、转发和收藏!】1 基本概念1.1 创建表方法创建表是指在已存在的数据库...

【本文详细介绍了数据库的基础知识之Sql创建和操作表,欢迎读者朋友们阅读、转发和收藏!】

1 基本概念

1.1 创建表方法

创建表是指在已存在的数据库中建立新表。这是建立数据库最重要的一步,是进行其他操作的基础。

1.1.1 创建表的语法形式

CREATE TABLE 表名 ( 属性名 数据类型 [ 完整性约束条件 ], 属性名 数据类型 [ 完整性约束条件 ], ...... 属性名 数据类型 [ 完整性约束条件 ], )[ 表类型 ] [ 表字符集 ];

SQL 是不区分大小写

命名规范:

1. 命名富有意义 ( 英文或英文组合 )

2. 自定义名称使用小写

3. MySQL 语句使用大写

CREATE TABLE IF NOT EXISTS data_house( id INT, name VARCHAR(20); gender BOOLEAN, ) Engine = MyISAM;

上面 SQL 语句的含义是:如果不存在 text1 表,就创建它,包含 3 个字段 id 、 name 和 gender ,它们的类型分别是整形、字符型和布尔型,创建的表的类型是 MyISAM 。

完整性约束条件表

PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组FOREIGN KEY 标识该属性为该表的外键,是与之联系的某表的主键NOT NULL 标识该属性不能为空UNIQUE 标识该属性的值是唯一的AUTO_INCREMENT 标识该属性的值自动增加,这是 MySQL 的 SQL 语句的特色 (null,0)DEFAULT 标识该属性设置默认值 (not null defualt 0,not null default 0.0,not null default )

1.1.2 设置表的主键

主键是表的一个特殊字段。该字段能惟一地标识该表中的每条信息。主键和记录的关系,如同身份证和人的关系。主键用来标识每个记录,每个记录的主键值都不同。身份证是用来标明人的身份,每个人都具有惟一的身份证号。设置表的主键指在创建表时设置表的某个字段为该表的主键。

主键的主要目的是帮组 MySQL 以最快的速度查找到表中的某一条信息。

主键必须满足的条件:

1. 主键必须是唯一的,表中任意两条记录的主键字段的值不能相同;

2. 主键的值是非空值;

3. 主键可以是单一的字段,也可以是多个字段组合。

1. 单字段的主键:

CREATE TABLE student1 ( stu_id INT PRIMARY KEY , stu_name VARCHAR(20) NOT NULL, stu_gender BOOLEAN ) Engine = InnoDB;

2. 多字段主键 :

CREATE TABLE student2 ( stu_id INT, course_id INT, grade FLOAT, PRIMARY KEY( stu_id, course_id ) )Engine = InnoDB;

1.1.3 设置表的外键

外键是表的一个特殊字段。如果字段 sno 是一个表 A 的属性,且依赖于表 B 的主键。那么,称表 B 为父表,表 A 为子表, sno 为表 A 的外键。通过 sno 字段将父表 B 和子表 A 建立关联关系。设置表的外键指在创建表设置某个字段为外键。

设置外键的原则:必须依赖于数据库中已存在的父表的主键;外键可以为空值。

外键的作用 : 是建立该表与其父表的关联关系。父表中删除某条信息时,子表中与之对应的信息也必须有相应的改变。例如, stu_id 就 student 表的主键, stu_id 是 grade 表的外键。当 stu_id 为 123 同学退学了,需要从 student 表中删除该学生的信息。那么, grade 表中 stu_id 为 123 的所有信息也应该同时删除。

CONSTRAINT 外键别名 FOREIGN KEY ( 属性 1.1, 属性 1.2... 属性 1.n); REFERENCES 表名 ( 属性 2.1, 属性 2.2,..., 属性 2.n) CREATE TABLE student3 ( id INT PRIMARY KEY, stu_id INT, course_id INT, # 设置外键 CONSTRAINT C_fk FOREIGN KEY (stu_id, course_id) REFERENCES student2(stu_id, course_id) ) Engine = InnoDB;

1.1.4 设置表的非空约束

非空性是指字段的值不能为空值 (NULL) 。非空约束将保证所有记录中该字段都有值。如果用户新插入的记录中,该字段为空值,则数据库系统会报错。例如,在 id 字段加上非空约束, id 字段的值就不能为空。如果插入记录的 id 字段的值为空,该记录将不能插入。设置表的非空约束是指在创建表时为表的某些特殊字段加上 NOT NULL 约束条件。设置非空约束的基本语法规则如下:

属性名 数据类型 NOT NULL

CREATE TABLE student4 ( id INT NOT NULL PRIMARY KEY, name VARCHAR(20NOT NULL , stu_id INT, CONSTRAINT d_fk FOREIGN KEY(stu_id) REFERENCES student2(stu_id) );

1.1.5 设置表的惟一性约束

惟一性是指所有记录中该字段的值不能重复出现。设置表的惟一性约束是指在创建表时为表的某些特殊字段加上 UNIQUE 约束条件。唯一性约束将保证所有记录中该字段的值不能重复出现。例如,在 id 字段加上惟一性约束,所以记录中 id 字段上不能出现相同的值。例如,在表的 id 字段加上惟一性约束,那么每条记录的 id 值都是惟一的,不能出现重复的情况。如果一条的记录的 id 值都是惟一的,不能出现重复的情况。如果一条的记录的 id 为 0001 ,那么该表中就不能出现另一条记录的 id 为 0001 。设置惟一性约束的基本语法规则如下:

属性名 数据类型 UNIQUE

CREATE TABLE student5 ( id INT NOT NULL PRIMARY KEY, stu_id INT UNIQUE , name VARCHAR(20) NOT NULL ); INSERT INTO `student5` values(1, 10, DataHouse), (2, 11, Lucy); INSERT INTO `student5` values(2, 10, DataWarehouse);

1.1.6 设置表的属性值自动增加

AUTO_INCREMENT 是 MYSQL 数据库中一个特殊的约束条件。其主要用于为表中插入的新记录自动生成惟一的 ID 。一个表只能有一个字段使用 AUTO_INCREMENT 约束,且该字段必须为主键的一部分。 AUTO_INCREMENT 约束的字段可以是任何整数类型 (TINYINT 、 SMALLINT 、 INT 、 BIGINT 等 ) 。默认情况下,该字段的值是从 1 开始自增。

设置属性值字段增加的基本语法规则如下:

属性名 数据类型 AUTO_INCREMENT

CREATE TABLE student6 ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT , stu_id INT UNIQUE, name VARCHAR(20) NOT NULL ); INSERT INTO `student6` values(, 10, DataHouse), (, 11, Lucy); INSERT INTO `student6` values(, 12, DataWarehouse);

1.1.7 设置表的履的默认值

在创建表时可以指定表中字段的默认值。如果插入一条新的记录时没有为这个字段赋值,那么数据库系统会自动为穿上字段插入默认值。默认值通过 DEFAULT 关键字来设置的。

属性名 数据类型 DEFAULT 默认值

CREATE TABLE student7 ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, stu_id INT UNIQUE, name VARCHAR(20) NOT NULL DEFAULT WHAT, language VARCHAR(20DEFAULT cn, english VARCHAR(20DEFAULT ZERO, math FLOAT DEFAULT 0, computer FLOAT DEFAULT 0 ); INSERT INTO `student7` VALUES(,10,DataHouse, kr, one,,); INSERT INTO `student7` VALUES(,11,DataWarehouse, , ,,);

排行

网站地图

Copyright © 2002-2022 香港德胜云网络 版权所有 | 备案号:蜀ICP备2023007363号-5

声明: 本站内容全部来自互联网,非盈利性网站仅供学习交流