数据库基础 新手入门(一)

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

目录

一、数据库

二、数据库的使用

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数据库中的数据。

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

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

二、数据库的使用

命名格式:

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)列名是可以含有从1128ASCII码字符,它的组成包括字母、下划线、符号以及数字。使用小写英文单词,如果有多个单词使用下划线隔开。

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

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

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

5text字段尽量少用。

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

数据类型

(1)数值类型

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

2)字符串类型

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

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

3)日期时间类型

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

4enum类型和set类型

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

5text类型和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) 是给纵向求最大

  1. max函数:计算表达式最大值
  2. min函数:计算表达式最小值
  3. count函数:统计满足条件的记录数
  4. sum函数:计算所有字段的总和
  5. 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)

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/38853.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注