SQL课堂,SQL轻松入门5讲着手开干搭建数据库,建表
一、前言
大家好,上节课我们对数据库的基本概念 库表行列键有了一个较为详细的了解,为我们接下来的学习打下了一个很好的基础。那么本节课我们将学习,如何搭建数据库以及如何建表。
大家知道,在信息化时代,几乎每家公司都需要自己的软件系统。那么假如某天你被要求去负责公司软件系统的数据库开发这项工作,就需要对数据库有一个较为专业的了解。
经过了上节课的学习我们知道,数据库是由若干个表组成的,那么由此我们得出结论:数据库的开发和使用是从创建数据库和创建表开始的。
在这里我们划个重点:数据库的开发从搭建数据库和建表开始。
二、搭建数据库
1、 查看数据库
那么下面我们来看如何搭建数据库,提到数据库我们往往会想到,假如我们的数据库系统已经装好,那么我们想知道我们的系统中已经存在哪些数据库,那么在MySql中我们可以用以下代码来查询系统中已经存在的数据库列表。SHOW DATABASES; -- MySql中查看数据库
那么同样的功能我们在SQL Server中可以用这条语句来实现。SELECT name FROM sysdatabases -- SQL Server中查看数据库
2、 创建数据库
2.1 语法结构
在MySql中,我们用这样的语法结构来创建数据库,CREATE DATABASE `数据库名称` [建库选项],其中建库选项常用的包括 设置字符集 和 设置校验规则。
在语法当中,数据库名称可以放在一对反单引号的中间,这主要是为了避免数据库名、表名、字段名 和SQL中的关键字冲突,但是也可以不加。
2.2 语法详解
CREATE DATABASE `数据库名称` 放在语句的最前面,表示要创建一个指定名称的数据库。
CHARACTER SET ‘字符集值’ 则表示要设置指定值的字符集,例如我们可以设置为’gbk’。
COLLATE ‘校验规则值’ 则表示设置指定值的校验规则,例如可以设置为’gbk_bin’表示字符的大小写敏感。
那么最后呢,我们还要注意下语法顺序,如果顺序不对那么执行的时候也是会报错。
2.3 更加完善的语法
除了上面最基础,最简单的创建方法之外我们还有更为完善的创建方法,比如以下一组语句。
第一步,我们在创建之前先去判断该数据库是否已经存在,只有在不存在的情况下再去创建,这样就避免了执行出错。
第二步,当数据库创建成功以后我们再去修改他的字符集设置。
第三步,同样的当数据库创建成功以后我们再去修改他的校验规则设置。
当然了最后我们还是要注意下执行语句的顺序以避免出错。
2.4 手工创建数据库
除了用代码的方式创建数据库我们还可以在数据库管理工具中手动的去创建数据库,例如我们可以在navicat中使用内置的管理工具手动的去创建数据库。
那么有兴趣的同学可以去试一下。
2.5 删除数据库
同时也可以删除我们认为不需要的数据库。我们可以用语句DROP DATABASE `数据库名称`来删除指定名称的数据库。DROP DATABASE `testdb` ; -- MySql中删除数据库
同样也可以在管理工具中手动的去删除数据库。
那么当然了删除数据库是相当危险的操作行为,所以我们在操作时要非常小心以避免造成不必要的数据损失。
三、创建表
1、 查看表
好接下来我们来看下如何建表。在建表之前我们会想知道数据库中有哪些已经存在的表。我们可以用SHOW TABLES 语句来显示数据库中已经存在的表清单。SHOW TABLES; -- MySql中查看表
2、 建表
2.1 语法结构
在MySql数据库中,我们用以下语法来实现建表,
CREATE TABLE <表名> ([表定义选项]) [表选项] [分区选项];
开头的Create Table 关键字跟上表名,主体部分我们称之为表定义选项,后面我们可以跟上表选项以及分区选项。-- 建表的示例代码 CREATE TABLE Memb_User ( UserID INT NOT NULL PRIMARY KEY COMMENT "用户ID", Mobile VARCHAR(32) NOT NULL COMMENT "手机号码", Birthday DATE NULL COMMENT "生日", CreateTime DATETIME NOT NULL DEFAULT NOW() COMMENT "创建时间", CONSTRAINT UNIQUE_UserMobile UNIQUE(Mobile) COMMENT "手机号不能重复" )DEFAULT CHARSET=gbk COLLATE=gbk_bin;
2.2 表定义选项
表定义选项作为建表语句的主体部分,它其实是由一条条列的定义构成的。那么这是列的定义格式:
列名称 数据类型 [非空约束] [唯一约束] [主键约束] [默认值选项] [注释选项]-- 表定义选项示例: CREATE TABLE Memb_User ( UserID INT NOT NULL PRIMARY KEY COMMENT "用户ID’, CreateTime DATETIME NOT NULL DEFAULT NOW() COMMENT "创建时间", CONSTRAINT UNIQUE_UserMobile UNIQUE(Mobile) COMMENT "手机号不能重复" )
2.3 表定义选项语句解析
下面我们对表定义选项的语法做详细的解析。
1. 整个语法结构中,除了列名称和数据类型为必选项之外其它均为可选项。每个列的语法中均可以包括列名称、数据类型、约束以及选项。
2. 非空约束包括不可为空(NOT NULL)和可为空(NULL)两种取值,例如用户表中的用户ID是绝对不能出现空值的,所以必须设为NOT NULL。
3. 唯一约束(UNIQUE)规定了该列不能出现重复值,例如用户表中的手机号码,理论上每个用户的手机号码都是不相同的。
4. 主键约束(PRIMARY KEY)将会把该列设为该表的唯一主键,一张表只能有一个主键,所以主键约束在表定义中只能出现一次。
5. 默认值选项(DEFAULT) 为该列设置了缺省值,当我们在该表中插入记录时如果不指定插入该列,那么系统将自动给出该列的默认值。
6. 注释选项(COMMENT) 则为该列设置了描述信息,一般是用来标识该列的用途,以方便后续修改表结构时知道该列的功能以及用途。
2.4 表级约束定义
创建表时用到的约束总共分5种,那么其中的唯一约束、主键约束和外键约束也可以针对表进行设置,而不仅仅只可以针对某一列进行设置。
2.5 表选项语法详解
我们上面说在建表语句中还有[表选项]部分,那么表选项包括存储引擎、自动初始值以及注释功能。
1、 存储引擎,是决定了数据如何存储以及如何访问,还有事务如何处理,这个选项一般我们使用默认值而不去设置它。
2、 自动初始值,决定了当向表中插入第一行时,自增列得到的第一个值是多少。
3、 注释选项则给该表添加注释,一般描述了该表的功能及用途。
4、 在字符集设置选项中,我们可以对该表的存储字符进行设置,例如可以设置为gbk或者utf-8,如果设置为gbk则表示该表可以存储中文字符。
5、 校验规则设置确定了对该表中的数据进行比较时采用哪种规则,例如设置为gbk_bin(二进制)则表示该表的字段名和存储内容须区分大小写。
3、 删除表
好,下面我说下删除表。在MySql数据库中,我们用语句DROP TABLE `表名称` 或者更为完善的DROP TABLE IF EXISTS `表名称` 来完成对数据表的删除操作。DROP TABLE `testdb`; -- MySql中删除表
我们也可以在数据库管理工具中通过右击弹出菜单的方式来手动删除数据表。
当然了,无论用哪种方法删除表,我们在删除操作时都要十分小心,因为删错了就会造成不可估量的数据损失!
四、本讲总结
那么通过以上的学习,我们就可以试着去搭建数据库和建表了。
通过本节课的学习,我们掌握如何去搭建数据库以及如何建表,为后续SQL的深入学习打下了坚实的基础。
好了,本节课就先到这里,谢谢大家!
国际米兰爆冷送礼,主场不敌恩波利文羊城晚报全媒体记者刘毅意甲第19轮比赛1月24日爆出冷门国际米兰主场以0比1负于中游球队恩波利,场上队长什克里尼亚尔两黄变一红被罚出场。国米刚刚夺得意大利超级杯1月19日在沙特首
新春走基层潮剧潮乐免费观赏,潮博中心入馆人数创新高新春假期,逛文化场馆成了不少汕头市民和游客的选择。在潮汕历史文化博览中心,舞狮潮剧潮乐等一系列地方民俗活动吸引了众多游客到访,入馆人数创下了开馆以来的春节新高。据统计,春节假期入馆
新春佳节,他们在坡头守护万家灯火春节是阖家团圆的日子,当千家万户张灯结彩欢聚一堂,当新年的钟声就要敲响之时,却有这样一群人,在回家的人潮中走向另一个方向,默默坚守在岗位,让这座城市保持正常运转,他们的身影遍布在坡
新春影视推荐深海今年的电影很多值得看,纠结了好久我先选择了最想看的深海。我看到了很多影评,想去看看人人都说走不出来的最后30分钟。看完感觉这是一部需要共情能力和人物相似内心才可以看懂的电影,我感觉
新春走基层你在军营保家卫国兄弟们为你守护后方淄博1月25日讯爹娘,我们来给你们拜年了!大年初二,家住淄博市淄川区罗村镇大王村的刘女士家里格外热闹,儿子杜荣(化名)的5个儿时伙伴每年都会在这一天来到刘女士家中,一声声爹娘叫得他
东西问解码兔年丨曾应枫恭喜发财,广府有何独特新春年俗?中新社记者程景伟作为中华民族的传统节日,春节是承载着中华文明的标志性文化符号,在中国人心中有着不可逾越的地位。由于地域文化的不同,中国各地春节习俗也有差异。在中国南方,以广州及珠江
小学生吗?火箭主帅赛前批评了球队心态,球队拿下复仇战止连败北京时间1月24日,NBA常规赛火箭主场以119114战胜森林狼,完成复仇并止住连败。本场比赛,火箭球员杰伦格林出战35分钟,25投15中,其中三分球12投6中,罚球10投6中,得
湖人奇才交易评级湖人C奇才B北京时间1月24日,湖人官方宣布用三个次轮签打包肯德里克纳恩,来通过交易得到奇才前锋八村垒,这是本赛季自10月18日正式开启后的第二笔交易。交易详情湖人得到八村垒奇才得到肯德里克纳
科曼很荣幸再次成为荷兰主帅,球队将重回43阵型荷兰足协宣布,罗纳德科曼再度出任国家队主帅。科曼在签约仪式后的记者会上回答了媒体提问。开场白罗纳德科曼这种感觉就像回到了家,我非常高兴和自豪能再次成为荷兰队主帅。这次执教和2018
吹头发嚼海参跑不死的男人引起的风暴会让中国足球迎来新生吗天道轮回呀,曾经中国足球依靠着韩日主办世界杯的天时地利,加上那时候堪称天花板战力的阵容,中国男足挺进了世界杯决赛圈,虽然未能实现进一球拿一分胜一场的宏大目标,但是不得不说那个时候的
艾萨克复出卡特2111魔术爆冷终结凯尔特人9连胜!NBA常规赛1月24日继续进行,本场比赛魔术队的艾萨克时隔两年半复出!而凯尔特人这边布罗格登和斯玛特缺阵。最终,魔术以11398战胜凯尔特人,凯尔特人的9连胜被终结。首节开始,卡特