irpas技术客

数据库基础 新手入门(一)_黑猫警长BmW_数据库基础知识

未知 5561

目录

一、数据库

二、数据库的使用

1.利用MySQL客户端访问数据库:

2.Windows建立连接

3.创建子账号

三、 数据库的创建

1.创建数据库

2.查询数据库

?3.使用数据库

4.修改数据库参数

5.删除数据库

7.更新数据

8.数据表的基础知识

9.创建数据表

?四、数据库中的记录

1.插入记录

2.修改数据表中的记录

3.删除记录

五、复制表

1.复制

复制数据表结构

复制表结构和表记录

将完整数据复制到复制表中

2.查看

查看数据表中所有记录

数据的导入与导出

六、命令的使用

单条件查询

AND多条件查询

? ? ? ? ?OR多条件查询

UNION联合查询

ORDER BY 排序

JOIN表连接

七、数据库的运算符

? ? ??1、算数运算符

? ? ??2、比较运算符

八、数据库的函数

? ? ?1.数学函数

? ? ?2.字符串函数

? ??3.日期和时间函数


关于数据库入门整理,多多支持,后续内容会继续补充,感谢。


关于MySQL数据库应用与设计任务的设计知识有:NySQL的下载,安装,配置,E-R图,概念设计,逻辑设计,数据类型,表,数据库,运算符,函数,约束,数据完整性,触发器,查询,视图,存储过程,安全,权限等知识。

?随着互联网快速发展“L","N","M","P","R"分别代表着Linux、Nginx、MySQL、PHP、Redis这些都是后端开发工程师必备技能。

一、数据库

长期存储在计算机内有组织的可共享的大量数据集合,根本目的解决数据共享问题。

按照数据结构来组织、存储和管理数据的仓库。相当于可以提供多人使用管理的数据仓库。

数据库系统模型:层次模型,网状模型,关系模型

数据库的设计:概念设计、逻辑设计、物理设计

数据库管理系统(DBMS,database Management System)

常见数据库:

Oracle:支持LINUX、Windows等多平台处理强,适用于大型公司、机构等。

SQL SERVER:可运行在WindowsNT/2000/XP等操作系统。

ACCESS数据库:Microsoft公司,简单易学。

MySQL:开源、免费、多平台使用、运行快、用户权限设置简单等。

MySQL的特点:

1、可移植性强 2、运行快 3、支持多平台 4、支持各种开发语言 5、提供多种引擎

6、功能强大 7、安全性高 8、价格低廉

MySQL下载地址:http://dev.mysql.com/downloads/

MySQL可视化界面工具:Navicat

Navicat简介:一套快速、可靠并价格便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而开发。

是拥有直观化的图形用户界面,它让用户可以以安全并且简单的方式创建、组织、访问和共享MySQL数据库中的数据。

可以用来对本机或远程的MySQL、SQL Server、SQLite、Oracle及PostgreSQL数据库进行管理及开发。Navicat的功能足以符合专业开发人员的所有需求,而且对数据库服务器的新手来说又相当容易学习。

适用于Microsoft Windows、Mac OS及Linux三种平台,它可以让用户连接到任何本机或远程服务器、提供一些实用的数据库工具如数据模型、数据传输、数据同步、结构同步、导入、导出、备份、还原、报表创建工具及计划以协助管理数据。

二、数据库的使用

命名格式:

1、mysql.客户端工具(在安装目录下的bin目录中,myql.exe,最好将bin目录路径加入到环境境变量path中)中的命令通常由SQL语句组成,随后跟着一个分号。有一些例外不需要分号。

2、在windows下命令不分大小写,命令可跨行,以分号结束。输入\c表示取消前面输出的未执行的命令行。

命名规范:

1、库名、表名、字段名必须使用小写字母,如需分隔,则采用下划线“_”分割。

2、库名、表名、字段名支持最多64个字符,但为了统一规范、易于辨识以及减少传输量,禁止超过32个字符。

