一、什么是SQL?
SQL是结构化查询语言
(Structured Query Language)
是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理“关系型数据库”系统,同时也是数据库脚本文件的扩展名。
SQL对大小写不敏感、不敏感、不敏感!
SQL是一种行业标准!但它不是数据!
二、数据库分三种
超大型数据库
如甲骨文公司的Oracle数据库,国内比较著名的公司如蒙牛、腾讯等都是使用这种数据库,阿里巴巴之前也是用Oracle,后来才使用了自己研发的数据库。
中型数据库
以MS SQL Server和MySQL为代表,这类数据库比较常见,很多企业的ERP系统和网上商城系统用的都是这两种。另外,SyBase也算是中型数据库。
微小型数据库
以SQLite和微软Office办公组件里的Access为代表,很多公司之前用ASP做的网站大部分用的都是Access。SQLite的兴起跟Android有很大的关系,安卓中用户短信、联系人数据等都是用SQLite存储的。甚至,我们熟悉的QQ、迅雷等,也都采用SQLite来存储数据。
SQL的DDL和DML
可以把 SQL 分为两个部分:数据定义语言(DDL)和数据操作语言(DML)。
- DDL = Data Definition[defɪ’nɪʃ(ə)n] Language
- DML = Data Manipulation[mə,nɪpjʊ’leɪʃ(ə)n] Language
DDL
SQL 的数据定义语言 使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL语句:
- CREATE DATABASE - 创建新的数据库
- ALTER DATABASE - 修改数据库
- CREATE TABLE - 创建新的数据库表
- ALTER TABLE - 变更(改变)数据库表
- DROP TABLE - 删除表
- CREATE INDEX - 创建索引(搜索键)
- DROP INDEX - 删除索引
DML
SQL的数据操作语言使我们有能力进行各种花式查询和下达各种不同指令,例如:
- INSERT INTO - 向数据库表中插入数据
- SELECT - 从数据库表中获取数据
- UPDATE - 更新数据库表中的数据
- DELETE - 从数据库表中删除数据
就象它们的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。
三、数据库该怎么学?
相信很多人听的最多的就是学数据库就是学“增删查改”,而我理解中的学习流程是:
- 学习和理解表是什么,什么是表
- 学习和理解数据的类型
- 增
- 查
- 改
- “再”查
- 删
- “还要”查
任务1
我希望创建一个名为“Fanmao_College_DB”的新数据库
我希望可以使用不同的方法创建它
CREATE DATABASE
CREATE DATABASE 用于创建数据库
语法:
- CREATE DATABASE database_name
实例:
- CREATE DATABASE Fanmao_College_DB;
知识点乱入:
- 有些数据库会要求完整的执行语句结束后加分号
- Microsoft SQL Server没有这个限制
- 养成好习惯,加上总没错,编程语言大多数都要加
任务2
我希望帮助你们理解表是由什么组成的
我希望创建一张名为“Perfume”的新表
该表含3个列:
- Id_P
- Brand
- Country
CREATE TABLE
CREATE TABLE 用于创建数据库中的表
语法:
- CREATE TABLE 表名称
(列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
列名称n 数据类型 )
实例:
CREATE TABLE Perfume
(Id_P INT ,
Brand CHAR(100) ,
Country VARCHAR(100));
知识点乱入:
最简单的查询语句:SELECT * FROM 表名称
四、数据类型(Data Type)
SQL中最常用的数据类型
CHAR和VARCHAR的区别和选择
总结:
- 经常变化的字段用VARCHAR
- 知道固定长度的用CHAR
- 尽量用VARCHAR
- 超过255字节的只能用VARCHAR
- 英文字母占1个字节
- 国家标准GB2312: 一个汉字占2个字节
- UTF-8: 一个汉字占3个字节
任务2
创建一个名为“香水表”的新表,然后互相show下
该表含3个列
Id_P
品牌
原产地
请思考,然后为这3个列设计最酷炫的数据类型
知识点乱入:
- USE data_base;
任务3
创建一个名为“Advanced_Perfume”的新表,仍然包含3个列“Id_P”,“Brand”和“Country”,并且:
- 我希望我的高级香水表里任何数据都没有空数据
- 我希望香水的“品牌”没有冗余数据
- 我不希望香水的“原产地”有重复的数据
And I hope that you can discover something
我们都是Architect,一起回炉重新设计我们的“香水表” and this time:
该表需要包含5个列:
- Id_Perfume
- 品牌
- 系列
- 原产地
- 适合人群
约束的特殊需求
- 把“Id_Perfume”设为PK键
- 规定“品牌”和“系列”不接受空值,“原产地”随意
- 规定“适合人群”接受空值
- 把“系列”设为唯一键
知识点乱入:
5. DROP TABLE table_name
6. 坑爹的SQL Server的IntelliSense(智能感知功能)功能以及解决办法:编辑>>>IntelliSense>>>刷新本地缓存
任务4
INSERT INTO
- INSERT INTO 语句用于向表格中插入新的行
语法:
- INSERT INTO 表名称 VALUES (值1, 值2,…)
实例:
- INSERT INTO Perfume
- VALUES (1, ‘Dior’, ‘真我’, ‘法国’, '女’);
知识点乱入:
- 数值不使用单引号
- 字符(串)使用单引号,MS SQL Server不支持双引号
- ‘12345’是字符串,不是数字
我们也可以指定所要插入数据的列:
语法:
- INSERT INTO 表名称 (列1, 列2,…)
- VALUES (值1, 值2,…)
根据下表插入香水表的第二条数据
特殊需求:
本次不允许插入“适合人群”的数据
实例:
INSERT INTO Perfume (Id_Perfume, Brand, Series, Country) VALUES (2, ‘Dior’, ‘Miss Dior’, ‘法国’);
写在最后
如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以关注微信公众号:【程序员二黑】,获取软件测试工程师大厂面试资料!我的学习交流群: 785128166 群里有技术大牛一起交流分享~
如果文章对你有感兴趣,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。