专业网站定制报价,本地网站建设需要什么,网络推广是什么职业,响应网站建设1、什么是数据#xff1f;什么是数据库#xff1f;
数据#xff1a;描述事物的符号记录称为数据。数据是数据库中存储的基本对象。数据库#xff1a;存放数据的仓库#xff0c;数据库中可以保存文本型数据、二进制数据、多媒体数据等数据
2、数据库的发展
第一阶段什么是数据库
数据描述事物的符号记录称为数据。数据是数据库中存储的基本对象。数据库存放数据的仓库数据库中可以保存文本型数据、二进制数据、多媒体数据等数据
2、数据库的发展
第一阶段使用磁盘文件来存储数据有网状模型、层次模型用于分组保存数据。第二阶段关系型数据库RDB结构化查询语言SQL各厂商都在做关系型数据库以及优化SQL查询的效率。第三阶段关系-对象型数据库即我们平时听到的“大数据”大数据是超越了关系型数据库的非结构化数据库通常使用大数据处理技术全文搜索分类聚类各种算法来处理。
关系型数据库结构化的数据
结构化数据每一列都有特定的含义结构非常清晰二维表结构是关系型数据库的核心。
二、数据库常用操作
数据库定义功能DBMS提供数据定义语言DDL用户可以对数据库中的数据对象进行定义 如创建数据库、删除数据库、修改数据库、创建表、删除表、修改表等数据库操纵功能:DBMS提供数据操纵语言DML用户可以实现对数据的基本操作如插入、删除、修改。数据查询功能DBMS提供数据查询语言DQL用户实现对数据的查询功能数据控制功能DBMS提供数据控制语言DCL进行用户角色和权限的管理
总体上对数据的操作基本上都支持CRUD即Create、Retrieve、Update、Delete
三、一些数据库管理系统
Access桌面的个人数据库微软开发的办公用的和office放在一起MS SQLserver微软的企业版本的数据库关系型数据库企业型的DB2/InformixiIBM的IBM最早期的是DB2Informixi是被IBM收购的关系型数据库最早就是IBM 发明的但现在最厉害的是ORACLE商业数据库MySQL免费版本和商业版本MySQL被ORACLE收购所以MySQL的免费版本和商业版有比较大的差异MySQL Community是社区免费版ORACLE收购了SunSun之前收购了MySQL。 ORACLE收购了Sun有两个至关重要的产品第一个是Java。第二个是MySQL都是开源社区里面及其重要的两个应用系统和底层的软件所以欧盟对ORACLE收购Sun这件事做了严格的审计确保 ORACLE承诺无论是否开发商业版本都要有免费版本的授权否则是不允许收购的。因为用MySQL和Java的人太多了必须要考虑这种影响。 Sun在被ORACLE后MySQL的原作者拉了一个分支出来叫MariaDB内核都一样功能都一样95%都是一样的。Java社区版是OpenJdk。MySQL常用的版本是5.6或5.7。 PostgreSQL免费试用、修改和分发PostgreSQL不管是私用、商用还是学术研究很多企业从MySQL转换到PostgreSQL也是因为宽松的授权ORACLE商业数据库NoSQL非关系型数据库
三、关系型数据库
什么是关系
关系型数据库加结构化查询语句
数据库定义语言DDL
1、创建数据库
在大多数的RDBMS中我们可以使用如下简单的SQL语句创建整个数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [CHARACTER set utf8mb4];#在SQL语句中 中括号 表示 可选
#[IF NOT EXISTS]参数表示当数据库不存在的时候才执行创建如果存在的时候就不执行
#[CHARACTER set utf8mb4]
create database test character set utf8;
create database if not exists test character set utf8;
其中数据库名在服务器中必须是唯一的并且符合标识符规则。所谓标识符规则指
第一一个字符必须是下列字符 aUnicode标准3.0所定义的字母Unicode中定义的字母包括拉丁字母a-z和A-Z以及来自其他语言的字母字符。 b下划线_、at符号或者数字符号#后续字符可以是 aUnicode标准3.0所定义的字母 b来自基本拉丁字母或其他国家/地区脚本的十进制数字 cat符号、美元符号$、数字符号或下划线 d标识符不能是所用RDBMS的保留字如create、drop、insert、delete、update、alter、select、return、use、grant、revoke等。 e不允许嵌入空格或其他特殊字符。
2、修改数据库
语法ALTER DATABASE db_name CHARACTER SET charset_name
ALTER DATABASE db_name CHARACTER SET UTF8MB43、删除数据库
语法DROP DATABASE 数据库名;
DROP DATABASE school;
4、命令行常用的数据库命令
show databases; #查看当前系统存在的数据库use test #切换到test数据库show tables; #显示当前test数据库中的所有可用的表desc school; #显示当前test数据库中school表的结构use mysql; #切换到mysql核心数据库select host,user,password from user; #查询mysql数据库中的user表的三列数据exit; #退出MySQL命令行操作
三、数据表
1、创建表
CREATE TABLE 表名(列名 数据类型 约束,列名 数据类型 约束
) [ENFINE engine_name | [DEFAULT] CHARACTER SET [] charset_name];
其中表名在一个数据库中必须是唯一的并且符合标识符规则列名在一个表中必须是唯一的并且符合标识符规 则列的数据类型决定了什么样的数据可以存储在列中而列的约束定义了创建列时的限制条件。MySQL引擎类型有InnoDB和MylSAM两种。建议使用功能innoDB功能更加强大但是执行效率会稍低。 在建表时要根据实际情况考虑表的列的数据类型和约束 序号id INT 学号sid13位 15位的变长字符串 varchar(15) 姓名sname:varchar(10) 电话号码:sphone:varchar(11 性别sex 定长字符串 char(1) 年龄sagetinyint 创建时间createtime datatime 2、数据字典
数据字典是 用于描述关系表结构和组成的字典表通常用于数据库设计工作中如 3、表的常用操作
查看数据表
SHOW TABLES;
DESC 表名 #查看表的结构 修改数据表
修改数据表表名
语法如下
ALTER TABLE 表名 RENAME TO 新表名;
举例
ALTER TABLE address_info RENAME TO addr_info;
添加字段
语法
ALTER TABLE 表名 ADD [COLUMN] 列名 列的定义
#举例
ALTER TABLE stu_info ADD age int;
修改字段
语法
ALTER TABLE 表名 CHANGE [COLUMNE] 旧列名 新列名 列的定义;
举例
ALTER TABLE stu_info CHANGE address addr varchar(50);
修改字段类型
语法
ALTER TABLE 表名 MODIFY [COLUMNE] 列名 列的定义;
举例
ALTER TABLE stu_info MODIFY stu_info addr varchar(255);
删除字段
语法
ALTER TABLE 表名 DROP [COLUMNE] 列名;
举例
ALTER TABLE stu_info DROP addr;
4、删除数据库表
语法
DROP TABLE 表名;
举例
DROP TABLE stu_info;
四、增删查改
、INSERT
针对列名或表名可以通过添加 来进行区分
针对列名或表名可以通过添加 来进行区分
INSERT INTO student(sid, sname, phone, sex, age, degree, createtime)
VALUES (XXAN3005 荔枝 13533066789 女 18 本科 2023-0820 16:00:30);INSERT INTO student(sid, sname, phone, sex, age, degree, createtime)
VALUES (XXAN3005, 荔枝, 13533066789, 女, 18, 本科, 2023-0820 16:00:30); 如果在插入数据时每一列都要插入数据则可以省略列名如果是部分列插入数据则必须指定列名
如果在插入数据是每一列都要插入数据则可以省略列名
INSERT INTO VALUES (XXAN3006, 杨梅, 1353366789, 女, 18, 本科, 2023-0820 15:00:30);如果是部分列插入数据则必须指定列名
INSERT INTO student(sid, sname) VALUES (XXAN3005, 程橙);
如果要插入数据一次插如多行可以写多条INSERT语句
INSERT INTO student(sid, sname, phone, sex, age, degree, createtime)
VALUES (XXAN3005, 毛毛, 13533066785, 女, 18, 本科, 2023-0820 13:00:30);
INSERT INTO student(sid, sname, phone, sex, age, degree, createtime)
VALUES (XXAN3005, 花花, 13533066786, 女, 18, 本科, 2023-0820 14:00:30);
INSERT INTO student(sid, sname, phone, sex, age, degree, createtime)
VALUES (XXAN3005, 小小, 13533066787, 女, 18, 本科, 2023-0820 15:00:30);
INSERT INTO student(sid, sname, phone, sex, age, degree, createtime)
VALUES (XXAN3005, 豆豆, 13533066788, 女, 18, 本科, 2023-0820 16:00:30);
标准的批量插入
INSERT INTO student(sid, sname, phone, sex, age, degree, createtime)
VALUES (XXAN3005, 毛毛, 13533066785, 女, 18, 本科, 2023-0820 13:00:30),
(XXAN3005, 花花, 13533066786, 女, 18, 本科, 2023-0820 14:00:30),
(XXAN3005, 小小, 13533066787, 女, 18, 本科, 2023-0820 15:00:30),
(XXAN3005, 豆豆, 13533066788, 女, 18, 本科, 2023-0820 16:00:30);
、DELETE
TRUNCATE TABLE student; #清空表数据
DELETE FROM student; #删除表数据可以带WHERE条件决定删除哪些行
DELETE FROM student WHERE sidXXAN3005;
DELETE FROM student WHERE not in(sidXXAN3005, sidXXAN3006);
3、UPDATE
UPDATE student SET sname张三 WHERE sidXXAN3007
五、知识补充
、常用的编码格式 UTF-8格式对全球文字进行统一编码 ASCII码ISO-8859-1ASCII码是由1byte来进行编码1byte8bit表示有8个二进制位0000 0000 ~ 1111 1111 对应0~255最多可以表示256个字符。平时我们键盘上见到的这些字符是标准的ASCII字符128个字符 把128~255组成扩展的ASCII表绝大部分的欧美文字都可以表示但是唯独没有亚洲文字比如中文、韩文、蒙古文是不能表示的。 中文编码汉卡中文编码GB2312、GBK、GB10030在中文编码规范下只支持ASCII中文但是不支持日文等中文编码规范由2byte 16bit2^1665536基本上全部中文都可以表示了但是如果把全球的文字放进去2^16又不够所以UTF-8编码除了ASCII码占1byte其他文字占3byte24bit可表示2^2416777216个字符。
、MYSQL常见的数据类型
1、数值型
类型大小 范围有符号范围无符号用途TINYINT1byte-128,1270,255小整数值SMALLINT 2bytes -32768,32767(0,65535大整数值MEDIUMINT 3bytes (-8388608,8388607(0,2^24-1大整数值INT或INTEGER 4bytes (-2^31,2^31-1)(0,2^32-1) 大整数值BIGINT8bytes (-2^63,2^63-1) (0,2^63大整数值FLOAT 4bytes ————单精度浮点数值DOUBLE 8bytes————双精度浮点值DECIMAL ——————小数值
2、字符型
CHARE 0-255bytes 定长字符串
VARCHAR 0-65535bytes 不定长字符串 3、日期和时间
最常用的是DATETIME表示日期时间格式是YYYY-MM-DD-HH:MM:SS
DATETIME YYYY-MM-DD-HH:MM:SS
DATE YYYY-MM-DD
TIME HH:MM:SS
YEAR YYYY TIMESTAMP uninux元年开始的时间