3、库名、表名、字段名禁止使用MySQL保留字。当库名、表名、字段名等属性含有保留字时,必须用反引号(`)引用属性名称,这将使得SQL语句书写、SHELL脚本中变量的转义等变得非常复杂。

注:建议表字符集使用UTF8,必要时可申请使用UTF8MB4字符集。

1.利用MySQL客户端访问数据库:

2.Windows建立连接 mysql -uroot -p -P3306 -hlocalhost; 3.创建子账号

目的:实现多人同时对数据库处理,每个人的权限不同。

使用root账号登录MySQL 新建子账号:

create user 'test'@'localhost' identified by '123456';

创建后登录查看

三、 数据库的创建

使用SQL语句使用数据库

1.创建数据库 mysql> create database kuming character set character_name;

kuming:表示要创建数据库的名字。

character_name:表示设置数据库的字符集,以防乱码出现。库中如有中文最好使用gbk字符集。

注:MySQL中两个数据库不允许相同名字,每天SQL语句都以(;)结束。

2.查询数据库

查询MySQL数据库中所有数据库信息:

mysql> show databases;

?

?3.使用数据库 mysql> USE shujuku;

4.修改数据库参数 mysql> alter database kuming character set character_name;

kuming:要修改的数据库名

character_name:修改的字符集名

5.删除数据库 mysql> DROP DATABASE MZ; Query OK, 0 rows affected (0.03 sec) mysql>delete from 表名; 删除全部 mysql>truncate table 表名; 清楚表的所有数据

MZ:数据库名字

注:英文半角 ; 语句结束标记按Enter键执行MySQL命令或SQL语句,

退出:输入quit或exit或者直接关闭

跳出:当命令遇到问题执行不了,又无法跳出,按CTRL+C。

7.更新数据 update 表名 set 字段名=更新的值 limit 3; 更新前三条数据的字段

设计关系数据库有两个阶段:

一:实体-联系模型(ER图)

二:将ER模型转化为二维表结构(关系数据模型)

8.数据表的基础知识

表的定义:表是包含数据库中所有数据的数据库对象。

列名(字段名)

????????? 列名是用来访问表中具体域的标识符,列名必须遵循下列规则:

(1)列名是可以含有从1到128的ASCII码字符,它的组成包括字母、下划线、符号以及数字。使用小写英文单词,如果有多个单词使用下划线隔开。

(2)不要给列名命名为与SQL关键字相同的名字。

(3)列名应该反映数据的属性。

(4)表的主键一般都约定成为id,自增类型。

(5)text字段尽量少用。

(6)所有字段,均为非空,最好显示指定默认值。

数据类型

(1)数值类型

整数数据类型? 小数数据类型? 浮点数据类型

(2)字符串类型

(Char是固定长度Char可能会浪费一些存储空间)

(Varchar是可变长度,按实际长度存储,节省空间)

(3)日期时间类型

(年份用year,存储日期和时间用DateTime)

(4)enum类型和set类型

(字符串形式出现Enum取单值,Set可取多值)

(5)text类型和blob类型

长度

??????? 给列定义的大小部分指的是该列能接受多少个字符。

9.创建数据表 mysql> create table bm_name -> ( -> bzlm datatype [约束条件], -> bzlm2 datatype [约束条件], -> 等 -> [表级别约束条件] -> );

bm_name:数据表名字

bzlm:数据表中列名

datatype:表中列的数据类型

例:

?代码如下:

查看数据表:

mysql> show tables;

查看数据表结构:

? mysql> desc 表名称;

修改数据表:

修改字段属性语法格式:

1. 向表中添加一个字段:

mysql> alter table <表名> -> add <新字段><数据类型>《约束条件》{first|after《已存在字段名前或后》};

?注:默认新添加的字段放在最后一列。

2. 修改字段名:

mysql> alter table <表名> -> change <原字段名> <新字段名> 《数据类型》[约束条件] -> [first|after<已存在字段名>];

3. 修改表名称

? mysql> alter table <表原名> -> rename <新表名>;

4. 删除数据表和表中字段(删除前要做好备份)

mysql> drop table <表名称>; mysql> alter table <表名> -> drop <字段名>;

5.修改数据表中字段类型

MySQL> alter table 表名 > modify 字段名 新数据类型 约束条件;

6.修改数据表中字段位置

MySQL> alter table 表名 > modify 字段1 数据类型 约束条件 first|after<字段2>;

注:多种修改用逗号分隔。

?四、数据库中的记录

1.插入的新记录必须完全遵守数据的完整性约束

2.插入字符型、日期时间型数值,必须在值的前后加入半角单引号,只有数值型数据不需要加单引号。(中英文切换)

3.对于Date类型的数值,插入时,必须使用“YYYY-MM-DD”的格式,并且要用半角单引号引起来

4.若某字段不允许为空,且无默认值约束,则表示向数据表插入一条记录时,必须有写入值,默认插入不成功。若某字段不允许为空,且有默认值约束,则插入记录时自动使用默认值代替。

5.若某字段设置为主键约束,则插入记录时不允许出现重复数值。

1.插入记录 mysql> insert into <数据表名> ->(col_list,.......)<可以不写> -> values -> (val_list,.......);

col_llist:表中字段名称? ? ? ? ? ? ? val_list:每个字段值并与之对应

注:插入多条时用逗号间隔。

2.修改数据表中的记录 mysql> update <数据表名> -> set -> col_name=value,... -> where条件语句; (如不说明将对表中修改全部数据) 注:(使用UPDATE语句修改数据时,可能会有多条记录满足WHERE条件。要保证 WHERE子句的正确性,一旦WHERE子句,将会破坏所有改变的数据。) 3.删除记录 mysql> delete from <数据表名> -> where 要删除的记录参数; (如果没有where将删除所有记录) 五、复制表 1.复制 复制数据表结构 mysql> create table (要复制表) like (table)形式; 复制表结构和表记录 mysql> create table (复制表) select...from (table)形式; 将完整数据复制到复制表中 mysql> insert into (复制表)select* from table; 2.查看 查看数据表中所有记录 mysql> select * from 数据表; mysql>select * from 表名 limit 10; 查询数据表前10个记录 mysql>select * from 表名 LIMIT 10,10; 查询数据表中第11条后面10条数据 mysql>select 字段名 AS 新字段名 from 表名 LIMIT 6,5; 给指定字段重新命名 数据的导入与导出

使用Navicat进行导出:选中数据表右键导出向导——选择导出格式——选择导出文件并定义附加选项——选择字段——定义附加选项——开始导出

导入:右键单击数据表——选择导入向导——选择导入格式和导入位置——源定义附加选项——选择现有表或新建表——导入模式——开始导入? ? ?(Navicat看不到数据,进行刷新或数据同步)

六、命令的使用 单条件查询 select * from 表名 where 字段名>12; 查询字段满足>12 AND多条件查询 select * from 表名 where 字段名>12 and name like '王%'; and表示同时满足字段名>12和name like '王%' ?OR多条件查询 select * from 表名 where 字段名>12 or name like '王%'; 满足其中一个条件 UNION联合查询 select * from 表名 where age > 23 union select * from 表名 where age > 30;

union all?

把满足的结果并到一起

ORDER BY 排序

ASC从小到大排序

select * from 表名 order by age ASC; age字段名

DESC从大到小排序

select * from 表名 order by id desc;

使用多字段混合排序

select * from 表名 order by age desc,id asc;

对字符串类型字段排序

select * from 表名 order by name asc; JOIN表连接

LEFT JOIN左连接

mysql>SELECT c.id AS cours_id,c.*,t.* FROM cours c LEFT JOIN teacher t ON c.teacher_id=t.id;

c.id AS cours_id表示将cours表中id字段重命名为cours_id展示,防止混淆

c.*表示cours表所有字段

t.*表示teacher表字段所有数据

ON 后面跟着条件是连接表的条件

cours c 将cours简写c 同下

left join 为左连接,以左为基准,若右表没有对应的值,用NULL 填补

INNER JOIN 内连接

SELECT c.id AS cours_id,c.*,t.* FROM cours c INNER JOIN teacher t ON c.teacher_id=t.id;

RIGHT JOIN 右连接

SELECT c.id AS cours_id,c.*,t.* FROM cours c RIGHT JOIN teacher t ON c.teacher_id=t.id;

多表混合连接

SELECT * FROM student a LEFT JOIN student_cours b ON a.id=b.student_id RIGHT JOIN course c ON b.cours_id=c.id INNER JOIN teacher d ON c.teacher_id=d.id;

七、数据库的运算符 1、算数运算符

算术运算符是SQL中最常用的运算符,主要是对数值运算使用。算数运算符主要包括加、减、乘、除、取余5种。

?使用算数运算符计算加减乘除

mysql> select hits,hits+hits,hits-hits,hits*hits,hits/hits from tb_news(数据表名字)(hits是字段名); +------+-----------+-----------+-----------+-----------+ | hits | hits+hits | hits-hits | hits*hits | hits/hits | +------+-----------+-----------+-----------+-----------+ | 100 | 200 | 0 | 10000 | 1.0000 | | 200 | 400 | 0 | 40000 | 1.0000 | | 300 | 600 | 0 | 90000 | 1.0000 | | 500 | 1000 | 0 | 250000 | 1.0000 | | 200 | 400 | 0 | 40000 | 1.0000 | | 100 | 200 | 0 | 10000 | 1.0000 | | 200 | 400 | 0 | 40000 | 1.0000 | +------+-----------+-----------+-----------+-----------+ 7 rows in set (0.00 sec) mysql>

2、比较运算符

比较运算符用于比较两个表达式的值,其运算结果为逻辑值,可以为3种之一:1(真),0(假)及null(不能确定)

例:

?运算符’=‘:

判断数字、字符串和表达式是否相等,相等返1,否则返0,NULL不能判断

mysql> select zidu,zidu='1001' from tb_user(数据表名)(zidu字段名);

查询数据表中字段zidu为p2001的数据

mysql> select * from 数据表名 -> where zidu='p2001';

运算符’LIKE':

“LIKE”运算符用来匹配查询,如匹配则返1,否则返0,like关键字经常与通配符“_”和“%”一起用。

%:匹配一个或多个字符,代表任意长度的字符串,长度可为0.如a%b,以a开头b结束任意长度字符串。

—:只匹配一个字符。如a_b,表示以a字母开头以b字母结束的3个字符。

运算符‘REGEXP'(正则表达式):

“REGEXP”用来匹配字符串,如果X1满足匹配式,返1,否则返0。‘’REGEXP‘’经常与“$”和“^”和“.”使用。

“^”用来匹配字符串的开始部分

“$”用来匹配字符串的末尾部分? ? ?“.”用来代表字符串中的一个字符

八、数据库的函数 1.数学函数

例:

ABS(x)函数

mysql> select ABS(5-9),ABS(-5.99); +----------+------------+ | ABS(5-9) | ABS(-5.99) | +----------+------------+ | 4 | 5.99 | +----------+------------+ 1 row in set (0.00 sec) mysql>

FLOOR(x)和CEILING(x)函数

FLOOR(x)函数用于获得小于x的最大整数值,CEILING(x)用于获得大于x的最小整数值

mysql> select floor(150.23),ceiling(13.324); +---------------+-----------------+ | floor(150.23) | ceiling(13.324) | +---------------+-----------------+ | 150 | 14 | +---------------+-----------------+ 1 row in set (0.00 sec)

GREATEST()和LEAST()函数

他们的功能是获得一组数中的最大值和最小值。

mysql> select greatest(10,25,98,152,12),least(11,32,147,21); +---------------------------+---------------------+ | greatest(10,25,98,152,12) | least(11,32,147,21) | +---------------------------+---------------------+ | 152 | 11 | +---------------------------+---------------------+ 1 row in set (0.00 sec)

注:greatest求的是某几列的最大值,横向求最大;max(a) 是给纵向求最大

max函数:计算表达式最大值min函数:计算表达式最小值count函数:统计满足条件的记录数sum函数:计算所有字段的总和avg函数:计算各个字段值的平均值 2.字符串函数

3.日期和时间函数

NOW()函数:

mysql> select now(); +---------------------+ | now() | +---------------------+ | 2022-04-09 01:43:01 | +---------------------+ 1 row in set (0.00 sec)

?HOUR(t)? ?MINUTE(t)? SECOND(t)函数:

mysql> select HOUR('12:43:32'),MINUTE('12:43:32'),SECOND('12:43:32'); +------------------+--------------------+--------------------+ | HOUR('12:43:32') | MINUTE('12:43:32') | SECOND('12:43:32') | +------------------+--------------------+--------------------+ | 12 | 43 | 32 | +------------------+--------------------+--------------------+ 1 row in set (0.00 sec)

后续内容会继续补充,互相学习,多多支持,点个赞三连走起,再走呗


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #数据库基础知识 #数据库